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, for every efficient verifier there exists an efficient simulator such that for all , the distribution of is computationally (or statistically, or perfectly) indistinguishable from the view of in the real interaction — GMR85.

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 the discrete-logarithm relation is the canonical example — Sch91; its special soundness and perfect HVZK hold in every prime-order group, with no hardness assumption — standard.

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

  • Zero-knowledge proofs were introduced together with a perfect zero-knowledge proof for the quadratic residuosity language , which needs no hardness assumption — GMR85
  • OWF ⇒ ZKP
  • Assuming secure probabilistic encryption, all languages in IP (= PSPACE) have computational ZK proofs — BGG+90; one-way functions suffice, since they give statistically binding commitments — HILL99, Naor91
  • ZKP ⇒ Auxiliary-input OWF
  • Sequential composition of ZK proofs preserves ZK; parallel composition may not — GK96a
  • HVZK ⇒ NIZK (Fiat–Shamir)

Participates in

Builds on Zero-knowledge proof

Produces Zero-knowledge proof

Barriers