What is a zero-knowledge proof?
- Author
- CRYPTO PORT Editorial
- Published
- Updated
- Reading time
- 5 min
In short
A zero-knowledge proof convinces a verifier that a statement is true while revealing nothing beyond that fact. You can prove you are over 20 without showing your date of birth. On blockchains it is used both to validate transactions whose contents stay hidden and to compress a large batch of computation into a single cheap check.
Key points
- Proves the claim, discloses none of the underlying data
- Must satisfy completeness, soundness and zero knowledge
- Used both for privacy and for compressing computation
- Verification is cheap; generating the proof is expensive
Definition
A cryptographic protocol by which a prover convinces a verifier that a statement is true, without revealing the secret information that makes it true.
Three properties define it: a true claim always verifies (completeness), a false one is caught with overwhelming probability (soundness), and the verifier learns nothing except that the claim holds (zero knowledge). That last property is what lets you verify without exposing a password or a balance.
Blockchains use it in two directions. For privacy, a transaction can hide sender, recipient and amount while still proving it is not a double spend. For scaling, a ZK rollup executes thousands of transactions off-chain and posts one proof that the execution was correct, so Ethereum's verification cost no longer grows with the number of transactions.
A concrete example is proof of reserves: an exchange can demonstrate that it holds enough assets to cover customer balances without publishing any individual account, and zero-knowledge techniques are part of how some of those schemes are built.
Watch out for
- · 'Uses zero-knowledge proofs' says nothing about what is actually being proven
- · A valid proof of a buggy circuit proves nothing useful
- · Strongly anonymising designs face handling restrictions in some jurisdictions and exchanges