A zero-knowledge proof (ZKP) is a cryptographic protocol in which a prover convinces a verifier that a statement is true without revealing any information beyond the truth of the statement itself. The classic example: proving knowledge of a maze solution without tracing the path.
Core Properties
Three properties define a valid ZKP:
- Completeness: if the statement is true, an honest prover can convince any honest verifier.
- Soundness: a dishonest prover cannot convince the verifier that a false statement is true (except with negligible probability).
- Zero-knowledge: the verifier learns nothing beyond the validity of the statement.
Types
Interactive vs Non-Interactive
In interactive ZKPs, prover and verifier exchange multiple rounds of messages. Non-interactive ZKPs (NIZKs) compress this into a single message using a shared reference string, enabling proofs that can be verified asynchronously.
zk-SNARKs
Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge. Proofs are small and fast to verify, but require a trusted setup ceremony to generate the public parameters.
zk-STARKs
Zero-Knowledge Scalable Transparent Arguments of Knowledge. No trusted setup required; security assumptions are transparent and post-quantum resistant. Proofs are larger than SNARKs but eliminate the trust assumption from parameter generation.
Applications
- Blockchain privacy: Zcash uses zk-SNARKs to shield transaction amounts and addresses while proving their validity on-chain.
- Layer-2 scaling: ZK-rollups (zkSync, Starknet) prove the validity of batched transactions off-chain, letting Ethereum verify them cheaply.
- Identity and credentials: proving you meet a requirement (age, citizenship, membership) without revealing the underlying data.
- Voting systems: proving a vote was cast correctly without revealing the voter’s choice.
Relationship to Host-Proof Hosting
The term “zero-knowledge” is sometimes used loosely for host-proof hosting architectures. The conceptual overlap: in both cases, a third party learns nothing about the underlying data. The mechanism differs: ZKPs are cryptographic proof systems; host-proof hosting is an architectural pattern relying on client-side encryption rather than formal proofs.