Full execution proofs (FEP)
Developers can use CDK to configure chains that run the Polygon zkEVM protocol in either rollup or validium mode. We refer to these chains, in either mode, as a CDK FEP.
As part of its finality mechanism, a CDK rollup or validium configured with this mode utilizes the type of ZK-proofs referred to as full execution proofs.
What is a full execution proof?¶
A full execution proof (FEP) is a zero-knowledge proof attesting to the correctness of the chain’s full state transition.
That is, an FEP attests to the fact that the underlying VM (such as the Polygon zkEVM, Succinct’s zkVM, or MoveVM) has executed all state transitions in accordance with specifications.
CDK FEP components¶
Next, we detail the architectural components of the CDK FEP mode.
The table below lists the CDK FEP components and where you can find them.
Component | CDK FEP stack | Notes |
---|---|---|
Node = RPC and sequencer | cdk-erigon:v2.1.x | Customizable, commonly: - Sequencer = 1 node- RPC = multiple nodes |
Data availability | cdk-data-availability | Only for validium mode use latest tag |
Contracts | zkevm-contracts | Use Fork ID12 contracts |
CLI | cdk:v0.3.x | Included in CDK repo |
Sequence sender | cdk:v0.3.x | Included in CDK repo |
Aggregator | cdk:v0.3.x | Included in CDK repo |
Tx pool manager | zkevm-pool-manager | Use latest tag |
Prover | zkevm-prover | v8.0.0-RC14 |
Component descriptions¶
Here are brief descriptions of each CDK FEP component.
- CDK Erigon node, a fork of erigon, that manages the following:
- Multiple RPC nodes that provide common APIs for sending transactions.
- Sequencer for executing transactions, and creating blocks and batches.
- DAC: The Data Availability Committee, specifically for validium mode, is a set of trusted actors who keep custody of all transaction data, including monitoring and validating hash values the sequencer sender proposes to publish on L1.
- Contracts: Various smart contracts deployed on L1 for the full implementation and complete functionality of the Polygon zkEVM protocol:
PolygonRollupManager
PolygonZkEVMBridgeV2
PolygonZkEVMGlobalExitRootV2
FflonkVerifier
PolygonZkEVMDeployer
PolygonZkEVMTimelock
- CLI tool: A single command line interface tool for abstracting away the complexity of deploying or configuring CDK components.
- Sequence sender: For sequencing batches.
- In the case of a rollup, the sequence sender sends batch data and the
sequenceBatches
transaction to L1. - In the case of a validium, the sequence sender sends batch data to the Data Availability Committee (DAC), requests for signatures from the DAC, and sends the
sequenceBatchesValidium
transaction to L1.
- In the case of a rollup, the sequence sender sends batch data and the
- Aggregator: For facilitating proving and verification, fetching and providing batch data and witness to the prover.
- Transaction pool manager: For storing transactions submitted by users.
- Prover: A complex cryptographic tool capable of producing ZK-proofs of hundreds of batches, and aggregating these into a single ZK-proof which is published as the validity proof.
Support services¶
Bridge service: A backend service for enabling clients like the web UI to interact with the bridge smart contract by providing Merkle proofs.
Bridge UI: The Polygon bridge portal which abstracts away the backend operations involved in bridge deposits and withdrawals.
Recommended explorer service: Blockscout, which is an application that allows you to view, confirm, and inspect transactions on EVM chains, optimistic rollups and zk rollups.
However, users may opt to use a different explorer service.