Additional Context
Validated deployments:
- National identity: ZKPassport used in Aztec token sale (120+ country passports, NFC + Noir circuits); Anon Aadhaar
- Governance: NounsDAO Private Voting (Aztec + Noir storage proofs); MACI deployed at ETHDam, ETHMexico, ETH Tegucigalpa (anti-collusion)
- Community/sybil: POD2 (0xPARC); World ID (25M+ registrations)
- Email identity: zkEmail (DKIM proofs, email wallets on Arbitrum)
Actors
Credential Issuer (bank, government, DAO, university) · Prover / Subject (investor, citizen, voter, community member) · Verifier (smart contract, institution, election system) · Registry Operator (maintains on-chain commitment: Merkle root, attestation registry, membership set) · Auditor / Regulator (entity with scoped disclosure rights: financial regulator, election observer) · Wallet / Proof Agent (client-side proof generation: mobile wallet, browser extension, NFC reader)
Problems
Problem 1: Authentication Without Identity Leakage
Current authentication methods (e.g., message signatures) prove key control but expose addresses and create linkability between provers and verifiers. Two distinct but related needs emerge:
- Authentication: prover demonstrates membership or attribute possession without revealing identity.
- Interaction privacy: prevent on-chain linkability between prover addresses and verifier contracts.
Requirements:
- Must hide: prover identities, links between verifiers and provers, links between prover EOAs
- Public OK: registry roots, verifier contract addresses, compliance attestations
- Auditor access: scoped access to Merkle inclusion proofs, registry updates, or decryption keys where required
- Settlement: proof verification + transaction execution
- Ops: resilience against replay attacks; low-cost proof generation; interop across rollups; proof generation on consumer hardware
Problem 2: Credential Source Diversity
Different domains require different credential sources: government-issued IDs (passports, national IDs), institutional attestations (KYC providers), biometric enrollment, email ownership (DKIM), event attendance, and on-chain history. No single canonical identity system covers all use cases.
Requirements:
- Must support: document-based (passport NFC), attestation-based (EAS/VC), biometric-enrollment-based, email-based (DKIM), membership-based (Merkle tree), TLS-based (web2 data export)
- Must not require: a single canonical identity system or global registry
- Interop: credentials from different sources should be composable (e.g., prove KYC + jurisdiction + accreditation from different issuers in one proof)
Problem 3: Sybil Resistance Without Surveillance
Systems that distribute value (governance votes, token distributions) must prevent double-claiming without building a surveillance database. This requires deterministic, scope-bound nullifiers that prevent repeat actions without linking to the underlying identity.
Requirements:
- Must prevent: double-claiming, double-voting, distribution farming
- Must preserve: unlinkability across different scopes/services
- Must handle: revocation of compromised credentials without re-identifying holders
- Reference: vOPRF Nullifiers pattern for nullifier generation primitives
Problem 4: Credential Portability & Reuse
Institutions repeatedly collect the same credentials (KYC/KYB) from counterparties during onboarding. Reusable, privacy-preserving credentials that work across institutional contexts reduce onboarding cost and friction. Key challenges include cross-border recognition (a credential issued in one jurisdiction accepted in another), revocation propagation without de-anonymization (revoking a compromised credential without revealing which holder was affected), and credential freshness guarantees (proving a credential is still valid, not just that it was once issued).
Requirements:
- Must support: reuse of a single credential across multiple relying parties without re-disclosure of underlying data
- Must not require: a centralized credential database or single point of trust
- Must handle: cross-border credential recognition (e.g., eIDAS mutual recognition), revocation propagation, and credential expiry/refresh
- Reference: Verifiable Attestation pattern for attestation lifecycle primitives; OpenAC for privacy-preserving access control across relying parties
Recommended Approaches
| Credential Source | Primary Approach | Example Deployments |
|---|---|---|
| Institutional KYC registry | Merkle tree membership proofs | ERC-3643 issuances, Semaphore |
| Government ID (passport) | Document ZK proofs (NFC + Noir) | ZKPassport / Aztec token sale |
| Government ID (national) | Document DKIM/signature + ZK | Anon Aadhaar / ETHIndia |
| DKIM signature proofs | zkEmail / Arbitrum wallets | |
| Web2 data source | TLS transcript proofs | TLSNotary |
| Biometric enrollment | Iris/face hash + membership proof | World ID |
| Event/community | POD2 | POD2 (0xPARC) |
| Multi-party private inputs | Collaborative proving (co-SNARK) | TACEO |
| On-chain attestation | EAS / ONCHAINID / W3C VC | Tokeny, EAS |
| Civil registry / vital records | Government registry attestation + ZK | eIDAS 2.0, EUDI pilots |
| Professional license / certificate | Issuer attestation + revocation registry | EBSI, national licensing boards |
See detailed architecture and trade-offs in Approach: Private Identity.
Open Questions
- How practical is it to prove ownership of multiple EOAs derived from the same seed without revealing derivation patterns?
- Should multi-ownership proofs be handled at the wallet layer (BIP-32 style derivations) or at the protocol layer (aggregated ZK proofs)?
- How to establish cross-credential interoperability, e.g., combine a ZKPassport proof with an institutional attestation in a single transaction?
- What trust models are acceptable for biometric enrollment systems in different regulatory contexts?
- How to handle credential revocation across heterogeneous issuers without a central revocation authority?
- How do these building blocks map onto existing and emerging compliance frameworks (EUDI ARF, eIDAS 2.0, MiCA) across jurisdictions?
- How do government-issued verifiable credentials (eIDAS 2.0, EUDI Wallet) integrate with on-chain attestation registries for institutional KYC?
- What models enable credential reuse across institutions without creating a centralized identity database?
Notes And Links
- Standards: ERC-3643 ONCHAINID, EAS, W3C Verifiable Credentials, EIP-5564
- ZK Frameworks: Semaphore, Noir/Barretenberg, Circom/Groth16
- Credential Systems: ZKPassport, Self, Rarimo, Anon Aadhaar, zkEmail, TLSNotary, POD2, OpenAC
- Validated Deployments: WFP Building Blocks, OpenCerts
- See also: EPIC map (GovTech & EPIC team, demo data) — verifiable credentials, KYC/KYB, licensing, selective disclosure
- Related Patterns: Private MTP Auth, zk-TLS, Verifiable Attestation, vOPRF Nullifiers, Selective Disclosure, co-SNARK