Zero-knowledge proof
   HOME

TheInfoList



OR:

In
cryptography Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adv ...
, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information apart from the fact that the statement is indeed true. The essence of zero-knowledge proofs is that it is trivial to prove that one possesses knowledge of certain information by simply revealing it; the challenge is to prove such possession without revealing the information itself or any additional information. If proving a statement requires that the prover possess some secret information, then the verifier will not be able to prove the statement to anyone else without possessing the secret information. The statement being proved must include the assertion that the prover has such knowledge, but without including or transmitting the knowledge itself in the assertion. Otherwise, the statement would not be proved in zero-knowledge because it provides the verifier with additional information about the statement by the end of the protocol. A ''zero-knowledge proof of knowledge'' is a special case when the statement consists ''only'' of the fact that the prover possesses the secret information. Interactive zero-knowledge proofs require interaction between the individual (or computer system) proving their knowledge and the individual validating the proof. A protocol implementing zero-knowledge proofs of knowledge must necessarily require interactive input from the verifier. This interactive input is usually in the form of one or more challenges such that the responses from the prover will convince the verifier if and only if the statement is true, i.e., if the prover ''does'' possess the claimed knowledge. If this were not the case, the verifier could record the execution of the protocol and replay it to convince someone else that they possess the secret information. The new party's acceptance is either justified since the replayer ''does'' possess the information (which implies that the protocol leaked information, and thus, is not proved in zero-knowledge), or the acceptance is spurious, i.e., was accepted from someone who does not actually possess the information. Some forms of non-interactive zero-knowledge proofs exist, but the validity of the proof relies on computational assumptions (typically the assumptions of an ideal
cryptographic hash function A cryptographic hash function (CHF) is a hash algorithm (a map of an arbitrary binary string to a binary string with fixed size of n bits) that has special properties desirable for cryptography: * the probability of a particular n-bit output ...
).


Abstract examples


The Ali Baba cave

There is a well-known story presenting the fundamental ideas of zero-knowledge proofs, first published in 1990 by
Jean-Jacques Quisquater Jean-Jacques Quisquater (born 13 January 1945) is a Belgian cryptographer and a professor at University of Louvain (UCLouvain). He received, with Claus P. Schnorr, the RSA Award for Excellence in Mathematics in 2013, and the ESORICS Outstanding ...
and others in their paper "How to Explain Zero-Knowledge Protocols to Your Children". It is common practice to label the two parties in a zero-knowledge proof as Peggy (the prover of the statement) and Victor (the verifier of the statement). In this story, Peggy has uncovered the secret word used to open a magic door in a cave. The cave is shaped like a ring, with the entrance on one side and the magic door blocking the opposite side. Victor wants to know whether Peggy knows the secret word; but Peggy, being a very private person, does not want to reveal her knowledge (the secret word) to Victor or to reveal the fact of her knowledge to the world in general. They label the left and right paths from the entrance A and B. First, Victor waits outside the cave as Peggy goes in. Peggy takes either path A or B; Victor is not allowed to see which path she takes. Then, Victor enters the cave and shouts the name of the path he wants her to use to return, either A or B, chosen at random. Providing she really does know the magic word, this is easy: she opens the door, if necessary, and returns along the desired path. However, suppose she did not know the word. Then, she would only be able to return by the named path if Victor were to give the name of the same path by which she had entered. Since Victor would choose A or B at random, she would have a 50% chance of guessing correctly. If they were to repeat this trick many times, say 20 times in a row, her chance of successfully anticipating all of Victor's requests would become very small (1 in 220, or very roughly 1 in a million). Thus, if Peggy repeatedly appears at the exit Victor names, he can conclude that it is extremely probable that Peggy does, in fact, know the secret word. One side note with respect to third-party observers: even if Victor is wearing a hidden camera that records the whole transaction, the only thing the camera will record is in one case Victor shouting "A!" and Peggy appearing at A or in the other case Victor shouting "B!" and Peggy appearing at B. A recording of this type would be trivial for any two people to fake (requiring only that Peggy and Victor agree beforehand on the sequence of A's and B's that Victor will shout). Such a recording will certainly never be convincing to anyone but the original participants. In fact, even a person who was present as an observer ''at the original experiment'' would be unconvinced, since Victor and Peggy might have orchestrated the whole "experiment" from start to finish. Further notice that if Victor chooses his A's and B's by flipping a coin on-camera, this protocol loses its zero-knowledge property; the on-camera coin flip would probably be convincing to any person watching the recording later. Thus, although this does not reveal the secret word to Victor, it does make it possible for Victor to convince the world in general that Peggy has that knowledge—counter to Peggy's stated wishes. However, digital cryptography generally "flips coins" by relying on a
pseudo-random number generator A pseudorandom number generator (PRNG), also known as a deterministic random bit generator (DRBG), is an algorithm for generating a sequence of numbers whose properties approximate the properties of sequences of random numbers. The PRNG-generate ...
, which is akin to a coin with a fixed pattern of heads and tails known only to the coin's owner. If Victor's coin behaved this way, then again it would be possible for Victor and Peggy to have faked the "experiment", so using a pseudo-random number generator would not reveal Peggy's knowledge to the world in the same way that using a flipped coin would. Notice that Peggy could prove to Victor that she knows the magic word, without revealing it to him, in a single trial. If both Victor and Peggy go together to the mouth of the cave, Victor can watch Peggy go in through A and come out through B. This would prove with certainty that Peggy knows the magic word, without revealing the magic word to Victor. However, such a proof could be observed by a third party, or recorded by Victor and such a proof would be convincing to anybody. In other words, Peggy could not refute such proof by claiming she colluded with Victor, and she is therefore no longer in control of who is aware of her knowledge.


Two balls and the colour-blind friend

Imagine your friend is red-green colour-blind (while you are not) and you have two balls: one red and one green, but otherwise identical. To your friend they seem completely identical and they are skeptical that they are actually distinguishable. You want to ''prove to them they are in fact differently-coloured'', but nothing else; in particular, you do not want to reveal which one is the red and which is the green ball. Here is the proof system. You give the two balls to your friend and they put them behind their back. Next, they take one of the balls and bring it out from behind their back and displays it. They then place it behind their back again and then choose to reveal just one of the two balls, picking one of the two at random with equal probability. They will ask you, "Did I switch the ball?" This whole procedure is then repeated as often as necessary. By looking at their colours, you can, of course, say with certainty whether or not they switched them. On the other hand, if they were the same colour and hence indistinguishable, there is no way you could guess correctly with probability higher than 50%. Since the probability that you would have randomly succeeded at identifying each switch/non-switch is 50%, the probability of having randomly succeeded at all switch/non-switches approaches zero ("soundness"). If you and your friend repeat this "proof" multiple times (e.g. 20 times), your friend should become convinced ("completeness") that the balls are indeed differently coloured. The above proof is ''zero-knowledge'' because your friend never learns which ball is green and which is red; indeed, they gain no knowledge about how to distinguish the balls.


Definition

A zero-knowledge proof of some statement must satisfy three properties: # Completeness: if the statement is true, an honest verifier (that is, one following the protocol properly) will be convinced of this fact by an honest prover. # Soundness: if the statement is false, no cheating prover can convince an honest verifier that it is true, except with some small probability. # Zero-knowledge: if the statement is true, no verifier learns anything other than the fact that the statement is true. In other words, just knowing the statement (not the secret) is sufficient to imagine a scenario showing that the prover knows the secret. This is formalized by showing that every verifier has some ''simulator'' that, given only the statement to be proved (and no access to the prover), can produce a transcript that "looks like" an interaction between an honest prover and the verifier in question. The first two of these are properties of more general interactive proof systems. The third is what makes the proof zero-knowledge. Zero-knowledge proofs are not proofs in the mathematical sense of the term because there is some small probability, the ''soundness error'', that a cheating prover will be able to convince the verifier of a false statement. In other words, zero-knowledge proofs are probabilistic "proofs" rather than deterministic proofs. However, there are techniques to decrease the soundness error to negligibly small values. A formal definition of zero-knowledge has to use some computational model, the most common one being that of a
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer alg ...
. Let P, V, and S be Turing machines. An interactive proof system with (P, V) for a language L is zero-knowledge if for any probabilistic polynomial time (PPT) verifier \hat there exists a PPT simulator S such that : \forall x \in L, z \in \^, \operatorname_ \left (x) \leftrightarrow \hat V(x, z)\right= S(x, z) where \operatorname_ \left (x) \leftrightarrow \hat V(x, z)\right/math> is a record of the interactions between P(x) and \hat V(x, z). The prover P is modeled as having unlimited computation power (in practice, P usually is a
probabilistic Turing machine In theoretical computer science, a probabilistic Turing machine is a non-deterministic Turing machine that chooses between the available transitions at each point according to some probability distribution. As a consequence, a probabilistic Turi ...
). Intuitively, the definition states that an interactive proof system (P, V) is zero-knowledge if for any verifier \hat there exists an efficient simulator S (depending on \hat V) that can reproduce the conversation between P and \hat on any given input. The auxiliary string z in the definition plays the role of "prior knowledge" (including the random coins of \hat V). The definition implies that \hat cannot use any prior knowledge string z to mine information out of its conversation with P, because if S is also given this prior knowledge then it can reproduce the conversation between \hat and P just as before. The definition given is that of perfect zero-knowledge. Computational zero-knowledge is obtained by requiring that the views of the verifier \hat and the simulator are only computationally indistinguishable, given the auxiliary string.


Practical examples


Discrete log of a given value

We can apply these ideas to a more realistic cryptography application. Peggy wants to prove to Victor that she knows the
discrete log In mathematics, for given real numbers ''a'' and ''b'', the logarithm log''b'' ''a'' is a number ''x'' such that . Analogously, in any group ''G'', powers ''b'k'' can be defined for all integers ''k'', and the discrete logarithm log' ...
of a given value in a given
group A group is a number of persons or things that are located, gathered, or classed together. Groups of people * Cultural group, a group whose members share the same cultural identity * Ethnic group, a group whose members share the same ethnic ide ...
. For example, given a value y, a large
prime A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
p and a generator g, she wants to prove that she knows a value x such that g^x \bmod = y, without revealing x. Indeed, knowledge of x could be used as a proof of identity, in that Peggy could have such knowledge because she chose a random value x that she didn't reveal to anyone, computed y = g^x \bmod and distributed the value of y to all potential verifiers, such that at a later time, proving knowledge of x is equivalent to proving identity as Peggy. The protocol proceeds as follows: in each round, Peggy generates a random number r, computes C = g^r \bmod and discloses this to Victor. After receiving C, Victor randomly issues one of the following two requests: he either requests that Peggy discloses the value of r, or the value of (x + r) \bmod. With either answer, Peggy is only disclosing a random value, so no information is disclosed by a correct execution of one round of the protocol. Victor can verify either answer; if he requested r, he can then compute g^r \bmod and verify that it matches C. If he requested (x + r) \bmod, he can verify that C is consistent with this, by computing g^ \bmod and verifying that it matches (C \cdot y) \bmod. If Peggy indeed knows the value of x, she can respond to either one of Victor's possible challenges. If Peggy knew or could guess which challenge Victor is going to issue, then she could easily cheat and convince Victor that she knows x when she does not: if she knows that Victor is going to request r, then she proceeds normally: she picks r, computes C = g^r \bmod and discloses C to Victor; she will be able to respond to Victor's challenge. On the other hand, if she knows that Victor will request (x + r) \bmod, then she picks a random value r', computes C' = g^ \cdot \left(g^x\right)^ \bmod, and discloses C' to Victor as the value of C that he is expecting. When Victor challenges her to reveal (x + r) \bmod, she reveals r', for which Victor will verify consistency, since he will in turn compute g^ \bmod, which matches C' \cdot y, since Peggy multiplied by the
modular multiplicative inverse In mathematics, particularly in the area of arithmetic, a modular multiplicative inverse of an integer is an integer such that the product is congruent to 1 with respect to the modulus .. In the standard notation of modular arithmetic this congr ...
of y. However, if in either one of the above scenarios Victor issues a challenge other than the one she was expecting and for which she manufactured the result, then she will be unable to respond to the challenge under the assumption of infeasibility of solving the discrete log for this group. If she picked r and disclosed C = g^r \bmod, then she will be unable to produce a valid (x + r) \bmod that would pass Victor's verification, given that she does not know x. And if she picked a value r' that poses as (x + r) \bmod, then she would have to respond with the discrete log of the value that she disclosed but Peggy does not know this discrete log, since the value C she disclosed was obtained through arithmetic with known values, and not by computing a power with a known exponent. Thus, a cheating prover has a 0.5 probability of successfully cheating in one round. By executing a large enough number of rounds, the probability of a cheating prover succeeding can be made arbitrarily low.


Short summary

Peggy proves to know the value of x (for example her password). #Peggy and Victor agree on a prime p and a generator g of the multiplicative group of the field \mathbb_. #Peggy calculates the value y = g^x \bmod and transfers the value to Victor. #The following two steps are repeated a (large) number of times. ##Peggy repeatedly picks a random value r\in U , p-2/math> and calculates C = g^r \bmod. She transfers the value C to Victor. ##Victor asks Peggy to calculate and transfer either the value (x + r) \bmod or the value r . In the first case Victor verifies (C \cdot y) \bmod\equiv g^ \bmod . In the second case he verifies C \equiv g^ \bmod. The value (x + r) \bmod (p-1) can be seen as the encrypted value of x \bmod (p-1). If r is truly random, equally distributed between zero and (p-2), this does not leak any information about x (see
one-time pad In cryptography, the one-time pad (OTP) is an encryption technique that cannot be cracked, but requires the use of a single-use pre-shared key that is not smaller than the message being sent. In this technique, a plaintext is paired with a ra ...
).


Hamiltonian cycle for a large graph

The following scheme is due to
Manuel Blum Manuel Blum (born 26 April 1938) is a Venezuelan-American computer scientist who received the Turing Award in 1995 "In recognition of his contributions to the foundations of computational complexity theory and its application to cryptography and ...
. In this scenario, Peggy knows a
Hamiltonian cycle In the mathematical field of graph theory, a Hamiltonian path (or traceable path) is a path in an undirected or directed graph that visits each vertex exactly once. A Hamiltonian cycle (or Hamiltonian circuit) is a cycle that visits each vertex ...
for a large
graph Graph may refer to: Mathematics *Graph (discrete mathematics), a structure made of vertices and edges **Graph theory, the study of such graphs and their properties *Graph (topology), a topological space resembling a graph in the sense of discre ...
. Victor knows but not the cycle (e.g., Peggy has generated and revealed it to him.) Finding a Hamiltonian cycle given a large graph is believed to be computationally infeasible, since its corresponding decision version is known to be
NP-complete In computational complexity theory, a problem is NP-complete when: # it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by trying ...
. Peggy will prove that she knows the cycle without simply revealing it (perhaps Victor is interested in buying it but wants verification first, or maybe Peggy is the only one who knows this information and is proving her identity to Victor). To show that Peggy knows this Hamiltonian cycle, she and Victor play several rounds of a game. * At the beginning of each round, Peggy creates , a graph which is
isomorphic In mathematics, an isomorphism is a structure-preserving mapping between two structures of the same type that can be reversed by an inverse mapping. Two mathematical structures are isomorphic if an isomorphism exists between them. The word i ...
to (i.e. is just like except that all the vertices have different names). Since it is trivial to translate a Hamiltonian cycle between isomorphic graphs with known isomorphism, if Peggy knows a Hamiltonian cycle for she also must know one for . * Peggy commits to . She could do so by using a cryptographic
commitment scheme A commitment scheme is a cryptographic primitive that allows one to commit to a chosen value (or chosen statement) while keeping it hidden to others, with the ability to reveal the committed value later.Oded Goldreich (2001). Foundations of Crypt ...
. Alternatively, she could number the vertices of . Next, for each edge of , on a small piece of paper, she writes down the two vertices that the edge joins. Then she puts all these pieces of paper face down on a table. The purpose of this commitment is that Peggy is not able to change while, at the same time, Victor has no information about . * Victor then randomly chooses one of two questions to ask Peggy. He can either ask her to show the isomorphism between and (see graph isomorphism problem), or he can ask her to show a Hamiltonian cycle in . * If Peggy is asked to show that the two graphs are isomorphic, she first uncovers all of (e.g. by turning over all pieces of papers that she put on the table) and then provides the vertex translations that map to . Victor can verify that they are indeed isomorphic. * If Peggy is asked to prove that she knows a Hamiltonian cycle in , she translates her Hamiltonian cycle in onto and only uncovers the edges on the Hamiltonian cycle. This is enough for Victor to check that does indeed contain a Hamiltonian cycle. It is important that the commitment to the graph be such that Victor can verify, in the second case, that the cycle is really made of edges from . This can be done by, for example, committing to every edge (or lack thereof) separately.


Completeness

If Peggy does know a Hamiltonian cycle in , she can easily satisfy Victor's demand for either the graph isomorphism producing from (which she had committed to in the first step) or a Hamiltonian cycle in (which she can construct by applying the isomorphism to the cycle in ).


Zero-knowledge

Peggy's answers do not reveal the original Hamiltonian cycle in . Each round, Victor will learn only 's isomorphism to or a Hamiltonian cycle in . He would need both answers for a single to discover the cycle in , so the information remains unknown as long as Peggy can generate a distinct every round. If Peggy does not know of a Hamiltonian cycle in , but somehow knew in advance what Victor would ask to see each round then she could cheat. For example, if Peggy knew ahead of time that Victor would ask to see the Hamiltonian cycle in then she could generate a Hamiltonian cycle for an unrelated graph. Similarly, if Peggy knew in advance that Victor would ask to see the isomorphism then she could simply generate an isomorphic graph (in which she also does not know a Hamiltonian cycle). Victor could simulate the protocol by himself (without Peggy) because he knows what he will ask to see. Therefore, Victor gains no information about the Hamiltonian cycle in from the information revealed in each round.


Soundness

If Peggy does not know the information, she can guess which question Victor will ask and generate either a graph isomorphic to or a Hamiltonian cycle for an unrelated graph, but since she does not know a Hamiltonian cycle for she cannot do both. With this guesswork, her chance of fooling Victor is , where is the number of rounds. For all realistic purposes, it is infeasibly difficult to defeat a zero-knowledge proof with a reasonable number of rounds in this way.


Variants of zero-knowledge

Different variants of zero-knowledge can be defined by formalizing the intuitive concept of what is meant by the output of the simulator "looking like" the execution of the real proof protocol in the following ways: * We speak of ''perfect zero-knowledge'' if the distributions produced by the simulator and the proof protocol are distributed exactly the same. This is for instance the case in the first example above. * ''Statistical zero-knowledge'' means that the distributions are not necessarily exactly the same, but they are statistically close, meaning that their statistical difference is a
negligible function In mathematics, a negligible function is a function \mu:\mathbb\to\mathbb such that for every positive integer ''c'' there exists an integer ''N'c'' such that for all ''x'' > ''N'c'', :, \mu(x),  0 such that for all ''x''  ...
. * We speak of ''computational zero-knowledge'' if no efficient algorithm can distinguish the two distributions.


Zero knowledge types

* Proof of knowledge: the knowledge is hidden in the exponent like in the example shown above. * Pairing based cryptography: given and , without knowing and , it is possible to compute . * Witness indistinguishable proof: verifiers cannot know which witness is used for producing the proof. * Multi-party computation: while each party can keep their respective secret, they together produce a result. * Ring signature: outsiders have no idea which key is used for signing.


Applications


Authentication systems

Research in zero-knowledge proofs has been motivated by
authentication Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicatin ...
systems where one party wants to prove its identity to a second party via some secret information (such as a password) but doesn't want the second party to learn anything about this secret. This is called a "zero-knowledge proof of knowledge". However, a password is typically too small or insufficiently random to be used in many schemes for zero-knowledge proofs of knowledge. A
zero-knowledge password proof In cryptography, a zero-knowledge password proof (ZKPP) is a type of zero-knowledge proof that allows one party (the prover) to prove to another party (the verifier) that it knows a value of a password, without revealing anything other than the fac ...
is a special kind of zero-knowledge proof of knowledge that addresses the limited size of passwords. In April 2015, the Sigma protocol (one-out-of-many proofs) was introduced. In August 2021,
Cloudflare Cloudflare, Inc. is an American content delivery network and DDoS mitigation company, founded in 2009. It primarily acts as a reverse proxy between a website's visitor and the Cloudflare customer's hosting provider. Its headquarters are in Sa ...
, an American web infrastructure and security company decided to use the one-out-of-many proofs mechanism for private web verification using vendor hardware.


Ethical behavior

One of the uses of zero-knowledge proofs within cryptographic protocols is to enforce honest behavior while maintaining privacy. Roughly, the idea is to force a user to prove, using a zero-knowledge proof, that its behavior is correct according to the protocol. Because of soundness, we know that the user must really act honestly in order to be able to provide a valid proof. Because of zero knowledge, we know that the user does not compromise the privacy of its secrets in the process of providing the proof.


Nuclear disarmament

In 2016, the
Princeton Plasma Physics Laboratory Princeton Plasma Physics Laboratory (PPPL) is a United States Department of Energy national laboratory for plasma physics and nuclear fusion science. Its primary mission is research into and development of fusion as an energy source. It is known ...
and
Princeton University Princeton University is a private research university in Princeton, New Jersey. Founded in 1746 in Elizabeth as the College of New Jersey, Princeton is the fourth-oldest institution of higher education in the United States and one of the ...
demonstrated a technique that may have applicability to future
nuclear disarmament Nuclear may refer to: Physics Relating to the nucleus of the atom: *Nuclear engineering *Nuclear physics *Nuclear power *Nuclear reactor *Nuclear weapon *Nuclear medicine *Radiation therapy *Nuclear warfare Mathematics * Nuclear space * Nuclea ...
talks. It would allow inspectors to confirm whether or not an object is indeed a nuclear weapon without recording, sharing or revealing the internal workings which might be secret.


Blockchains

Zero-knowledge proofs were applied in the
Zerocoin Zerocoin is a privacy protocol proposed in 2013 by Johns Hopkins University professor Matthew D. Green and his graduate students, Ian Miers and Christina Garman. It was designed as an extension to the Bitcoin protocol that would improve Bitco ...
and Zerocash protocols, which culminated in the birth of
Zcoin Firo, formerly known as Zcoin, is a cryptocurrency aimed at using cryptography to provide better privacy for its users compared to other cryptocurrencies such as Bitcoin. History Zcoin Creation In late 2014, Poramin Insom, a student in Mast ...
(later rebranded as Firo in 2020) and Zcash cryptocurrencies in 2016. Zerocoin has a built-in mixing model that does not trust any peers or centralised mixing providers to ensure anonymity. Users can transact in a base currency and can cycle the currency into and out of Zerocoins. The Zerocash protocol uses a similar model (a variant known as a non-interactive zero-knowledge proof) except that it can obscure the transaction amount, while Zerocoin cannot. Given significant restrictions of transaction data on the Zerocash network, Zerocash is less prone to privacy timing attacks when compared to Zerocoin. However, this additional layer of privacy can cause potentially undetected hyperinflation of Zerocash supply because fraudulent coins cannot be tracked. In 2018, Bulletproofs were introduced. Bulletproofs are an improvement from non-interactive zero-knowledge proof where trusted setup is not needed. It was later implemented into the Mimblewimble protocol (which the Grin and Beam cryptocurrencies are based upon) and Monero cryptocurrency. In 2019, Firo implemented the Sigma protocol, which is an improvement on the Zerocoin protocol without trusted setup. In the same year, Firo introduced the Lelantus protocol, an improvement on the Sigma protocol, where the former hides the origin and amount of a transaction.


History

Zero-knowledge proofs were first conceived in 1985 by
Shafi Goldwasser en, Shafrira Goldwasser , name = Shafi Goldwasser , image = Shafi Goldwasser.JPG , caption = Shafi Goldwasser in 2010 , birth_place = New York City, New York, U.S. , birth_date = , death_date ...
,
Silvio Micali Silvio Micali (born October 13, 1954) is an Italian computer scientist, professor at the Massachusetts Institute of Technology and the founder of Algorand. Micali's research centers on cryptography and information security. In 2012, he received ...
, and Charles Rackoff in their paper "The Knowledge Complexity of Interactive Proof-Systems". This paper introduced the IP hierarchy of interactive proof systems (''see interactive proof system'') and conceived the concept of ''knowledge complexity'', a measurement of the amount of knowledge about the proof transferred from the prover to the verifier. They also gave the first zero-knowledge proof for a concrete problem, that of deciding quadratic nonresidues mod . Together with a paper by László Babai and
Shlomo Moran Shlomo Moran ( he, שלמה מורן; born 1947) is an Israeli computer scientist, the Bernard Elkin Chair in Computer Science at the Technion – Israel Institute of Technology in Haifa, Israel. Moran received his Ph.D. in 1979 from the Techni ...
, this landmark paper invented interactive proof systems, for which all five authors won the first
Gödel Prize The Gödel Prize is an annual prize for outstanding papers in the area of theoretical computer science, given jointly by the European Association for Theoretical Computer Science (EATCS) and the Association for Computing Machinery Special Interes ...
in 1993. In their own words, Goldwasser, Micali, and Rackoff say:
Of particular interest is the case where this additional knowledge is essentially 0 and we show that tis possible to interactively prove that a number is quadratic non residue mod ''m'' releasing 0 additional knowledge. This is surprising as no efficient algorithm for deciding quadratic residuosity mod ''m'' is known when ''m''’s factorization is not given. Moreover, all known ''NP'' proofs for this problem exhibit the prime factorization of ''m''. This indicates that adding interaction to the proving process, may decrease the amount of knowledge that must be communicated in order to prove a theorem.
The quadratic nonresidue problem has both an NP and a co-NP algorithm, and so lies in the intersection of NP and co-NP. This was also true of several other problems for which zero-knowledge proofs were subsequently discovered, such as an unpublished proof system by Oded Goldreich verifying that a two-prime modulus is not a
Blum integer In mathematics, a natural number ''n'' is a Blum integer if is a semiprime for which ''p'' and ''q'' are distinct prime numbers congruent to 3 mod 4.Joe Hurd, Blum Integers (1997), retrieved 17 Jan, 2011 from http://www.gilith.com/research/tal ...
.
Oded Goldreich Oded Goldreich ( he, עודד גולדרייך; b. 1957) is a professor of Computer Science at the Faculty of Mathematics and Computer Science of Weizmann Institute of Science, Israel. His research interests lie within the theory of computation ...
,
Silvio Micali Silvio Micali (born October 13, 1954) is an Italian computer scientist, professor at the Massachusetts Institute of Technology and the founder of Algorand. Micali's research centers on cryptography and information security. In 2012, he received ...
, and
Avi Wigderson Avi Wigderson ( he, אבי ויגדרזון; born 9 September 1956) is an Israeli mathematician and computer scientist. He is the Herbert H. Maass Professor in the school of mathematics at the Institute for Advanced Study in Princeton, New Jerse ...
took this one step further, showing that, assuming the existence of unbreakable encryption, one can create a zero-knowledge proof system for the NP-complete graph coloring problem with three colors. Since every problem in NP can be efficiently reduced to this problem, this means that, under this assumption, all problems in NP have zero-knowledge proofs. The reason for the assumption is that, as in the above example, their protocols require encryption. A commonly cited sufficient condition for the existence of unbreakable encryption is the existence of
one-way function In computer science, a one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input. Here, "easy" and "hard" are to be understood in the sense of computational complexity theory, s ...
s, but it is conceivable that some physical means might also achieve it. On top of this, they also showed that the graph nonisomorphism problem, the
complement A complement is something that completes something else. Complement may refer specifically to: The arts * Complement (music), an interval that, when added to another, spans an octave ** Aggregate complementation, the separation of pitch-clas ...
of the graph isomorphism problem, has a zero-knowledge proof. This problem is in co-NP, but is not currently known to be in either NP or any practical class. More generally, Russell Impagliazzo and
Moti Yung Mordechai M. "Moti" Yung is a cryptographer and computer scientist known for his work on cryptovirology and kleptography. Career Yung earned his PhD from Columbia University in 1988 under the supervision of Zvi Galil. In the past, he worked at th ...
as well as Ben-Or et al. would go on to show that, also assuming one-way functions or unbreakable encryption, that there are zero-knowledge proofs for ''all'' problems in IP = PSPACE, or in other words, anything that can be proved by an interactive proof system can be proved with zero knowledge. Not liking to make unnecessary assumptions, many theorists sought a way to eliminate the necessity of one way functions. One way this was done was with ''multi-prover interactive proof systems'' (see interactive proof system), which have multiple independent provers instead of only one, allowing the verifier to "cross-examine" the provers in isolation to avoid being misled. It can be shown that, without any intractability assumptions, all languages in NP have zero-knowledge proofs in such a system. It turns out that in an Internet-like setting, where multiple protocols may be executed concurrently, building zero-knowledge proofs is more challenging. The line of research investigating concurrent zero-knowledge proofs was initiated by the work of Dwork, Naor, and Sahai. One particular development along these lines has been the development of witness-indistinguishable proof protocols. The property of witness-indistinguishability is related to that of zero-knowledge, yet witness-indistinguishable protocols do not suffer from the same problems of concurrent execution. Another variant of zero-knowledge proofs are non-interactive zero-knowledge proofs. Blum, Feldman, and Micali showed that a common random string shared between the prover and the verifier is enough to achieve computational zero-knowledge without requiring interaction.


Zero-Knowledge Proof protocols

The most popular interactive or non-interactive zero-knowledge proof (e.g., zk-SNARK) protocols can be broadly categorized in the following four categories: Succinct Non-Interactive ARguments of Knowledge (SNARK), Scalable Transparent ARgument of Knowledge (STARK), Verifiable Polynomial Delegation (VPD), and Succinct Non-interactive ARGuments (SNARG). A list of zero-knowledge proof protocols and libraries is provided below along with comparisons based on transparency, universality, plausible post-quantum security, and programming paradigm. A transparent protocol is one that does not require any trusted setup and uses public randomness. A universal protocol is one that does not require a separate trusted setup for each circuit. Finally, a plausibly post-quantum protocol is one that is not susceptible to known attacks involving quantum algorithms.


See also

* Arrow information paradox *
Cryptographic protocol A security protocol (cryptographic protocol or encryption protocol) is an abstract or concrete protocol that performs a security-related function and applies cryptographic methods, often as sequences of cryptographic primitives. A protocol descri ...
*
Feige–Fiat–Shamir identification scheme In cryptography, the Feige–Fiat–Shamir identification scheme is a type of parallel zero-knowledge proof developed by Uriel Feige, Amos Fiat, and Adi Shamir in 1988. Like all zero-knowledge proofs, it allows one party, the Prover, to prove to a ...
* Proof of knowledge * Topics in cryptography * Witness-indistinguishable proof *
Zero-knowledge password proof In cryptography, a zero-knowledge password proof (ZKPP) is a type of zero-knowledge proof that allows one party (the prover) to prove to another party (the verifier) that it knows a value of a password, without revealing anything other than the fac ...
* Non-interactive zero-knowledge proof


References

{{Reflist, 30em Theory of cryptography Zero-knowledge protocols