Skip to content

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 tokens

Key Concepts

ConceptDescription
NoteA private UTXO containing an amount, encrypted to your key
CommitmentHash of note data, stored on-chain in Merkle tree
NullifierUnique spend tag, prevents double-spending
ZK ProofProves 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.

Released under the MIT License.