Skip to content

Zero Knowledge

Zeroledger uses zk to prove transaction amount validity without disclosing transferred amount publicly. Please take a look at open-source circuits repo that contains all components nessasary to compile, generate and verify proofs.

PLONK Proving System

Why PLONK?

PLONK (Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge) was chosen for ZeroLedger because:

  • Universal Setup: Single trusted setup ceremony for all circuits
  • Efficiency: Optimized for practical proving times
  • Flexibility: Supports various circuit constraints
  • Browser Compatibility: Works well in web environments

Trusted Setup

ZeroLedger uses the public BN254 "Powers of Tau" ceremony, which means:

  • No additional trusted setup required
  • Publicly verifiable parameters
  • Reduced trust assumptions
  • Community-validated security

Circuit Architecture

Circuit Types

ZeroLedger implements multiple circuit variants to handle different transaction patterns:

Deposit Circuit

  • Purpose: Convert public tokens to private commitments
  • Inputs: Public token amount, randomization factors
  • Outputs: Three private commitments
  • Proving Time: ~1.5 seconds

Spend Circuits

Multiple variants supporting different input/output combinations:

CircuitInputsOutputsProving Time
1-1111.5s
1-2121.7s
1-3132.1s
2-1211.7s
2-2222.1s
2-3233.2s
3-1312.1s
3-2323.2s
3-3333.6s

Aggregation Circuits

For power users who need to consolidate many commitments:

CircuitInputsOutputsProving Time
6-1815.0s
12-11617.5s

Proof Generation

Browser-Based Proving

ZeroLedger generates proofs directly in the browser using:

  • WebAssembly: For efficient circuit execution.
  • Web Workers: For non-blocking proof generation
  • Optimized Libraries: CircomlibJS and SnarkJS

Proving Process For Compiled Circuit

  1. Witness Generation: Create witness for specific inputs
  2. Proof Generation: Generate PLONK proof
  3. Verification: On-chain proof verification

Official tools from circom were used for circuit compilation and evm verifiers generation

Security Considerations