Zero-knowledge proof
A zero-knowledge proof is an interactive protocol between a prover and a verifier in which convinces that a statement belongs to a language without revealing anything beyond the fact that . Introduced by Goldwasser, Micali, and Rackoff — GMR85.
Syntax
A zero-knowledge proof system for a language is an interactive protocol where:
- receives as input where is a witness for
- receives input and outputs or
- The transcript of the interaction is a sequence of messages
Properties
Completeness
If and follows the protocol honestly, then accepts with probability 1 (or for statistical completeness).
Soundness
If , then for all efficient (or unbounded, for statistical soundness) :
A proof system with computationally sound soundness is called an argument system.
Knowledge soundness (Proof of knowledge)
A stronger notion: there exists an efficient extractor such that if convinces with non-negligible probability, then outputs a valid witness for with non-negligible probability.
Zero-knowledge
The interaction reveals nothing beyond . Formally, there exists an efficient simulator such that for all , the distribution of is computationally (or statistically, or perfectly) indistinguishable from the real interaction transcript for any .
Variations
Perfect / statistical / computational ZK
Depending on whether the simulator’s output is identically distributed, statistically close, or only computationally indistinguishable from the real transcript.
Honest-verifier ZK (HVZK)
Weaker form where the simulator only works against an honest verifier that picks challenges uniformly at random. Sufficient for many applications when combined with the Fiat-Shamir transform.
Sigma protocols
A sigma protocol (-protocol) is a 3-message HVZK proof: (1) commitment from prover; (2) random challenge from verifier; (3) response from prover. Sigma protocols satisfy special soundness (two accepting transcripts with the same but different yield a witness extractor) and HVZK. The Schnorr protocol for discrete log is the canonical example.
Witness-indistinguishable (WI) proofs
Weaker than ZK: the verifier cannot distinguish which of multiple valid witnesses the prover used. WI proofs compose concurrently (unlike ZK proofs in general) and can be built without requiring any setup.
Argument systems
Proof systems with only computational (not information-theoretic) soundness. Enables much more efficient constructions; see NIZK and SNARKs.
Other results
- ZK proofs were introduced and shown for quadratic residuosity — GMR85
- All NP languages have computational ZK proofs assuming OWF — GMW91
- All languages in IP (= PSPACE) have statistical ZK proofs — BGG+90
- ZK proofs for NP imply OWF in the plain model — standard
- Sequential composition of ZK proofs preserves ZK; parallel composition may not — GK96
- The Schnorr protocol is a sigma protocol for discrete log compiled to a digital signature via Fiat-Shamir — FS86
- ZK proofs can be compiled to NIZK in the CRS model or the random oracle model — BFM88, FS86