Skip to content

Commit dc6b842

Browse files
authored
Create pp-intro.components.md
Adding new doc: `pp-intro.components.md`
1 parent 49d7747 commit dc6b842

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
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.
2+
3+
Developers can, for instance, configure their chains to use provers that are outside the Polygon zkEVM stack.
4+
5+
Specifically, instead of deploying a Polygon zkEVM prover, developers can configure their CDK sovereign chains to utilize Succinct's SP1 prover.
6+
7+
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.
8+
9+
## What is a pessimistic proof?
10+
11+
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.
12+
13+
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.
14+
15+
Pessimistic proofs allow CDK sovereign chains connected to the [AggLayer](../../agglayer/overview.md) interoperate securely
16+
17+
We henceforth refer to CDK sovereign chains as CDK PP chains.
18+
19+
## CDK PP stack
20+
21+
Next, we detail the architectural components of the CDK PP chains.
22+
23+
The table below lists the components of a CDK PP chain and where you can find them.
24+
25+
| Component | CDK PP stack | Notes |
26+
| ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
27+
| Node = RPC and sequencer | [cdk-erigon](https://github.com/0xPolygonHermez/cdk-erigon) | Customizable, commonly:<br/>\- Sequencer = 1 node<br/>\- RPC = multiple nodes |
28+
| Contracts | <a href=https://github.com/0xPolygonHermez/zkevm-contracts>zkevm-contracts</a> | |
29+
| CLI | [cdk](https://github.com/0xPolygon/cdk) | Included in [CDK](https://github.com/0xPolygon/cdk) repo |
30+
| AggSender | <a href=https://github.com/0xPolygon/cdk>cdk</a> | Included in [CDK](https://github.com/0xPolygon/cdk) repo |
31+
| Tx pool manager | <a href=https://github.com/0xPolygon/zkevm-pool-manager> zkevm-pool-manager</a> | |
32+
33+
## Component descriptions
34+
35+
Here are brief descriptions for each CDK FEP component.
36+
37+
- CDK Erigon node, a fork of [erigon](https://github.com/ledgerwatch/erigon), that manages the following:
38+
- Multiple RPC nodes that provide common APIs for sending transactions.
39+
- Sequencer for executing transactions, and creating blocks and batches.
40+
- 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.
41+
- Contracts: Various smart contracts deployed on L1 for the full implementation and complete functionality of the Polygon zkEVM protocol:
42+
- `PolygonRollupManager`
43+
- `PolygonZkEVMBridgeV2`
44+
- `PolygonZkEVMGlobalExitRootV2`
45+
- `FflonkVerifier`
46+
- `PolygonZkEVMDeployer`
47+
- `PolygonZkEVMTimelock`
48+
- CLI tool: A single command line interface tool for abstracting away the complexity of deploying or configuring CDK components.
49+
- 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.
50+
- Transaction pool manager: For storing transactions submitted by users.
51+
52+
## AggLayer-side components
53+
54+
- Succinct's SP1 prover: A simplified cryptographic tool designed to take Rust-written inputs in order to generate ZK-proofs.
55+
56+
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.
57+
58+
- JSON-RPC API: A component provided by the AggLayer to interface between the CDK PP chain and the SP1 prover.
59+
60+
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.
61+
62+
See the high level view of the CDK PP chain architecture [here](../architecture/high-level-views.md)

0 commit comments

Comments
 (0)