Status: Complete Privacy Primitive: Confidential stablecoin transfers with regulatory compliance
This PoC group demonstrates privacy-preserving institutional payment protocols. Institutions can deposit, transfer, and withdraw stablecoins without exposing amounts, counterparties, or transaction patterns to public observers, while maintaining auditability for regulators.
Two implementation approaches are provided:
| Approach | Description | Location |
|---|---|---|
| Shielded Pool | On-chain UTXO pool with ZK proofs (Noir/Groth16) | shielded-pool/ |
| Plasma (Intmax) | Stateless ZK-rollup with off-chain transfers | plasma/ |
See REQUIREMENTS.md for the shared requirements both approaches implement.
- shielded-pool/SPEC.md: Shielded pool protocol design
- plasma/SPEC.md: Intmax2 plasma protocol design
| Aspect | Shielded Pool | Plasma (Intmax) |
|---|---|---|
| Deployment | Ethereum L1 | L2 rollup (posts roots to L1) |
| State model | UTXO (commitments, nullifiers) | UTXO (client-side balance trees) |
| Privacy mechanism | ZK proofs per transaction | ZK proofs per transaction |
| Proving system | Groth16 via Noir/Barretenberg | Plonky2 (recursive, transparent) |
| Trusted setup | Yes (circuit-specific) | None |
| Operator required | No, but compliance authority required | Yes (block builder, validity prover) |
| Gas cost per transfer | ~2.6M (user pays directly) | Off-chain (operator posts batched roots) |
| Proof generation | Sub-second, client-side | Multi-second, mix of client-side + server-side |
| Regulatory access | Per-note viewing keys | Dual-key (viewing key for audits) |
| Client requirements | Wallet with local proving | SDK with network calls to operator services |
See BENCHMARK.md for gas costs, proof generation latency, and an interpretation of the results.
cd shielded-pool
# Install Solidity dependencies
forge soldeer install
# Build and test contracts
forge build && forge test
# Build and test circuits
nargo compile --workspace && nargo test --workspaceSee shielded-pool/README.md for E2E test instructions and deployment configuration.
cd plasma
# Build
cargo check
# Run integration test (requires Docker + Anvil)
cargo test --release -- --nocaptureSee plasma/README.md for prerequisites and known limitations.
See each approach's README for specific limitations: