Skip to main content
HUMΛN
Passport
Passport

Selective disclosure and L2 anchoring: proofs today, durable receipts tomorrow

HUMΛN Team··15 min·Web3 + Compliance engineers

A hiring portal asks for “proof of age over 21.” Your wallet dumps the whole credential: birth date, address, national ID number. The verifier needed one bit. You handed them a surveillance package.

Passport’s answer is selective disclosure for what you show today, and L2 anchoring for receipts that survive even if HUMΛN’s API is offline tomorrow.

Disclosure layer: prove the claim, not the dump

SD-JWT delivers claim-level selective disclosure with ES256 verifiers today—ideal when presentations do not need unlinkability across verifiers. You disclose the predicates the verifier asked for; the rest stays sealed.

BBS+ adds unlinkable presentations when two hiring teams comparing notes must not correlate candidates. Same person, different presentations, no shared fingerprint for a curious broker. See the BBS+ library post and unlinkable presentations.

Range predicates (honest staging): issuer-issued predicates (e.g. threshold flags computed at issuance) may ship before full cryptographic range proofs. Market honestly: say what the verifier learns and what still requires issuer trust. That is progressive honesty applied to crypto—not “ZK roadmap” fog.

Scroll-stopper: A credential dump is not proof of age—it is proof you do not understand disclosure.

Anchoring layer: verifiers without us

Testnet anchors validate pipeline and gas behavior without economic finality. Mainnet (e.g. Base) provides durable history and a neutral clock for third parties—verifiers use public RPC and open verification packages; HUMΛN API uptime is not required for inclusion checks.

That independence is the point of anchoring—not “we used a blockchain,” but verifiers can verify without us. Identity receipts that only exist inside our database fail Principle Four the moment our region goes dark.

Operations that earn the claim

  • BaseAnchorProvider (Viem-style) for submissions with retries and telemetry on failures.
  • KMS for operator keys; rotation runbooks with re-anchor policy documented.
  • Treat anchoring as production infra—on-call, dashboards, not a laptop script.

So that when a compliance officer asks “can I verify this without logging into your console?” the answer is a public path, not a support ticket.

Checklist: anchoring readiness

  • Testnet → mainnet promotion path documented; no silent environment switch.
  • Operator key rotation exercised in staging with verification script.
  • Verifier package pinned to semver with contract compatibility matrix.
  • Public story names interim vs Canon (predicates vs full range ZK) in the same merge that ships behavior.

Go deeper

— Part of