Skip to content

ZK-friendly system transactions #152

@AnnaShaleva

Description

@AnnaShaleva

Rationale

After #147 we have system messages that perform direct Governance contract state modification vie onPersist call and are being executed in the start of every block. Given our future plans to add ZK proving for state changes, we need to:

  1. Investigate how these free system messages prevent us from honest ZK proving.
  2. If it's not possible to integrate ZKP with the current way of ProcessOnPersist execution, we need to replace it with some other way of system transactions execution. The following directions may be considered:
  • BSC-like system transactions. This approach seems to include system transactions to the block, but they executed in a special way with some special context.
  • Honest transactions automatically added to block by CNs. For this transactions, sender should be some standard account, and thus sender should have GAS to pay for this transaction. It inevitably leads to the fact that balance of this sender should be maintained by system.
  • Fall back to the dynamic-length dBFT epochs in the Governance contract and remove OnPersist system message execution. The worst way, but if nothing helps, then it may be considered.

Related conversations: #146 (comment), #146 (comment).

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionSomething that needs to be discussedenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions