Zero-Knowledge Compliance
User-controlled compliance for privacy-preserving systems
ZKC enables users to generate cryptographic proofs satisfying regulatory requirements without revealing underlying private data. Compliance becomes a capability controlled by the user, not an enforcement mechanism controlled by the protocol. Zero-knowledge proofs, authenticated proof requests, holder-custodied disclosure receipts, privacy-preserving revocation, and verifier-controlled trust policies.
Design Principles
User Sovereignty
Users control when, what, and to whom they disclose. Compliance is an optional capability, not a mandatory constraint enforced by the protocol.
Protocol Neutrality
No compliance logic in the base protocol. ZKC is a separate layer that integrates with privacy-preserving payment systems without compromising their design.
Verifier Flexibility
Verifiers decide what proofs they accept and which issuers they trust. No central authority dictates compliance requirements.
Portability
Works across multiple chains and payment systems. Designed to integrate with ZKA, Namada, Penumbra, Ethereum L2s, and any privacy-preserving settlement layer.
Privacy Preservation
Proofs reveal the minimum necessary information. Anonymous presentation is the default; scoped continuity and globally linkable presentation require progressively more explicit consent.
Verifier Accountability
Every disclosure request is signed by the verifier. The holder keeps a self-contained receipt recording what was requested, for which purpose, and whether it was answered.
Open Predicates
No credential, predicate, or issuer is privileged. Predicate circuits are inspectable and versioned, and conforming SDKs refuse opaque predicates by default.
Protocol Composition
ZKC establishes eligibility, ZKM authorization establishes permission to act, and ZKA settlement establishes whether the value transition settles. Each remains independently verified.
Compliance as Capability
ZKC inverts the traditional compliance model:
| Traditional Model | ZKC Model |
|---|---|
| Protocol enforces compliance | User generates compliance proofs |
| Counterparty demands access | User chooses what to disclose |
| Compliance is mandatory | Compliance is optional capability |
| Protocol knows identity | Protocol is identity-blind |
| Regulators access protocol | Regulators verify user proofs |
Compliance Proof Example
Illustrative pseudocode: users generate ZK proofs to satisfy verifier requirements without revealing private data. The normative interfaces are defined in the specification.
// User wants to deposit to a compliant exchange
// Exchange requires: KYC + sanctions clearance
// 1. User already holds credentials from trusted issuers
const credentials = client.listCredentials({
types: ["zkc:cred:kyc:v1", "zkc:cred:sanctions:v2"],
notExpired: true
});
// 2. Exchange signs an Authenticated Proof Request (APR)
const request = {
requirements: {
proofTypes: ["zkc:proof:kyc:v2", "zkc:proof:sanctions:v8"],
parameters: {
"zkc:proof:kyc:v2": { minLevel: "enhanced" },
"zkc:proof:sanctions:v8": {
canonicalSet: [100, 200],
setRoot: "0x2dd2eee7fc84e095b925d9a97a60a1ad3647661c51935f61d4c3dacbff4ec3ec"
}
},
maxProofAge: Duration.hours(24),
context: {
profile: "zkc:context:purpose-bound:v1",
value: purposeBoundContext,
purpose: "exchange deposit eligibility"
}
},
trustPolicy: exchange.trustPolicy
};
const apr = {
request,
verifierId: exchange.id,
nonce,
issuedAt,
expiresAt,
signature: exchangeSignature
};
// 3. The holder SDK validates the APR signature, expiry, nonce, and
// purpose-bound context, then records separate consent for each atomic
// predicate before calling the canonical generation interface.
const proof = await client.generateProof(apr.request, credentials);
// Proves: valid KYC + clear sanctions screening
// Hides: name, address, DOB, specific issuer, credential ID
// Default presentation: zkc:presentation:anonymous:v1
// 4. The verifier validates the same signed APR and proof (~15ms)
const result = await verifyComplianceProof(exchange, proof, apr.request, apr);
// result.valid === true
// 5. The holder retains a Disclosure Receipt for the signed request
The exchange learns only that the user meets requirements. No personal data crosses the wire.
Credential Types
ZKC publishes non-exclusive, well-known reference credential types for interoperability. Verifiers may accept other open credential and predicate definitions.
KYC
Prove identity verification level without revealing personal data. Tiered: basic, enhanced, institutional.
ZKC-CoreJurisdiction
Prove residency in an allowed jurisdiction (or absence from blocked list) via set membership proofs.
ZKC-StandardAccreditation
Prove accredited investor or professional status without revealing income or net worth.
ZKC-StandardSource of Funds
Prove funds originated from verified sources without revealing exact amounts or account details.
ZKC-StandardTax Compliance
Prove tax obligations have been met for a jurisdiction without revealing filed amounts.
ZKC-StandardSanctions Clearance
Prove absence from OFAC, UN, EU, UK sanctions lists with recent screening verification.
ZKC-StandardAttribute Set
Selectively disclose fixed-position attributes while proving every revealed value came from issuer-authoritative state.
Reference ProfileProtocol Stack
Getting Started
Read the Spec
Understand credential types, proof circuits, attestation layer, and verifier integration.
View SpecificationAgent Integration
LLM-optimized documentation for autonomous agent consumption and automated compliance.
View llms.txtZKA Protocol
Learn how ZKC integrates with ZKA privacy-preserving payments for compliant shielded transactions.
Visit ZKA.devUse Cases
- Compliant DeFi Access: Prove KYC and accreditation status to access regulated DeFi protocols without revealing personal data
- Cross-Border Compliance: Prove jurisdiction residency for regulatory requirements using set membership proofs
- Institutional On-Ramps: Satisfy exchange deposit requirements with aggregated proofs covering KYC, source of funds, and sanctions clearance
- Tax Reporting: Prove tax compliance to counterparties without revealing filed amounts or specific obligations
- Agent Compliance: AI agents automatically generate and present compliance proofs based on configurable policies
- Privacy-Preserving AML: Demonstrate sanctions screening clearance without revealing identity to the verifier