Skip to content

Commit e95203a

Browse files
authored
Merge pull request 0xPolygon#2460 from 0xPolygon/cdk-pp-intro-components-1
DRAFT:CDK - Add pp intro doc
2 parents 71fd5e8 + c914e16 commit e95203a

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<!-- # Pessimistic proofs (PP) -->
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.
10+
11+
## What is a pessimistic proof?
12+
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.
14+
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.
16+
17+
Pessimistic proofs allow CDK sovereign chains connected to the [AggLayer](../../agglayer/overview.md) interoperate securely.
18+
19+
We henceforth refer to CDK sovereign chains as CDK PP chains.
20+
21+
## CDK PP stack
22+
23+
Next, we detail the architectural components of the CDK PP chains.
24+
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 |
28+
| ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
29+
| 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> | |
31+
| 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> | |
34+
35+
## Component descriptions
36+
37+
Here are brief descriptions for each CDK FEP component.
38+
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:
43+
- `PolygonRollupManager`
44+
- `PolygonZkEVMBridgeV2`
45+
- `PolygonZkEVMGlobalExitRootV2`
46+
- `FflonkVerifier`
47+
- `PolygonZkEVMDeployer`
48+
- `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.
60+
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.
62+
63+
See the high level view of the CDK PP chain architecture [here](../architecture/high-level-views.md)

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ nav:
5555
- Overview: cdk/overview.md
5656
- Releases:
5757
- Full execution proofs (FEP): cdk/releases/stack-components.md
58+
- Pessimistic proofs (PP): cdk/releases/pp-intro-components.md
5859
- Get started:
5960
- Local deployment guide: cdk/getting-started/local-deployment.md
6061
- CLI tool: cdk/getting-started/cli-tool.md

0 commit comments

Comments
 (0)