Zero-knowledge presentations
Selective-disclosure proofs for predicates like grade ≥ A3, age threshold, credential active, issuer accepted and credential unexpired — without revealing raw attributes.
Protocol-level identity on a sovereign Cosmos SDK chain: the network publishes trust roots, not identities. KYC happens once with an accepted issuer; everything after is the holder proving claims in zero knowledge against those roots.
Selective-disclosure proofs for predicates like grade ≥ A3, age threshold, credential active, issuer accepted and credential unexpired — without revealing raw attributes.
The chain stores compact issuer status commitments, not per-holder state. A signed status root is published every 30 seconds, with immediate emergency roots.
A presentation is valid for ten seconds and bound to a unique challenge, exact audience/origin, requested policy, current status root and finalized chain height.
A holder can revoke their own credential without the issuer, in a way that reveals neither their identity nor a normal credential identifier.
Assurance is one of A1–A4; only a commitment is public. A verifier receives a threshold proof such as “grade ≥ A3” without learning the exact grade.
Live state scales with issuers, verifiers, validators and active commitments — never with the number of holders or presentations.
ZK presentation — perishable by design
claim
"grade ≥ A3"
never the attributes
challenge
unique nonce
no replay
audience
exact origin
no relaying
status_root
current issuer root
revocation-fresh
height
finalized block
chain-anchored
lifetime
10 seconds
perishable
fig. 1 — what a presentation binds · nothing else leaves the wallet
An accepted issuer performs KYC once and issues an anonymous credential bound to keys the holder controls.
The issuer publishes a signed status root every 30 seconds; revocation is a private witness against that root, not a per-holder record on-chain.
On a verifier’s challenge, the holder assembles a 10-second zero-knowledge presentation, fully bound to verifier, origin, policy, root and chain height.
A KYC-approved verifier checks the proof against the latest finalized issuer and verifier state, online, and stores only a minimal decision record.
Issuers can revoke (including immediate emergency roots); holders can self-revoke; lost keys are recovered only by fresh KYC and a new, unlinkable credential.
This loop is reusable KYC in practice — one verification, many proofs. For the plain-language walkthrough, read Reusable KYC explained on the blog.
Built on Cosmos SDK + CometBFT with Protocol Buffers for every message and state. No network, clock, randomness, HSM, RPC or FFI ever runs in a block-execution path.
Consensus-visible logic: idchaind, Cosmos SDK modules, deterministic transaction handlers, registries, token economics, CLI and node APIs.
Anonymous-credential and zero-knowledge proof core: circuits, revocation witnesses, the self-revocation prover, and known-answer test vectors.
Simulations, load and fault harnesses, integration-test orchestration, automation and analytics — never consensus-path or production-crypto code.
Wondering how these choices stack up against other identity chains? See MintID vs Concordium for an honest side-by-side.
Your wallet keeps its own encrypted log of every presentation and every disclosure — reconcilable against the on-chain disclosure receipts, so you can prove to yourself the record is complete. There is no server-side log anywhere to ask, subpoena or leak: the only complete history of your identity’s use is the one you hold.
Requirements R1–R28, the consensus and validator program, monetary policy, and the module map all live in the protocol spec.