|
1 | | -<!-- # Pessimistic proofs (PP) --> |
| 1 | +Developers can use the CDK stack to build layer 2 chains that are natively connected to the AggLayer (**CDK sovereign chains**). |
2 | 2 |
|
3 | | -Developers can use CDK to configure custom ZK-rollups by choosing which components should run the Polygon zkEVM protocol. We refer to these chains as CDK sovereign chains. |
4 | | - |
5 | | -Developers can, for instance, configure their chains to use provers that are outside the Polygon zkEVM stack. |
6 | | - |
7 | | -Specifically, instead of deploying a Polygon zkEVM prover, developers can configure their CDK sovereign chains to utilize Succinct's SP1 prover. |
8 | | - |
9 | | -Since CDK sovereign chains are designed to easily connect to the AggLayer, they use a type of ZK-proof called a _pessimistic proof_ to reach finality of transactions. |
| 3 | +Out of the box, CDK sovereign chains are built to connect to the AggLayer, and so they rely on a type of ZK-proof called a _pessimistic proof_ to finalize transactions. |
10 | 4 |
|
11 | 5 | ## What is a pessimistic proof? |
12 | 6 |
|
13 | | -A *pessimistic proof* (PP) is a zero-knowledge proof attesting to the fact that a chain's bridge transitions were correctly executed and that all withdrawals are collateralized. |
| 7 | +A *pessimistic proof* (PP) is a zero-knowledge proof attesting to the correctness of a chain’s bridge transitions and the collateralization of all withdrawals. |
14 | 8 |
|
15 | | -Therefore, pessimistic proofs enable CDK-built chains that interoperate via the [unified bridge](../../zkEVM/architecture/unified-LxLy/index.md) to achieve trustless cross-chain security. |
| 9 | +These proofs enable CDK sovereign chains that interoperate via the [unified bridge](../../zkEVM/architecture/unified-LxLy/index.md) to achieve trustless cross-chain security. |
16 | 10 |
|
17 | | -Pessimistic proofs allow CDK sovereign chains connected to the [AggLayer](../../agglayer/overview.md) interoperate securely. |
| 11 | +Pessimistic proofs ensure that CDK sovereign chains connected to the [AggLayer](../../agglayer/overview.md) interoperate securely, providing a robust mechanism for cross-chain interactions. |
18 | 12 |
|
19 | | -We henceforth refer to CDK sovereign chains as CDK PP chains. |
| 13 | +--- |
20 | 14 |
|
21 | | -## CDK PP stack |
| 15 | +## CDK sovereign chain components |
22 | 16 |
|
23 | | -Next, we detail the architectural components of the CDK PP chains. |
| 17 | +The architectural components of CDK sovereign chains are detailed in the table below: |
24 | 18 |
|
25 | | -The table below lists the components of a CDK PP chain and where you can find them. |
26 | | - |
27 | | -| Component | CDK PP stack | Notes | |
| 19 | +| Component | CDK Stack | Notes | |
28 | 20 | | ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | |
29 | 21 | | Node = RPC and sequencer | [cdk-erigon](https://github.com/0xPolygonHermez/cdk-erigon) | Customizable, commonly:<br/>\- Sequencer = 1 node<br/>\- RPC = multiple nodes | |
30 | | -| Contracts | <a href=https://github.com/0xPolygonHermez/zkevm-contracts>zkevm-contracts</a> | | |
| 22 | +| Contracts | <a href=https://github.com/0xPolygonHermez/zkevm-contracts>zkevm-contracts</a> | Includes L1 contracts for functionality | |
31 | 23 | | CLI | [cdk](https://github.com/0xPolygon/cdk) | Included in [CDK](https://github.com/0xPolygon/cdk) repo | |
32 | | -| AggSender | <a href=https://github.com/0xPolygon/cdk>cdk</a> | Included in [CDK](https://github.com/0xPolygon/cdk) repo | |
33 | | -| Tx pool manager | <a href=https://github.com/0xPolygon/zkevm-pool-manager> zkevm-pool-manager</a> | | |
| 24 | +| AggSender | <a href=https://github.com/0xPolygon/cdk>cdk</a> | A sub-component of the CDK client that sends certificates to the AggLayer node | |
| 25 | +| Tx pool manager | <a href=https://github.com/0xPolygon/zkevm-pool-manager>zkevm-pool-manager</a> | Manages transaction storage | |
| 26 | + |
| 27 | +--- |
34 | 28 |
|
35 | 29 | ## Component descriptions |
36 | 30 |
|
37 | | -Here are brief descriptions for each CDK FEP component. |
| 31 | +Here are brief descriptions of the key CDK components: |
38 | 32 |
|
39 | | -- CDK Erigon node, a fork of [erigon](https://github.com/ledgerwatch/erigon), that manages the following: |
40 | | - - Multiple RPC nodes that provide common APIs for sending transactions. |
41 | | - - Sequencer for executing transactions, and creating blocks and batches. |
42 | | -- Contracts: Various smart contracts deployed on L1 for the full implementation and complete functionality of the Polygon zkEVM protocol: |
| 33 | +- **CDK Erigon Node**: A fork of [Erigon](https://github.com/ledgerwatch/erigon), providing: |
| 34 | + - Multiple RPC nodes for transaction submission. |
| 35 | + - A sequencer for executing transactions, and creating blocks and batches. |
| 36 | +- **Contracts**: Smart contracts deployed on L1 to ensure full implementation and functionality: |
43 | 37 | - `PolygonRollupManager` |
44 | 38 | - `PolygonZkEVMBridgeV2` |
45 | 39 | - `PolygonZkEVMGlobalExitRootV2` |
46 | 40 | - `FflonkVerifier` |
47 | 41 | - `PolygonZkEVMDeployer` |
48 | 42 | - `PolygonZkEVMTimelock` |
49 | | -- CLI tool: A single command line interface tool for abstracting away the complexity of deploying or configuring CDK components. |
50 | | -- AggSender is the CDK PP component that accumulates all necessary info in order to generate certificates, which are sent to the SP1 prover via the JSON-RPC API for the generation of pessimistic proofs. |
51 | | -- Transaction pool manager: For storing transactions submitted by users. |
52 | | - |
53 | | -### AggLayer-side components |
54 | | - |
55 | | -- Succinct's SP1 prover: A simplified cryptographic tool designed to take Rust-written inputs in order to generate ZK-proofs. |
56 | | - |
57 | | - Unlike in the CDK FEP chain, the prover in a CDK PP chain is not directly connected to the chain. It in fact resides in the AggLayer. |
58 | | - |
59 | | -- JSON-RPC API: A component provided by the AggLayer to interface between the CDK PP chain and the SP1 prover. |
| 43 | +- **CLI tool**: A command-line tool that simplifies deploying and configuring CDK components. |
| 44 | +- **AggSender**: A functionality within the CDK client that aggregates necessary data and sends certificates to the AggLayer node for proof generation. It works in conjunction with other sub-components, such as the bridge syncer. |
| 45 | +- **Transaction pool manager**: Handles storage of user-submitted transactions. |
| 46 | +- **Succinct's SP1 prover**: A cryptographic tool that generates ZK-proofs using Rust-based inputs. The prover resides in the AggLayer and is not directly connected to CDK sovereign chains. |
| 47 | +- **AggLayer node**: A critical component of the AggLayer that interfaces between CDK sovereign chains and the SP1 prover. It handles certificate validation and proof requests. |
60 | 48 |
|
61 | | - In reality, the AggSender sends certificates to the JSON-RPC API, which in turn requests the SP1 prover to generate ZK-proofs. On receipt of the ZK-proofs, it sends the ZK-proofs to L1. |
| 49 | +The AggSender within the CDK client communicates with the AggLayer node to facilitate proof generation and finalization of transactions. |
62 | 50 |
|
63 | | - See the high level view of the CDK PP chain architecture [here](../architecture/high-level-views.md) |
| 51 | +See the high level view of the architecture [here](../architecture/cdk-pp-highlevel-arch.md) |
0 commit comments