Skip to content

Commit 6d941c1

Browse files
authored
Update README.md
1 parent fcab6aa commit 6d941c1

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@
44
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
55
[![Branch](https://img.shields.io/badge/branch-zkc0dl3-blueviolet.svg)](https://github.com/ColinRitman/C0DL3/tree/zkc0dl3)
66

7-
**C0DL3** is a sovereign ZK privacy darkpool Layer-3 for the public zkSync ecosystem. Every account is an AA smart contract wallet allowing all balances to be private by default-- storing Pedersen commitments instead of plaintext values. A shielded pool provides full sender/recipient anonymity on demand. Fixed-denomination bridge pools (HEAT, ZK, C0LD, ETH) create anonymity sets at the privacy boundary. ZK validity proofs are generated via SP1 (RISC-V zkVM).
7+
**C0DL3** is a sovereign ZK privacy darkpool Layer-3 for the public zkSync ecosystem. Every account is an AA smart contract wallet allowing all balances to be private by default-- storing Pedersen commitments instead of plaintext values. A shielded pool provides full sender/recipient anonymity on demand. Fixed-denomination darkbridge pools (HEAT, ZK, C0LD, ETH) create anonymity sets at the privacy boundary. ZK validity proofs generated via SP1 (RISC-V zkVM).
88

99
---
1010

1111
## Architecture
1212

1313
```
1414
User Wallet (SDK)
15-
│ UserOperation (commitments + proofs, no plaintext amounts)
15+
│ UserOperation (commitments + proofs instead of public/plaintext amounts)
1616
1717
Sequencer (C0DL3 node)
1818
│ Blind processing — sees only commitments
1919
2020
SP1 Prover
2121
│ Groth16 proof of block validity
2222
23-
zkSync Era (settlement) → Ethereum (L1)
23+
zkSync Era L2 (settlement) → Ethereum (L1)
2424
```
2525

2626
**Privacy layers:**
@@ -38,17 +38,17 @@ zkSync Era (settlement) → Ethereum (L1)
3838

3939
## Key Features
4040

41-
### Privacy-by-Default Account Abstraction
41+
### Default Privacy by Account Abstraction
4242
Every account is a `PrivateWallet` contract storing `balanceCommitment` — a Pedersen commitment `C = amount*G + r*H`. The sequencer never sees plaintext balances. Wallet auth uses Schnorr signatures (Ristretto255). Gas is paid by paymasters to break the sender-gas link.
4343

4444
### Shielded Pool
45-
For full anonymity (hidden sender + recipient), the SDK auto-routes transfers through the shielded pool: shield → private transfer → delayed unshield. Commitments, nullifiers, Merkle membership proofs — nothing is revealed to the sequencer.
45+
For full anonymity (hidden sender + recipient + amount), the SDK auto-routes transfers through the shielded pool: shield → private transfer → delayed unshield. Commitments, nullifiers, Merkle membership proofs — nothing is revealed to the sequencer.
4646

4747
### Confidential Transactions
4848
Transfers using Pedersen commitments are verified by the conservation check precompile: `old_sender_commit - new_sender_commit == new_recipient_commit - old_recipient_commit`. Bulletproofs ensure amounts stay in `[0, 2^64)`.
4949

5050
### Precompile Suite
51-
C0DL3 ships privacy-native and Ethereum-compatible precompiles, all SP1-accelerated:
51+
C0DL3 ships both privacy-native and Ethereum-compatible precompiles, all SP1-accelerated:
5252

5353
**Privacy primitives:**
5454

@@ -86,7 +86,7 @@ BN254 ecPairing (0x0008) enables on-chain Groth16 ZK proof verification in any S
8686

8787
### Sovereign Prover
8888

89-
C0DL3 uses a **sovereign prover model** — anyone with a GPU can prove blocks and earn HEAT rewards. No centralized prover network required.
89+
C0DL3 uses a **sovereign prover model** — anyone with a GPU can prove blocks and earn HEAT rewards.
9090

9191
**Proof flow:**
9292

@@ -99,7 +99,7 @@ C0DL3 uses a **sovereign prover model** — anyone with a GPU can prove blocks a
9999
6. Block hard-confirmed ─── proof batched for L2 settlement
100100
```
101101

102-
**Settlement path:** `L3 batch → SP1 Groth16 proof → COLDL3Settlement.sol on zkSync Era → Ethereum L1`
102+
**Settlement path:** `L3 batch → Groth16/PLONK proof → COLDL3Settlement.sol on zkSync Era L2 → Ethereum L1`
103103

104104
**Proof modes:**
105105

@@ -142,8 +142,8 @@ SP1 patches active: `sha2`, `curve25519-dalek-ng` (Ristretto255), `k256` (secp25
142142
│ ├── privacy/ Shielded pool, commitment proofs, stealth addresses
143143
│ ├── genesis/ Chain identity, testnet bootstrap, initial allocations
144144
│ ├── proving/ SP1 proof verification (real-proofs feature gate)
145-
│ ├── bridge/ Canonical bridge (Era ↔ C0DL3, withdrawal tree)
146-
│ ├── settlement/ L3→L2 batch settlement pipeline
145+
│ ├── bridge/ Canonical darkbridge (Era ↔ C0DL3, withdrawal tree)
146+
│ ├── settlement/ L3→L2→L1 batch settlement pipeline
147147
│ └── storage/ Persistent state (sled KV store)
148148
├── program/ SP1 guest — zkVM block proof circuit
149149
│ ├── src/main.rs Block verification phases (state, EVM, privacy, AA)
@@ -153,7 +153,7 @@ SP1 patches active: `sha2`, `curve25519-dalek-ng` (Ristretto255), `k256` (secp25
153153
│ ├── PrivateWallet.sol AA wallet (Pedersen commitments)
154154
│ ├── Paymaster.sol Gas payment abstraction
155155
│ ├── COLDL3Settlement.sol L2 settlement (SP1 proof verification)
156-
│ └── C0DL3Bridge.sol Canonical bridge (deposit pools, withdrawal proofs)
156+
│ └── C0DL3Bridge.sol Canonical darkbridge (deposit pools, withdrawal proofs)
157157
├── sdk/ Wallet SDK — proof builders, auto-shield, stealth, memos
158158
├── prover/ Standalone SP1 prover node
159159
├── explorer/ Minimal block explorer UI (served at /explorer)

0 commit comments

Comments
 (0)