What is ZK Privacy?
ZK Privacy is a privacy layer for Ethereum that enables confidential transactions using zero-knowledge proofs.
How It Works
┌─────────────────────────────────────────────────────────────┐
│ Public Blockchain │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Privacy Pool │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Commitment│ │Commitment│ │Commitment│ ... │ │
│ │ │ #1 │ │ #2 │ │ #3 │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ Merkle Tree of Encrypted Notes │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Shield (deposit): Public tokens → Encrypted note in pool
Transfer (private): Note → Note (ZK proof, no public trace)
Unshield (withdraw): Note → Public tokensKey Concepts
| Concept | Description |
|---|---|
| Note | A private UTXO containing an amount, encrypted to your key |
| Commitment | Hash of note data, stored on-chain in Merkle tree |
| Nullifier | Unique spend tag, prevents double-spending |
| ZK Proof | Proves you own a note without revealing which one |
Why Use ZK Privacy?
Privacy by Default
Every transaction is private. Outside observers see:
- A proof was verified ✓
- Some commitment was spent (but not which one)
- New commitments were created
They cannot see:
- Who sent or received
- How much was transferred
- Your total balance
No Trusted Setup
Uses UltraHonk proofs via Aztec's bb.js:
- No ceremony required
- Proofs generated in browser
- ~30-60 second proving time
Compliance Ready
Optional compliance layer (UKRC) for regulated use cases:
- Guardian-based decryption
- Warrant-required access
- Full audit trail when needed
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Your Application │
└──────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ @zkprivacy/sdk │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │PrivacyClient │ │ Prover │ │ Key Manager │ │
│ │ (sync, tx) │ │ (NoirJS+bb) │ │ (derive, sign) │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
└──────────────────────────┬──────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Relayer │ │ Pool │ │ QuickSync │
│ (gasless) │ │ (contract) │ │ (sync) │
└─────────────┘ └─────────────┘ └─────────────┘Next Steps
Ready to start building? Follow the installation guide.