Skip to content

Commit 36e2bbe

Browse files
Merge pull request 0xPolygon#707 from 0xPolygon/cdk/ares_components
DRAFT: CDK with FEP components doc
2 parents 5428aef + 06f4205 commit 36e2bbe

File tree

3 files changed

+61
-1
lines changed

3 files changed

+61
-1
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
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.
2+
3+
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*.
4+
5+
## What is a full execution proof?
6+
7+
A *full execution proof* (FEP) is a zero-knowledge proof attesting to the correctness of the chain's full state transition.
8+
9+
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.
10+
11+
## CDK FEP components
12+
13+
Next, we detail the architectural components of the CDK FEP mode.
14+
15+
The table below lists the CDK FEP components and where you can find them.
16+
17+
| Component | CDK FEP stack | Notes |
18+
|------------------------------------------|------------------------------------------------------------------------------------------|-------------------------------------------------------------|
19+
| Node = RPC and sequencer | <a href=https://github.com/0xPolygonHermez/cdk-erigon/releases>cdk-erigon:v2.1.x</a> | Customizable, commonly: <br/>- Sequencer = 1 node</br>- RPC = multiple nodes |
20+
| Data availability | <a href=https://github.com/0xPolygon/cdk-data-availability>cdk-data-availability</a> | **Only** for validium mode |
21+
| Contracts | <a href=https://github.com/0xPolygonHermez/zkevm-contracts>zkevm-contracts</a> | |
22+
| CLI | <a href=https://github.com/0xPolygon/cdk/releases>cdk:v0.3.x<a> | Included in CDK repo |
23+
| Sequence sender | <a href=https://github.com/0xPolygon/cdk/releases>cdk:v0.3.x</a> | Included in CDK repo |
24+
| Aggregator | <a href=https://github.com/0xPolygon/cdk/releases>cdk:v0.3.x</a> | Included in CDK repo |
25+
| Tx pool manager | <a href=https://github.com/0xPolygon/zkevm-pool-manager> zkevm-pool-manager</a> | |
26+
| Prover | <a href=https://github.com/0xPolygonHermez/zkevm-prover>zkevm-prover</a> | |
27+
28+
## Component descriptions
29+
30+
Here are brief descriptions of each CDK FEP component.
31+
32+
- CDK Erigon node, a fork of [erigon](https://github.com/ledgerwatch/erigon), that manages the following:
33+
- Multiple RPC nodes that provide common APIs for sending transactions.
34+
- Sequencer for executing transactions, and creating blocks and batches.
35+
- 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.
36+
- Contracts: Various smart contracts deployed on L1 for the full implementation and complete functionality of the Polygon zkEVM protocol:
37+
- `PolygonRollupManager`
38+
- `PolygonZkEVMBridgeV2`
39+
- `PolygonZkEVMGlobalExitRootV2`
40+
- `FflonkVerifier`
41+
- `PolygonZkEVMDeployer`
42+
- `PolygonZkEVMTimelock`
43+
- CLI tool: A single command line interface tool for abstracting away the complexity of deploying or configuring CDK components.
44+
- Sequence sender: For sequencing batches.
45+
- In the case of a rollup, the sequence sender sends batch data and the `sequenceBatches` transaction to L1.
46+
- 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.
47+
- Aggregator: For facilitating proving and verification, fetching and providing batch data and witness to the prover.
48+
- Transaction pool manager: For storing transactions submitted by users.
49+
- 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.
50+
51+
## Support services
52+
53+
[Bridge service](https://github.com/0xPolygonHermez/zkevm-bridge-service): A backend service for enabling clients like the [web UI](https://github.com/0xPolygonHermez/zkevm-bridge-ui) to interact with the [bridge smart contract](https://github.com/0xPolygonHermez/zkevm-contracts) by providing Merkle proofs.
54+
55+
[Bridge UI](https://portal.polygon.technology/): The Polygon bridge portal which abstracts away the backend operations involved in bridge deposits and withdrawals.
56+
57+
Recommended explorer service: <a href=https://github.com/0xPolygonHermez/blockscout>Blockscout</a>, which is an application that allows you to view, confirm, and inspect transactions on EVM chains, optimistic rollups and zk rollups.
58+
59+
However, users may opt to use a different explorer service.
File renamed without changes.

mkdocs.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ nav:
5454
- CDK: cdk/index.md
5555
- Overview: cdk/overview.md
5656
- Releases:
57-
- Version compatibility matrix: cdk/version-matrix.md
57+
- Full Execution Proofs (FEP): cdk/releases/stack-components.md
58+
- Version compatibility matrix: cdk/releases/version-matrix.md
5859
- Get started:
5960
- Local deployment guide: cdk/getting-started/local-deployment.md
6061
- Concepts:

0 commit comments

Comments
 (0)