Modern · 1985

Zero-Knowledge Proofs

Convince someone that a statement is true while revealing nothing at all beyond the fact of its truth — not even a hint of why.

OriginShafi Goldwasser, Silvio Micali & Charles Rackoff, ‘The Knowledge Complexity of Interactive Proof-Systems' (1985)
Year1985; Schnorr's protocol 1989; zk-SNARKs from 2012
TypeInteractive proof system — not a cipher (proves knowledge, transmits none of it)
RecognitionGoldwasser and Micali received the 2012 Turing Award, in part for this work
StatusUnderlies private cryptocurrencies, blockchain rollups, and modern anonymous credentials

Why This Matters

A zero-knowledge proof can establish a statement without revealing additional information about its secret witness. Unlike encryption, its purpose is not to deliver the secret to the verifier. The exact guarantee depends on the protocol and on the verifier model.

The consequence is a whole category of systems that were previously unbuildable — proving you are over eighteen without revealing your birthday, proving a transaction is valid without revealing who paid whom, proving a computation ran correctly without repeating it.

Historical Context

Goldwasser, Micali and Rackoff introduced the idea in 1985, and their paper was rejected three times before publication — reviewers doubted the concept was coherent. Their contribution was not a protocol so much as a definition: a way to say precisely what ‘revealed nothing' means. Claus-Peter Schnorr gave a compact and practical instance in 1989, and its non-interactive form became the template for a great many modern signature schemes. From 2012 the succinct variants known as zk-SNARKs made proofs small enough and fast enough to verify on a blockchain.

How It Works

A zero-knowledge proof must satisfy three properties at once, and the third is the hard one:

  • Completeness — an honest prover who really knows the secret always convinces the verifier.
  • Soundness — false statements are accepted only with bounded probability. A proof of knowledge additionally formalizes possession of a witness.
  • Zero knowledge — the verifier learns nothing they could not have produced alone.

This Schnorr identification example has perfect completeness, a knowledge-soundness argument and honest-verifier zero knowledge. The prover knows x; everyone knows y = gx. The prover commits to a random r by sending t = gr. The verifier replies with a random challenge c. The prover answers s = (r + cx) mod q, where q is the group order, and the verifier checks:

gs  =  t · yc  (mod p)

The response s is the secret x masked by the fresh random r, so it discloses nothing. But it could only have been produced by someone who knew x — unless they guessed the challenge in advance.

Run the protocol

Arithmetic runs in a group of prime order 233 modulo 467 — small enough to print every value. Its small group and teaching randomness are not secure parameters. Choose a secret, then play as an honest prover or as a cheat who does not know it.

Press Prove honestly.

Why a transcript proves nothing — the simulator

Here is the argument that makes ‘zero knowledge' precise, and it is genuinely surprising. Take the protocol's steps out of order: choose the challenge and the response first, then work backwards to the commitment that makes the check succeed. The resulting transcript passes verification perfectly — and it was produced by someone with no secret at all.

For this interactive protocol with an honestly sampled uniform challenge, the simulator produces the same transcript distribution without the secret. This establishes honest-verifier zero knowledge; it is not by itself a proof for every malicious verifier. A recording of this exchange is not transferable evidence of knowledge, because a third party could have simulated it. That differs from a properly constructed non-interactive signature, whose public verification is intended to be transferable.

Forge a transcript and check it against the same verifier.

Security & Cryptanalysis

Schnorr's soundness is not perfect and is not meant to be: a cheat who guesses the challenge in advance succeeds, with probability 1 divided by the size of the challenge space. On this page that is 1 in 233, which you can watch happen. Real deployments use challenge spaces around 2256, where the same gap is unreachable.

The Fiat–Shamir transform derives a challenge by hashing the commitment together with the public statement and required application context. A signature must bind the message as well. Domain separation and unambiguous encodings matter. The prover can try different commitments, but should not be able to choose a useful challenge cheaply under the proof's hash model. A random-oracle proof is a conditional security argument, not a proof that a concrete hash is an ideal oracle.

Succinct proof systems add their own concerns. Many pairing-based zk-SNARKs require a trusted setup whose discarded randomness would forge arbitrary proofs if retained — the reason for elaborate multi-party ceremonies. Transparent systems such as STARKs avoid that setup entirely, at the cost of larger proofs. Pairing-based constructions also inherit the discrete logarithm's vulnerability to quantum attack, while suitably designed hash-based systems avoid that particular attack; their post-quantum security still depends on parameters and assumptions.

Where You Use It Today

Zcash uses zero-knowledge proofs for shielded transactions. Validity rollups can prove that batches of transactions executed correctly; optimistic rollups use a different mechanism. Anonymous credentials can prove attributes without disclosing the full credential. Schnorr and EdDSA signatures use related commitment-and-challenge ideas, but it is misleading to call every signature a zero-knowledge transcript with the guarantees of this interactive demonstration.

At a glance

Claim: ‘I know x with gx = y.'

Three messages: commit, challenge, respond.

Completeness: honest provers always pass.

Soundness: a cheat's odds are 1 in the challenge space.

Honest-verifier zero knowledge: a simulator matches the honest transcript distribution without knowing the witness.

The mathematics is in the Hall of Foundations: pairings used by some succinct proof systems, and the oracle Fiat–Shamir leans on.

Primary Sources

RFC 8235 (Schnorr NIZK proof, 2017); RFC 8032 (EdDSA, 2017). These specify related but distinct constructions; this page implements only the small interactive teaching model.

← Previous Shamir's Secret Sharing