Skip to content

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.
  • 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.