Zero-Knowledge Proofs

Proof as a Conversation Completeness and Soundness The Zero-Knowledge Property A Concrete Protocol

Proof as a Conversation

Encryption, signature, and key-exchange schemes share a common shape. A secret is used to derive a ciphertext, a signature, or a key, and that derived object is sent across the channel. The recipient learns the derived object, and the security argument is that the derived object leaks nothing useful about the secret.

This page asks a sharper question. Can one party convince another that it knows a secret, or that some assertion is true, while transmitting nothing beyond the single bit that the claim is true, not even an encryption or a function of the secret? The answer, which at first sounds paradoxical, is yes, and the mechanism that achieves it turns the very notion of a proof from a static object into an exchange.

Why Not Just Show the Secret

Consider the humble password. To prove she is authorized, a claimant sends her password to a verifier, who checks it against a stored record. The flaw is structural. The moment the verifier receives the password, he can impersonate the claimant to anyone else. The secret has been spent by being shown.

A first improvement is a challenge-response exchange. Rather than reveal the secret, the claimant answers a fresh, unpredictable question that only a holder of the secret could answer, and answers it in a way that cannot be replayed. This is better, because the secret itself never crosses the wire, but it is not yet enough. Each response may still leak a sliver of information about the secret, and an adversarial verifier, free to choose the questions, might select them precisely to accumulate those slivers until the secret is reconstructed.

What we want is a stronger guarantee: that the claimant can respond to challenges indefinitely, and the verifier, however cleverly he chooses them, ends the exchange knowing nothing he could not have worked out alone before it began. To reach that guarantee we must first change what a proof is.

Interactive Proof Systems

The traditional notion of a mathematical proof is a fixed string of symbols, checkable by anyone, and absolute in that it establishes its conclusion with certainty. We replace it with something looser and, for this purpose, more powerful. An interactive proof is a conversation between a prover, who asserts that some statement is true, and a verifier, who interrogates the prover across several rounds and then decides whether to accept. The prover's messages depend on private randomness, and the verifier's challenges depend on his own. The proof is no longer a document but a protocol, and for this reason it is sometimes called a proof by protocol.

Definition: Interactive Proof

An interactive proof for an assertion is a protocol between a prover \(P\) and a verifier \(V\), each a probabilistic algorithm, in which they exchange a sequence of messages. The verifier issues challenges and the prover issues responses, after which \(V\) outputs accept or reject. The collection of all messages exchanged in one execution is called the transcript. Because the parties use private randomness, a proof in this setting is probabilistic. It needs to convince the verifier only with probability arbitrarily close to \(1\), rather than with the absolute certainty of a written proof.

Trading certainty for a probability that can be pushed as near to \(1\) as desired is what buys the new capability. A written proof, being a fixed object, can be copied and shown onward. A conversation conducted with fresh randomness on both sides cannot be replayed to convince a third party, and it is exactly this non-transferability that will make zero knowledge possible.

Interactive proofs used for identification carry a particular reading, in which the prover asserts not merely that some object exists but that it possesses knowledge of one. Proving knowledge of a secret is a stronger claim than proving the secret exists. Demonstrating that one knows the prime factors of a number, for instance, says more than observing that the number is composite. Making that stronger claim precise is the task of the next section.

Completeness and Soundness

Two properties make an interactive proof worth the name. The first says that the protocol works when everyone is honest, and the second says that it cannot be cheated. Together they capture what it means to prove knowledge of a secret, as opposed to merely asserting it.

Definition: Completeness and Soundness

An interactive proof is complete if, when the prover genuinely holds the secret and both parties follow the protocol, the verifier accepts with overwhelming probability. The probability of an erroneous rejection is not of practical significance.

An interactive proof is sound if there is an efficient algorithm \(M\), the knowledge extractor, with the following property: whenever a prover, however it operates internally, makes the verifier accept with non-negligible probability, \(M\) can interact with that prover and extract the secret from it. Soundness thus guarantees that success in the protocol is possible only for a party that effectively possesses the secret, since anything that can convince the verifier can be turned, by \(M\), into the secret itself.

Completeness is the routine requirement that honest participants succeed. Soundness carries the weight. Its formulation through an extractor is what elevates the protocol from a proof that some object exists to a proof that the prover knows it. Because the secret can be read out of any successful prover, no strategy convinces the verifier without, in effect, encoding the secret.

Definition: Proof of Knowledge

An interactive proof that is both complete and sound is called a proof of knowledge. In it, the prover demonstrates possession of a secret \(s\) by correctly answering challenges whose answers require \(s\), and soundness, via the extractor, certifies that no prover lacking \(s\) can do so with more than negligible probability.

Hardness Is Not Optional

There is a subtlety that the definitions alone conceal, and it connects this construction to everything the cryptography track has assumed. Completeness and soundness are statements about the protocol, and neither, on its own, says the scheme is secure. A proof of knowledge certifies that whoever passes must possess the secret. If the secret can be computed from the public data by anyone, however, possessing it is no achievement, and the protocol proves nothing of value. The guarantee is meaningful only when the underlying problem the prover's secret solves is computationally hard.

Concretely, the secret is chosen as the solution to an instance of a problem believed intractable. An example is a square root modulo a composite whose factorization is unknown. No efficient method is known to compute such a root. Then computing the secret from public information is infeasible, so the ability to answer the protocol's challenges is genuine evidence of knowledge rather than of public computation.

This dependence is not a defect but the crux. Like every scheme in this track, an interactive proof rests on a conjectured hardness assumption, and its guarantees are exactly as strong as that assumption. On top of the hardness, the protocol adds the next property, which lets knowledge of the secret be demonstrated without surrendering any part of it.

The Zero-Knowledge Property

Completeness and soundness make the protocol a proof of knowledge, but they say nothing about what the verifier learns along the way. A protocol could be a perfect proof of knowledge and still leak the secret outright, because soundness constrains the dishonest prover, not the curious verifier. The property that closes this gap, and gives the construction its name, is a demand on the conversation itself: that it teach the verifier nothing.

Simulation as the Measure of Knowledge

The difficulty is to say precisely what "nothing" means. The verifier plainly ends the protocol knowing one new thing, namely that the assertion is true. How can we certify that he learns only that, and nothing about the secret behind it? The resolution reuses an idea already central to the definition of semantic security on an earlier page. There, a scheme was declared to leak nothing if a simulator, denied the ciphertext, could reproduce whatever an adversary computed from it. A ciphertext that can be dispensed with carries nothing. The same move works here, applied to the entire transcript of the conversation.

Definition: Zero-Knowledge Property

A proof of knowledge has the zero-knowledge property if it is simulatable. This means that there exists an efficient algorithm, the simulator, which, given only the assertion to be proven and without any access to the prover or its secret, produces transcripts indistinguishable from those of genuine executions between the real prover and the verifier.

Because a transcript can be manufactured from the assertion alone, it can carry no information beyond the assertion's truth. Anything the verifier could extract from a real conversation, he could equally have produced by himself by running the simulator, without the prover ever participating. Participation therefore leaves him no better able to impersonate the prover than he was before.

The correspondence with the earlier secrecy definition is exact. The secret plays the role the plaintext played, and the transcript the role the ciphertext played. In both, what can be fabricated from public data alone reveals nothing private.

One consequence is worth drawing out, because it explains why the proof must be a live, interactive exchange and cannot be a transferable document. Suppose an observer records a complete protocol run, every message between prover and verifier, and later replays the recording to a third party. The replay convinces that third party of nothing. The simulator establishes why. An indistinguishable recording could have been produced by the verifier alone, with no prover present, so the recording is not evidence that any prover took part. A proof of this kind convinces only the party who is live in the exchange, issuing fresh, unpredictable challenges in real time. This is the non-transferability promised earlier, now seen to be not an incidental feature but the direct expression of the zero-knowledge property.

Two Grades of Indistinguishability

The definition turns on transcripts being "indistinguishable," and we distinguish two grades of this, according to how severely one is permitted to compare the real and simulated distributions.

Perfect versus Computational Zero-Knowledge

A protocol is perfect zero-knowledge if the simulated transcripts and the real ones have identical probability distributions, so that no test whatsoever, however much computation it is granted, can tell them apart. It is computational zero-knowledge if the two distributions are only polynomially indistinguishable, meaning that no algorithm confined to probabilistic polynomial time can separate them with more than negligible advantage, though an unbounded one might. An intermediate grade, statistical zero-knowledge, asks that the two distributions be statistically close, and we do not use it here. The weaker, computational grade is the one that matters in practice, and by convention "zero-knowledge" unqualified means computational zero-knowledge. It rests on the same footing as every other polynomial-time security notion in this track. An adversary limited to feasible computation gains no usable advantage, even if an infinitely powerful one theoretically could.

With completeness, soundness, and zero knowledge in hand, the notion of a zero-knowledge proof is complete. What remains is to exhibit one: a concrete protocol, resting on a concrete hardness assumption, in which all three can be seen at work.

A Concrete Protocol

One of the earliest and most transparent zero-knowledge identification schemes rests on the difficulty of extracting square roots modulo a composite of unknown factorization. It shows the three abstract properties as concrete arithmetic, and its structure recurs in a large family of later protocols: commit, challenge, respond.

Setup and Protocol

A trusted party publishes a modulus \(n = pq\), the product of two distinct odd secret primes, and keeps the factorization private. A prover \(A\) chooses a secret \(s\) coprime to \(n\) and registers the public value \(v = s^2 \bmod n\). Her secret is thus a square root of \(v\). Recovering \(s\) from \(v\) means extracting a square root modulo \(n\), which is as hard as factoring \(n\). An algorithm that extracts square roots modulo \(n\), applied to \(w^2\) for a random \(w\) coprime to \(n\), returns a root other than \(\pm w\) with probability \(1/2\), because it sees only \(w^2\) and \(w\) is equally likely to be any of its four square roots. Such a root reveals a factor of \(n\) by the gcd computation in the soundness argument below.

Each round is a three-message exchange between the prover \(A\) and a verifier \(B\), consisting of a commitment (or witness) from the prover, a one-bit challenge from the verifier, and the prover's response: \[ \begin{align*} A \to B &: \quad x = r^2 \bmod n \\\\ A \leftarrow B &: \quad e \in \{0, 1\} \\\\ A \to B &: \quad y = r\, s^{e} \bmod n \end{align*} \] where \(r\) is a fresh value coprime to \(n\) that the prover draws uniformly at random each round. The verifier accepts the round if \(y \neq 0\) and \[ y^2 \equiv x\, v^{e} \pmod{n}. \] The whole protocol repeats this round \(t\) times, and \(B\) accepts \(A\)'s identity only if all \(t\) rounds succeed.

An honest prover passes the check, because modulo \(n\) we have \[ \begin{align*} y^2 &= r^2 s^{2e} \\\\ &= x\,(s^2)^{e} \\\\ &= x\,v^{e}. \end{align*} \] This is completeness. The two challenge values ask two different questions of the prover. At \(e = 0\) she must produce a square root of the commitment \(x\) itself, namely \(r\). At \(e = 1\) she must instead exhibit a square root of \(x v\), namely \(rs\). Only a prover who knows \(s\) can answer both, and this is the seed of soundness.

Why It Is Sound, and Zero-Knowledge

Soundness appears the moment one asks what it would take to answer both challenges for a single commitment. Suppose a prover, having sent \(x\), could respond correctly to both \(e = 0\) with some \(y_0\) and \(e = 1\) with some \(y_1\). We may assume that \(y_0\) is coprime to \(n\). Otherwise \(\gcd(y_0, n)\) is a nontrivial factor of \(n\), and the prover has broken factoring outright. Then \(y_0^2 \equiv x\) and \(y_1^2 \equiv xv \pmod n\), so \(y_1^2 / y_0^2 \equiv v\), which means \(y_1 / y_0\) is a square root of \(v\). A modulus \(n = pq\) has four square roots of \(v\), so this need not be the prover's original \(s\). Any square root, however, serves as the secret being proved. Should it be one of the two roots other than \(\pm s\), it moreover betrays the factorization of \(n\) to anyone who also holds \(s\), since then \(\gcd(y_1/y_0 - s,\, n)\) is a nontrivial factor. Either way the extractor reads a genuine square root out of such a prover. It obtains the two responses by running the prover up to its commitment and asking \(e = 0\), then resetting the prover to that point and asking \(e = 1\). Showing that a prover who succeeds noticeably more often than \(2^{-t}\) yields such a pair with non-negligible probability requires a probability estimate that is beyond the scope of this page.

A cheat holding no square root can prepare a commitment that answers only one of the two challenges. The cheat either picks \(r\) and sets \(x = r^2\) (ready for \(e = 0\)), or picks \(r\) and sets \(x = r^2 v^{-1}\) (ready for \(e = 1\)). But no single commitment is good for both. Such a cheat therefore survives a single round with probability exactly \(1/2\), by guessing which challenge will come, and survives all \(t\) rounds with probability only \(2^{-t}\), driven as low as desired by taking \(t\) large.

Zero knowledge is the claim that a full transcript teaches the verifier nothing about \(s\), and the argument is the simulator of the previous section made concrete. A verifier who knows in advance which challenge \(e\) he will issue can manufacture a valid transcript with no prover and no secret. He picks the response \(y\) uniformly at random among the residues coprime to \(n\) and defines the commitment backward as \(x = y^2 v^{-e} \bmod n\). By construction this triple satisfies \(y^2 \equiv x v^{e}\), so it passes verification, and the pair \((x, y)\) it produces is distributed exactly as in a real run, because the real protocol also yields a uniform \(y\) and a commitment determined by that \(y\). Since the verifier can generate indistinguishable transcripts alone, the real ones give him nothing he could not already fabricate.

The response \(y = r\) at \(e = 0\) is a random value independent of \(s\), while the response \(y = rs\) at \(e = 1\) is masked by the fresh random \(r\), which \(B\) never learns. No information about \(s\) survives the exchange.

The simulator just described handles a verifier whose challenge does not depend on the commitment, as is the case for the honest verifier, who draws \(e\) uniformly at random. The definition of the zero-knowledge property compared simulated transcripts with runs of the prescribed verifier. Its stronger form asks for a simulator against every efficient verifier strategy, including one that chooses \(e\) after seeing the commitment. Such a verifier is handled by a refinement. The simulator guesses the challenge, produces a transcript for that guess, and, if the verifier's actual challenge differs, resets the verifier and tries again. The simulated commitment is a uniformly random square coprime to \(n\) whichever challenge was guessed, so the verifier's choice is independent of the guess, and each guess is correct with probability \(1/2\). About two attempts per round therefore suffice on average, and the zero-knowledge property holds in this stronger form, not only against a cooperative verifier.

From Interaction to Infrastructure

The three-message shape of this protocol, with its commitment, challenge, and response, is the template for a broad class of zero-knowledge proofs. Two later developments extended that template. First, the interactive challenge can be removed. Replacing the verifier's random challenges with the output of a hash function applied to the commitments collapses the conversation into a single non-interactive message that anyone can check. Including a message in the hash input converts the identification protocol into a digital signature on that message.

Second, the assertion being proven need not be knowledge of a square root. Commit-challenge-response protocols extend to proving that an arbitrary computation was performed correctly, and further techniques make such proofs succinct, so that a verifier can check them far faster than redoing the computation. Non-interactive, general-purpose proofs of this kind can certify a large batch of transactions, or a private credential, with a short proof that reveals nothing beyond its own validity. The zero-knowledge idea in them is unchanged in essence from the square-root protocol above.

One caution keeps this in step with the rest of the track. The square-root protocol borrows its hardness from factoring, and factoring is exactly the assumption a quantum period-finding algorithm is known to dissolve. The same collapse unseated the classical public-key schemes. A scheme resting on factoring inherits that exposure. What survives is not this particular instance but the framework around it. Completeness, soundness, and the zero-knowledge property are defined for any underlying hard problem, and the commit-challenge-response skeleton re-instantiates on assumptions believed to resist quantum attack. Lattice problems are among these assumptions. Against a quantum adversary, replacing the square root is not the whole task, because the simulator and the extractor both reset the other party, and that resetting must itself be re-justified in the quantum setting.

The distance from a password handed across a wire to a proof that convinces while revealing nothing is the distance this page has traveled. A proof became a conversation. The conversation acquired completeness and soundness, which made it a proof of knowledge. The demand that it be simulatable then made it zero-knowledge, so that conviction and concealment, seemingly opposed, hold at once. The square-root protocol is the smallest complete illustration of how they can.