Section 5: ZkProver Components

For the sake of simplicity, zkProver can be thought of as zkProver is a complex component for generating verifiable proofs that integrates multiple sub-components and technologies.

  1. Executor or main state machine executor An executor (or main state machine executor) is typically the component that executes smart contract or system state transition logic. It accepts input data, performs a series of operations, and produces output data. In the context of zero-knowledge proofs (ZK), an executor may generate a series of polynomial constraints that represent state transitions.

  2. STARK recursive component STARK (Scalable Transparent ARguments of Knowledge) is a zero-knowledge proof system that uses recursive methods to reduce the size of the proof. The STARK recursive component is perhaps a key part of zkProver, responsible for converting complex polynomial constraints or identities into more concise recursive forms for easy generation and verification of proofs.

  3. CIRCOM Library CIRCOM is a library for writing zero-knowledge proof circuits. It allows developers to define constraint logic that is then transformed into circuits that can be used for zero-knowledge proofs. zkProver may use the CIRCOM library to define and enforce its polynomial constraints.

  4. zk-SNARK prover zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) is a zero-knowledge proof technique that generates short proofs that are publicly verifiable but do not require revealing any information about the underlying data or computation. The zk-SNARK prover component within zkProver may be responsible for generating and outputting these short zk-SNARK proofs.

Workflow Overview

In zkProver's workflow, the executor first performs a sequence of operations and generates polynomial constraints that represent these operations. These constraints are then encoded into circuits via the CIRCOM library and may be further processed by the STARK recursive component to reduce the size and complexity of the proof. Finally, the zk-SNARK prover generates a short, publicly verifiable proof that shows that the executor correctly performed the operation and satisfied all polynomial constraints.

Last updated