Skip to content

Commit 1bed4eb

Browse files
committed
CDK add pp intro doc
1 parent 5e80736 commit 1bed4eb

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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+
- 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.
43+
- Contracts: Various smart contracts deployed on L1 for the full implementation and complete functionality of the Polygon zkEVM protocol:
44+
- `PolygonRollupManager`
45+
- `PolygonZkEVMBridgeV2`
46+
- `PolygonZkEVMGlobalExitRootV2`
47+
- `FflonkVerifier`
48+
- `PolygonZkEVMDeployer`
49+
- `PolygonZkEVMTimelock`
50+
- CLI tool: A single command line interface tool for abstracting away the complexity of deploying or configuring CDK components.
51+
- 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.
52+
- Transaction pool manager: For storing transactions submitted by users.
53+
54+
## AggLayer-side components
55+
56+
- Succinct's SP1 prover: A simplified cryptographic tool designed to take Rust-written inputs in order to generate ZK-proofs.
57+
58+
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.
59+
60+
- JSON-RPC API: A component provided by the AggLayer to interface between the CDK PP chain and the SP1 prover.
61+
62+
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.
63+
64+
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)