ZK-ID Roadmap
This roadmap focuses on security, interoperability, and production readiness. Dates are estimates.
Current State (Completed)
- β Multi-attribute credentials (birthYear, nationality)
- β Groth16 circuits for age + nationality
- β Signed credentials (Ed25519) with issuer verification
- β Signed-circuit option (BabyJub EdDSA in-circuit)
- β Nonce + timestamp binding in circuits
- β Server-issued challenge flow (nonce + timestamp)
- β Issuer registry (trusted issuers, status, validity)
- β Revocation store (commitment-based)
- β Merkle revocation accumulator scaffold (in-memory demo)
- β Revocation proofs in circuit (Merkle inclusion for valid-set)
- β Revocation SDK integration (TypeScript prover/verifier for revocable credentials)
- β Batch verification
- β Telemetry hooks
- β Demo web app with signed and unsigned flows
- β
OpenAPI schema (
docs/openapi.yaml) - β Protocol versioning (core + SDK + demo)
- β Revocation root metadata helpers + demo endpoint
- β Postgres valid-credential tree (reference implementation)
- β Demo rate limiting for verification endpoints
- β v0.4.1 patch: stable valid-credential tree indexing, merkle-root freshness guard, added regression tests
- β Revocation root distribution MVP (TTL policy, freshness guards, witness refresh rules, endpoint caching guidance)
- β Issuer trust & key lifecycle (registry metadata, key rotation, suspension/deactivation workflows)
- β API & protocol clarity (JSON schemas for SDK inputs, OpenAPI completion, payload validation)
- β Security policy hardening (expanded threat model with mitigations, hardening checklist)
- β
Audit log adapter interface (
AuditLogger,InMemoryAuditLogger, wired into issuer + SDK server) - β JSON schema interop tests (ajv-based validation of TS objects against published schemas)
- β
Distributed tree sync (
SyncedValidCredentialTree+RedisTreeSyncChannelin@zk-id/redis) - β
Browser wallet prototype (
BrowserWallet,CredentialStore,IndexedDBCredentialStorein@zk-id/sdk) - β
Performance benchmarks with targets (
BenchmarkResult,PERFORMANCE_TARGETS,runBenchmarkin@zk-id/core) - β
Protocol deprecation policy (
DEPRECATION_SCHEDULE,getVersionStatus,isVersionDeprecated,buildDeprecationHeaders) - β
KMS/HSM integration examples (
EnvelopeKeyManager,FileKeyManagerin@zk-id/issuer) - β
Issuer policy tooling (
IssuerPolicy,checkKeyRotation,validateIssuerPolicy,generateRotationPlanin@zk-id/issuer) - β
Issuer dashboard prototype (
IssuerDashboard,DashboardStats,IssuerSummaryin@zk-id/sdk) - β
ISO 18013-5/7 standards mapping (
toMdlElements,createAgeOverAttestation,STANDARDS_MAPPINGSin@zk-id/issuer) - β
Multi-claim proof types (
MultiClaimRequest,createMultiClaimRequest,expandMultiClaimRequestin@zk-id/core) - β
Proving system abstraction (
ProvingSystem,Groth16ProvingSystem,PLONKProvingSystem, pluggable registry) - β
Nullifier system for sybil resistance (
computeNullifier,createNullifierScope,NullifierStore) - β
Recursive proof aggregation scaffold (
RecursiveAggregator,LogicalAggregator,AggregatedProof) - β
v1.0.0 audit checklist (
docs/AUDIT.md) - β
BBS selective disclosure (
generateBBSKeyPair,deriveBBSDisclosureProof,verifyBBSDisclosureProofin@zk-id/core) - β
BBS credential issuer (
BBSCredentialIssuerin@zk-id/issuer) - β
Unified revocation manager (
UnifiedRevocationManagerwith two-store architecture: tree + issued index) - β
IssuedCredentialIndexinterface andInMemoryIssuedCredentialIndex(append-only, distinguishes revoked from never-issued) - β
Proof type discriminators (
ZkProofdiscriminated union,proofTypeon all proof interfaces) - β
Input validation module and
anytype elimination across all packages - β
Sparse Merkle tree (
SparseMerkleTreewith hash-addressed leaves, O(nΓdepth) storage, non-membership proofs) - β Boundary and concurrency tests (tree edge cases, concurrent operations, Poseidon hash boundaries)
- β
On-chain Groth16 verifier (Solidity,
@zk-id/contracts) - β
W3C VC interoperability (
toW3CVerifiableCredential,fromW3CVerifiableCredential, DID key support) - β v1.0.0 comprehensive documentation (threat model, circuit diagrams, deployment guide)
- β Error sanitization and verbose error mode
- β CI security hardening (pinned actions, minimal permissions, supply chain protections)
Now (Next 2β6 Weeks)
All current βNowβ items are complete! The next focus area is Q2 2026 Near Term work.
Previous βNowβ items (completed)
-
β Compliance Regulation Mapping: UK OSA, EU DSA, eIDAS 2.0 documentation with known gaps and deployment checklists
-
β Revocation Root Distribution (MVP): root versioning, TTL policy, witness refresh rules, endpoint caching
-
β Security Readiness: security policy, threat model, circuit artifact hashes, reproducible builds
-
β Issuer Trust & Key Lifecycle: registry spec, metadata, onboarding/deactivation workflow
-
β API & Protocol Clarity: REST contracts, JSON schemas, OpenAPI, protocol versioning
Near Term (Q2 2026)
Mobile & Cross-Platform (Moved up from Q4+)
-
Mobile SDK (React Native)
- React Native wrapper around core TypeScript libraries
- Proof generation on iOS and Android
- Secure credential storage (Keychain/Keystore integration)
- Example mobile app demonstrating age verification flow
-
Credential Exchange Protocol
- DIF Presentation Exchange v2.0 support
- OpenID4VP (OpenID for Verifiable Presentations) integration
- Standardized request/response flow for wallets
- Interoperability with existing VC/VP ecosystems
-
Developer Portal & Playground
- Interactive documentation and tutorials
- βVerify your first proof in 5 minutesβ quick start
- Live sandbox environment for testing
- API reference with code examples in multiple languages
Previous Near Term items (completed)
- β Revocation Lifecycle & Root Distribution: versioning, dissemination, incremental tree optimization, distributed sync
- β Production Storage & Reliability: Postgres tree, Redis store, rate limiting, audit logging
- β Wallet Integration: browser wallet prototype, credential backup/recovery
- β Performance & Compatibility: benchmarks, protocol versioning, interop tests
Mid Term (Q3 2026)
-
Multi-Language SDK Support
- Python SDK for server-side verification
- Go SDK for enterprise backends
- Java/.NET consideration for regulated industries
- Consistent API surface across languages
-
Trusted Setup Ceremony Service
- Hosted, auditable trusted setup ceremonies
- Multi-party computation (MPC) for production Groth16 parameters
- Transparency logs and public verification
- Integration with ceremony coordination tools (e.g., perpetual powers of tau)
Previous Mid Term items (completed or deprioritized)
- β Standards Alignment: ISO 18013-5/7 mappings, external credential formats
- β Completed cryptography: Multi-claim proofs, proving system abstraction, nullifiers, BBS disclosure, sparse Merkle tree
- β Operational Tooling: issuer dashboard, key rotation, KMS/HSM examples
Deprioritized (moved to Long Term or deferred)
- Recursive proof circuit implementation (Groth16-in-Groth16 / Nova / Halo2) - interesting but low near-term impact
- PLONK SRS generation - flexibility improvement, not critical for current use cases
- BBS+SNARK hybrid - niche cryptography, defer until demand proven
- Non-membership circuit - sparse Merkle tree is complete, circuit integration can wait
Long Term (Q4 2026+)
-
Formal Verification + Audits
- Third-party audit of circuits and SDK (see
docs/AUDIT.mdfor scope) - Formal verification of core constraints
- Production-ready trusted setup (coordinated via MPC ceremony)
- Third-party audit of circuits and SDK (see
-
Nullifier Circuit Integration β Partially Complete (v0.6.0)
- β
Circom circuit that computes
Poseidon(commitment, scopeHash)and exposes the nullifier as a public signal - Integrate nullifier proof with age/nationality verification (combined circuit)
- On-chain nullifier set for trustless sybil detection (now more feasible with
@zk-id/contracts)
- β
Circom circuit that computes
-
Multi-Issuer Trust Framework
- Trust scoring, federation, and cross-jurisdiction policies
- Multi-issuer credentials and threshold issuance
- Cross-border identity verification agreements
-
Advanced W3C VC/DID Interoperability β Initial items complete (v1.1.0)
- β
Basic W3C VC conversion:
toW3CVerifiableCredential,fromW3CVerifiableCredentialin@zk-id/core - β
DID key support:
ed25519PublicKeyToDidKey,didKeyToEd25519PublicKeyutilities - Full W3C VC v2.0 compliance: Credential envelope passes VC validators (not yet complete)
- JSON-LD
@contextalignment: Embed zk-id-specific context URL - VC Data Integrity proof suite: Define
zkProof2026proof type with Groth16 verification method - DID resolution: Support
did:web,did:key, anddid:ionfor issuer identifiers - Interoperability testing: Participate in W3C VC-WG interop events
- Cross-ecosystem integration: Wallets supporting both traditional VCs and zk-id ZK proofs
- β
Basic W3C VC conversion:
-
Enterprise Scale & Acceleration
- SLA-grade monitoring, alerts, and compliance tooling
- Hardware acceleration options (rapidsnark, GPU proving)
- Cloud-native deployment patterns (Kubernetes, serverless)
- Enterprise support and training programs
-
Advanced Cryptography (Deprioritized from Q3)
- Recursive proof aggregation: actual circuit implementation (Groth16-in-Groth16 / Nova / Halo2)
- Non-membership circuit: Circom circuit verifying sparse Merkle non-membership witness inside SNARK
- PLONK: generate universal SRS and PLONK-compatible zkeys for all circuits
- BBS+SNARK hybrid: prove predicates (age >= 18) over BBS-signed messages inside a SNARK circuit
Open Questions
Should revocation be exclusion proof (non-membership) or inclusion proof of revoked list?Resolved: Valid-set inclusion for v0.3.0 (dense Merkle tree).SparseMerkleTreeadded in v0.6.0 withgetNonMembershipWitness()for exclusion proofs. Circuit integration (non-membership verification inside SNARK) is next.- Should issuer identity be a DID or a more constrained identifier? Leaning DID: W3C DID Core is a recommendation;
did:webordid:keywould provide interop with the VC ecosystem. Which universal setup should be supported first (PLONK, Marlin, or Halo2)?Resolved: PLONK (via snarkjs) is scaffolded first since it shares the BN128 curve and circom toolchain. Halo2 deferred to post-v1.0 due to circuit rewrite requirements.- What privacy budget is acceptable for metadata leakage (issuer, issuance time)?
When should we migrate from valid-set inclusion to revocation-list exclusion proofs?Resolved:SparseMerkleTreesupports both models. Valid-set inclusion remains the primary approach; non-membership proofs are available for scenarios that need exclusion proof (e.g., proving a revoked credential is no longer valid). Circuit integration is the remaining step.
Version Targets (Tentative)
- v0.2.x: Challenge flow + issuer registry + signed circuits (done)
- v0.3.0: Revocation proofs in circuit (Merkle inclusion) (done)
- v0.4.0: Revocation SDK integration (done)
- v0.4.1: Revocation-tree stability + Merkle root freshness guard (done)
- v0.4.2: Protocol versioning, revocation root helpers, Postgres tree, demo rate limiting (done)
- v0.4.5: Incremental Merkle tree optimization, witness freshness helper, Redis storage (done)
- v0.5.0: Wallet prototype + distributed tree synchronization + benchmarks + deprecation policy (done)
- v0.6.0: KMS/HSM + policy + dashboard + standards + multi-claim + proving abstraction + nullifiers + recursive scaffold + BBS selective disclosure + unified revocation + sparse Merkle tree + type safety (done)
- v0.7.0 (completed): On-chain verifier + W3C VC interoperability + compliance regulation mapping
- v0.8.0 (Q3 2026): Mobile SDK + credential exchange protocol + developer portal
- v1.0.0 (Q4 2026): Audit-ready release + multi-language SDKs + trusted setup ceremony
- v2.0.0 (2027+): Full W3C VC compliance + third-party audit + advanced cryptography + enterprise scale
Priority Strategy Notes (February 2026):
The roadmap has been reordered to prioritize ecosystem integration over cryptographic enhancements. Rationale:
-
On-chain verification is table stakes for Web3 adoption. Without it, zk-id cannot compete with Polygon ID, Semaphore, or Worldcoin in the DeFi/DAO space.
-
W3C VC compliance (moved from 2027 to now) is required for enterprise and government adoption. The βenvelope formatting is not a security concernβ argument is technically correct but strategically wrong β interoperability drives adoption.
-
Mobile SDK is critical for real-world identity use cases. Desktop-only verification limits applicability to a shrinking market.
-
Compliance documentation (UK/EU regulations) transforms zk-id from a βtech projectβ to a βcompliance solutionβ β this drives enterprise demand.
Advanced cryptography (recursive proofs, PLONK, BBS+SNARK hybrid) has been deprioritized to Q4 2026+ because:
- Current Groth16 implementation works well for the core use case
- Ecosystem gaps (on-chain, mobile, W3C) are more critical than marginal cryptographic improvements
- Resources are better spent on adoption (developer experience, standards compliance) than optimization
Competitive positioning: The gap between zk-id and funded competitors (Polygon ID, Worldcoin) is not in cryptography β itβs in ecosystem integration. Closing that gap is the strategic priority for 2026.
Last updated: 2026-02-10