TECHNOLOGIES

Zero-Knowledge

Zero-Knowledge Proof (ZK)

A cryptographic technique that proves a statement is true without revealing the data behind it.

Last reviewed: byKevin Riedl wiki ↗

A zero-knowledge proof lets one party (the prover) convince another (the verifier) that they know some piece of information, without disclosing the information itself. The canonical example: prove that you are over 18 without revealing your date of birth.

In production, ZK shows up in two flavors. ZK-SNARKs are smaller and faster to verify but require a trusted setup. ZK-STARKs are larger and slower but need no trusted setup and are post-quantum safe. Most chains now offer pre-built circuits for common proofs (identity, balance, voting eligibility) so you do not need a cryptographer on staff to ship a smart contract that verifies them.

Worked example where ZK earns its keep: a regulated exchange has to prove to an auditor that every user passed KYC, without handing the auditor a database of names and passport numbers. A zero-knowledge proof lets the exchange attest “this set of accounts is fully KYC-verified” while the underlying identities stay private. In the EU, where GDPR makes that passport database a liability you would rather not hold, the privacy is not a nice-to-have, it is the point. The counter-example is just as instructive: if a trusted database query would satisfy the verifier, ZK is expensive theatre.

The honest engineering trade-off, and the most common founder mistake: assuming the hard part is the cryptography. The math is sound. The risk lives in the circuit. A subtly wrong circuit produces a proof that verifies perfectly while proving the wrong statement, and that bug is invisible until someone exploits it. This is why ZK work belongs near account abstraction and other on-chain primitives where audits are non-negotiable, not bolted on as a marketing feature. The business case is narrower than the hype: ZK is genuinely valuable when you need to prove a property on-chain (or to a counterparty) without leaking the data. It is overkill for most consumer apps and most web3 projects that name-drop it.

// FAQ

FAQs

When you need to prove a property to a counterparty (regulator, chain, partner) without leaking the underlying data: KYC status, balance threshold, voting eligibility, age, accreditation. If the proof can be replaced with a trusted database query, ZK is overkill.
SNARKs: smaller proofs, faster verification, trusted-setup requirement, more mature tooling. STARKs: larger proofs, slower verification, no trusted setup, post-quantum safe. For most production cases today, pick the one your target chain supports best, not the one with the better whitepaper.
Circuit bugs (the proof verifies correctly but proves the wrong thing), trusted-setup compromises, and prover-side performance walls when the input size grows. The cryptography is sound; the engineering around it is where most teams ship vulnerabilities.