Zero-knowledge proof

Last updated

In cryptography, a zero-knowledge proof is a protocol in which one party (the prover) can convince another party (the verifier) that some given statement is true, without conveying to the verifier any information beyond the mere fact of that statement's truth. [1] The intuition underlying zero-knowledge proofs is that it is trivial to prove possession of the relevant information simply by revealing it; the hard part is to prove this possession without revealing this information (or any aspect of it whatsoever). [2]

Contents

In light of the fact that one should be able to generate a proof of some statement only when in possession of certain secret information connected to the statement, the verifier, even after having become convinced of the statement's truth, should nonetheless remain unable to prove the statement to further third parties.

Zero-knowledge proofs can be interactive, meaning that the prover and verifier exchange messages according to some protocol, or noninteractive, meaning that the verifier is convinced by a single prover message and no other communication is needed. In the standard model, interaction is required, except for trivial proofs of BPP problems. [3] In the common random string and random oracle models, non-interactive zero-knowledge proofs exist. The Fiat–Shamir heuristic can be used to transform certain interactive zero-knowledge proofs into noninteractive ones. [4] [5] [6]

Abstract examples

The Ali Baba cave

Zkip alibaba1.png
Peggy randomly takes either path A or B, while Victor waits outside.
Zkip alibaba2.png
Victor chooses an exit path.
Zkip alibaba3.png
Peggy reliably appears at the exit Victor names.

There is a well-known story presenting the fundamental ideas of zero-knowledge proofs, first published in 1990 by Jean-Jacques Quisquater and others in their paper "How to Explain Zero-Knowledge Protocols to Your Children". [7] The two parties in the zero-knowledge proof story are Peggy as 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 be reduced to 1 in 220, or 9.56 × 10−7.

Thus, if Peggy repeatedly appears at the exit Victor names, then 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 As and Bs 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 should be unconvinced, since Victor and Peggy could have orchestrated the whole "experiment" from start to finish.

Further, if Victor chooses his As and Bs 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, 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.

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 "Victor" is red-green colour-blind (while you are not) and you have two balls: one red and one green, but otherwise identical. To Victor, the balls seem completely identical. Victor is skeptical that the balls are actually distinguishable. You want to prove to Victor that the balls are in fact differently coloured, but nothing else. In particular, you do not want to reveal which ball is the red one and which is the green.

Here is the proof system. You give the two balls to Victor and he puts them behind his back. Next, he takes one of the balls and brings it out from behind his back and displays it. He then places it behind his back again and then chooses to reveal just one of the two balls, picking one of the two at random with equal probability. He will ask you, "Did I switch the ball?" This whole procedure is then repeated as often as necessary.

By looking at the balls' colours, you can, of course, say with certainty whether or not he switched them. On the other hand, if the balls 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, he gains no knowledge about how to distinguish the balls. [8]

Where's Waldo

One well-known example of a zero-knowledge proof is the "Where's Waldo" example. In this example, the prover wants to prove to the verifier that they know where Waldo is on a page in a Where's Waldo? book, without revealing his location to the verifier. [9]

The prover starts by taking a large black board with a small hole in it, the size of Waldo. The board is twice the size of the book in both directions, so the verifier cannot see where on the page the prover is placing it. The prover then places the board over the page so that Waldo is in the hole. [9]

The verifier can now look through the hole and see Waldo, but cannot see any other part of the page. Therefore, the prover has proven to the verifier that they know where Waldo is, without revealing any other information about his location. [9]

This example is not a perfect zero-knowledge proof, because the prover does reveal some information about Waldo's location, such as his body position. However, it is a decent illustration of the basic concept of a zero-knowledge proof.

Definition

A zero-knowledge proof of some statement must satisfy three properties:

  1. Completeness: if the statement is true, then an honest verifier (that is, one following the protocol properly) will be convinced of this fact by an honest prover.
  2. Soundness: if the statement is false, then no cheating prover can convince an honest verifier that it is true, except with some small probability.
  3. Zero-knowledge: if the statement is true, then 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. [10]

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 (for example, guessing correctly on a hundred or thousand binary decisions has a 1/2100 or 1/21000 soundness error, respectively. As the number of bits increases, the soundness error decreases toward zero).

A formal definition of zero-knowledge must use some computational model, the most common one being that of a Turing machine. 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 there exists a PPT simulator S such that:

where View[P(x)(x,z)] is a record of the interactions between P(x) and V(x,z). The prover P is modeled as having unlimited computation power (in practice, P usually is a probabilistic Turing machine). Intuitively, the definition states that an interactive proof system (P,V) is zero-knowledge if for any verifier there exists an efficient simulator S (depending on ) that can reproduce the conversation between P and on any given input. The auxiliary string z in the definition plays the role of "prior knowledge" (including the random coins of ). The definition implies that 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 and P just as before. [ citation needed ]

The definition given is that of perfect zero-knowledge. Computational zero-knowledge is obtained by requiring that the views of the verifier and the simulator are only computationally indistinguishable, given the auxiliary string. [ citation needed ]

Practical examples

Discrete log of a given value

These ideas can be applied to a more realistic cryptography application. Peggy wants to prove to Victor that she knows the discrete logarithm of a given value in a given group. [11]

For example, given a value y, a large prime p, and a generator , she wants to prove that she knows a value x such that gxy (mod p), 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 did not reveal to anyone, computed y = gx mod p, 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 = gr mod p 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) mod (p 1).

Victor can verify either answer; if he requested r, he can then compute gr mod p and verify that it matches C. If he requested (x + r) mod (p 1), then he can verify that C is consistent with this, by computing g(x + r) mod (p 1) mod p and verifying that it matches (C·y) mod p. If Peggy indeed knows the value of x, then 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 = gr mod p, 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) mod (p 1), then she picks a random value r, computes Cgr· (gx)1 mod p, and discloses C to Victor as the value of C that he is expecting. When Victor challenges her to reveal (x + r) mod (p 1), she reveals r, for which Victor will verify consistency, since he will in turn compute gr mod p, which matches C·y, since Peggy multiplied by the modular multiplicative inverse 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 = gr mod p, then she will be unable to produce a valid (x + r) mod (p 1) 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) mod (p 1), 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.

To show that the above interactive proof gives zero knowledge other than the fact that Peggy knows x, one can use similar arguments as used in the above proof of completeness and soundness. Specifically, a simulator, say Simon, who does not know x, can simulate the exchange between Peggy and Victor by the following procedure. Firstly, Simon randomly flips a fair coin. If the result is "heads", then he picks a random value r, computes C = gr mod p, and discloses C as if it is a message from Peggy to Victor. Then Simon also outputs a message "request the value of r" as if it is sent from Victor to Peggy, and immediately outputs the value of r as if it is sent from Peggy to Victor. A single round is complete. On the other hand, if the coin flipping result is "tails", then Simon picks a random number r, computes C = gr·y1 mod p, and discloses C as if it is a message from Peggy to Victor. Then Simon outputs "request the value of (x + r) mod (p 1)" as if it is a message from Victor to Peggy. Finally, Simon outputs the value of r as if it is the response from Peggy back to Victor. A single round is complete. By the previous arguments when proving the completeness and soundness, the interactive communication simulated by Simon is indistinguishable from the true correspondence between Peggy and Victor. The zero-knowledge property is thus guaranteed.

Short summary

Peggy proves to know the value of x (for example her password).

  1. Peggy and Victor agree on a prime p and a generator of the multiplicative group of the field p.
  2. Peggy calculates the value y = gx mod p and transfers the value to Victor.
  3. The following two steps are repeated a (large) number of times.
    1. Peggy repeatedly picks a random value rU[0, p 2] and calculates C = gr mod p. She transfers the value C to Victor.
    2. Victor asks Peggy to calculate and transfer either the value (x + r) mod (p 1) or the value r. In the first case Victor verifies C·yg(x + r) mod (p 1) mod p. In the second case he verifies C = gr mod p.

The value (x + r) mod (p 1) can be seen as the encrypted value of x mod (p 1). If r is truly random, uniformly distributed between zero and p 2, then this does not leak any information about x (see one-time pad).

Hamiltonian cycle for a large graph

The following scheme is due to Manuel Blum. [12]

In this scenario, Peggy knows a Hamiltonian cycle for a large graph G. Victor knows G but not the cycle (e.g., Peggy has generated G 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. 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:

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 H. This can be done by, for example, committing to every edge (or lack thereof) separately.

Completeness

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

Zero-knowledge

Peggy's answers do not reveal the original Hamiltonian cycle in G. In each round, Victor will learn only H's isomorphism to G or a Hamiltonian cycle in H. He would need both answers for a single H to discover the cycle in G, so the information remains unknown as long as Peggy can generate a distinct H every round. If Peggy does not know of a Hamiltonian cycle in G, 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 H, 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 H (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 G from the information revealed in each round.

Soundness

If Peggy does not know the information, then she can guess which question Victor will ask and generate either a graph isomorphic to G or a Hamiltonian cycle for an unrelated graph, but since she does not know a Hamiltonian cycle for G, she cannot do both. With this guesswork, her chance of fooling Victor is 2n, where n 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:

Zero knowledge types

There are various types of zero-knowledge proofs:

Zero-knowledge proof schemes can be constructed from various cryptographic primitives, such as hash-based cryptography, pairing-based cryptography, multi-party computation, or lattice-based cryptography.

Applications

Authentication systems

Research in zero-knowledge proofs has been motivated by authentication systems where one party wants to prove its identity to a second party via some secret information (such as a password) but does not 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 is a special kind of zero-knowledge proof of knowledge that addresses the limited size of passwords.[ citation needed ]

In April 2015, the one-out-of-many proofs protocol (a Sigma protocol) was introduced. [14] In August 2021, Cloudflare, an American web infrastructure and security company, decided to use the one-out-of-many proofs mechanism for private web verification using vendor hardware. [15]

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. [16] [17] 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.[ citation needed ]

Nuclear disarmament

In 2016, the Princeton Plasma Physics Laboratory and Princeton University demonstrated a technique that may have applicability to future nuclear disarmament 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. [18]

Blockchains

Zero-knowledge proofs were applied in the Zerocoin and Zerocash protocols, which culminated in the birth of Zcoin [19] (later rebranded as Firo in 2020) [20] 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. [19] Users can transact in a base currency and can cycle the currency into and out of Zerocoins. [21] The Zerocash protocol uses a similar model (a variant known as a non-interactive zero-knowledge proof) [22] 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. [19] [23]

In 2018, Bulletproofs were introduced. Bulletproofs are an improvement from non-interactive zero-knowledge proofs where a trusted setup is not needed. [24] It was later implemented into the Mimblewimble protocol (which the Grin and Beam cryptocurrencies are based upon) and Monero cryptocurrency. [25] In 2019, Firo implemented the Sigma protocol, which is an improvement on the Zerocoin protocol without trusted setup. [26] [14] 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. [27]

Decentralized Identifiers

Zero-knowledge proofs by their nature can enhance privacy in identity-sharing systems, which are vulnerable to data breaches and identity theft. When integrated to a decentralized identifier system, ZKPs add an extra layer of encryption on DID documents. [28]

History

Zero-knowledge proofs were first conceived in 1985 by Shafi Goldwasser, Silvio Micali, and Charles Rackoff in their paper "The Knowledge Complexity of Interactive Proof-Systems". [16] 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 m. Together with a paper by László Babai and Shlomo Moran, this landmark paper invented interactive proof systems, for which all five authors won the first Gödel Prize 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 [it] is 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. [29]

Oded Goldreich, Silvio Micali, and Avi Wigderson 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. [30] 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 functions, 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 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 as well as Ben-Or et al. would go on to show that, also assuming one-way functions or unbreakable encryption, 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. [31] [32]

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. [33]

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. [34] 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. [35]

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. [5] [6]

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. [36] 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.

Zero-knowledge proof (ZKP) systems
ZKP SystemPublication yearProtocolTransparentUniversalPlausibly Post-Quantum SecureProgramming Paradigm
Pinocchio [37] 2013zk-SNARKNoNoNoProcedural
Geppetto [38] 2015zk-SNARKNoNoNoProcedural
TinyRAM [39] 2013zk-SNARKNoNoNoProcedural
Buffet [40] 2015zk-SNARKNoNoNoProcedural
ZoKrates [41] 2018zk-SNARKNoNoNoProcedural
xJsnark [42] 2018zk-SNARKNoNoNoProcedural
vRAM [43] 2018zk-SNARGNoYesNoAssembly
vnTinyRAM [44] 2014zk-SNARKNoYesNoProcedural
MIRAGE [45] 2020zk-SNARKNoYesNoArithmetic Circuits
Sonic [46] 2019zk-SNARKNoYesNoArithmetic Circuits
Marlin [47] 2020zk-SNARKNoYesNoArithmetic Circuits
PLONK [48] 2019zk-SNARKNoYesNoArithmetic Circuits
SuperSonic [49] 2020zk-SNARKYesYesNoArithmetic Circuits
Bulletproofs [24] 2018BulletproofsYesYesNoArithmetic Circuits
Hyrax [50] 2018zk-SNARKYesYesNoArithmetic Circuits
Halo [51] 2019zk-SNARKYesYesNoArithmetic Circuits
Virgo [52] 2020zk-SNARKYesYesYesArithmetic Circuits
Ligero [53] 2017zk-SNARKYesYesYesArithmetic Circuits
Aurora [54] 2019zk-SNARKYesYesYesArithmetic Circuits
zk-STARK [55] 2019zk-STARKYesYesYesAssembly
Zilch [36] 2021zk-STARKYesYesYesObject-Oriented

See also

Related Research Articles

<span class="mw-page-title-main">Interactive proof system</span>

In computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties: a prover and a verifier. The parties interact by exchanging messages in order to ascertain whether a given string belongs to a language or not. The prover is assumed to possess unlimited computational resources but cannot be trusted, while the verifier has bounded computation power but is assumed to be always honest. Messages are sent between the verifier and prover until the verifier has an answer to the problem and has "convinced" itself that it is correct.

<span class="mw-page-title-main">David Chaum</span> American computer scientist and cryptographer (born 1955)

David Lee Chaum is an American computer scientist, cryptographer, and inventor. He is known as a pioneer in cryptography and privacy-preserving technologies, and widely recognized as the inventor of digital cash. His 1982 dissertation "Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups" is the first known proposal for a blockchain protocol. Complete with the code to implement the protocol, Chaum's dissertation proposed all but one element of the blockchain later detailed in the Bitcoin whitepaper. He has been referred to as "the father of online anonymity", and "the godfather of cryptocurrency".

<span class="mw-page-title-main">Blind signature</span> Form of digital signature

In cryptography a blind signature, as introduced by David Chaum, is a form of digital signature in which the content of a message is disguised (blinded) before it is signed. The resulting blind signature can be publicly verified against the original, unblinded message in the manner of a regular digital signature. Blind signatures are typically employed in privacy-related protocols where the signer and message author are different parties. Examples include cryptographic election systems and digital cash schemes.

A commitment scheme is a cryptographic primitive that allows one to commit to a chosen value while keeping it hidden to others, with the ability to reveal the committed value later. Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes are binding. Commitment schemes have important applications in a number of cryptographic protocols including secure coin flipping, zero-knowledge proofs, and secure computation.

An undeniable signature is a digital signature scheme which allows the signer to be selective to whom they allow to verify signatures. The scheme adds explicit signature repudiation, preventing a signer later refusing to verify a signature by omission; a situation that would devalue the signature in the eyes of the verifier. It was invented by David Chaum and Hans van Antwerpen in 1989.

The Paillier cryptosystem, invented by and named after Pascal Paillier in 1999, is a probabilistic asymmetric algorithm for public key cryptography. The problem of computing n-th residue classes is believed to be computationally difficult. The decisional composite residuosity assumption is the intractability hypothesis upon which this cryptosystem is based.

In cryptography, an oblivious transfer (OT) protocol is a type of protocol in which a sender transfers one of potentially many pieces of information to a receiver, but remains oblivious as to what piece has been transferred.

In cryptography, a zero-knowledge password proof (ZKPP) is a type of zero-knowledge proof that allows one party to prove to another party that it knows a value of a password, without revealing anything other than the fact that it knows the password to the verifier. The term is defined in IEEE P1363.2, in reference to one of the benefits of using a password-authenticated key exchange (PAKE) protocol that is secure against off-line dictionary attacks. A ZKPP prevents any party from verifying guesses for the password without interacting with a party that knows it and, in the optimal case, provides exactly one guess in each interaction.

In cryptography, a verifiable random function (VRF) is a public-key pseudorandom function that provides proofs that its outputs were calculated correctly. The owner of the secret key can compute the function value as well as an associated proof for any input value. Everyone else, using the proof and the associated public key, can check that this value was indeed calculated correctly, yet this information cannot be used to find the secret key.

In cryptography, a secret sharing scheme is verifiable if auxiliary information is included that allows players to verify their shares as consistent. More formally, verifiable secret sharing ensures that even if the dealer is malicious there is a well-defined secret that the players can later reconstruct. The concept of verifiable secret sharing (VSS) was first introduced in 1985 by Benny Chor, Shafi Goldwasser, Silvio Micali and Baruch Awerbuch.

In computational complexity theory, a computational hardness assumption is the hypothesis that a particular problem cannot be solved efficiently. It is not known how to prove (unconditional) hardness for essentially any useful problem. Instead, computer scientists rely on reductions to formally relate the hardness of a new or complicated problem to a computational hardness assumption about a problem that is better-understood.

In cryptography, a proof of knowledge is an interactive proof in which the prover succeeds in 'convincing' a verifier that the prover knows something. What it means for a machine to 'know something' is defined in terms of computation. A machine 'knows something', if this something can be computed, given the machine as an input. As the program of the prover does not necessarily spit out the knowledge itself a machine with a different program, called the knowledge extractor is introduced to capture this idea. We are mostly interested in what can be proven by polynomial time bounded machines. In this case the set of knowledge elements is limited to a set of witnesses of some language in NP.

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 another party, the Verifier, that they possess secret information without revealing to Verifier what that secret information is. The Feige–Fiat–Shamir identification scheme, however, uses modular arithmetic and a parallel verification process that limits the number of communications between Prover and Verifier.

Non-interactive zero-knowledge proofs are cryptographic primitives, where information between a prover and a verifier can be authenticated by the prover, without revealing any of the specific information beyond the validity of the statement itself. This makes direct communication between the prover and verifier unnecessary, effectively removing any intermediaries.

The Password Authenticated Key Exchange by Juggling is a password-authenticated key agreement protocol, proposed by Feng Hao and Peter Ryan. This protocol allows two parties to establish private and authenticated communication solely based on their shared (low-entropy) password without requiring a Public Key Infrastructure. It provides mutual authentication to the key exchange, a feature that is lacking in the Diffie–Hellman key exchange protocol.

In cryptography, subliminal channels are covert channels that can be used to communicate secretly in normal looking communication over an insecure channel. Subliminal channels in digital signature crypto systems were found in 1984 by Gustavus Simmons.

In cryptography, the Fiat–Shamir heuristic is a technique for taking an interactive proof of knowledge and creating a digital signature based on it. This way, some fact can be publicly proven without revealing underlying information. The technique is due to Amos Fiat and Adi Shamir (1986). For the method to work, the original interactive proof must have the property of being public-coin, i.e. verifier's random coins are made public throughout the proof protocol.

Digital signatures are a means to protect digital information from intentional modification and to authenticate the source of digital information. Public key cryptography provides a rich set of different cryptographic algorithms the create digital signatures. However, the primary public key signatures currently in use will become completely insecure if scientists are ever able to build a moderately sized quantum computer. Post quantum cryptography is a class of cryptographic algorithms designed to be resistant to attack by a quantum cryptography. Several post quantum digital signature algorithms based on hard problems in lattices are being created replace the commonly used RSA and elliptic curve signatures. A subset of these lattice based scheme are based on a problem known as Ring learning with errors. Ring learning with errors based digital signatures are among the post quantum signatures with the smallest public key and signature sizes

Garbled circuit is a cryptographic protocol that enables two-party secure computation in which two mistrusting parties can jointly evaluate a function over their private inputs without the presence of a trusted third party. In the garbled circuit protocol, the function has to be described as a Boolean circuit.

In cryptography, the open vote network is a secure multi-party computation protocol to compute the boolean-count function: namely, given a set of binary values 0/1 in the input, compute the total count of ones without revealing each individual value. This protocol was proposed by Feng Hao, Peter Ryan, and Piotr Zieliński in 2010. It extends Hao and Zieliński's anonymous veto network protocol by allowing each participant to count the number of veto votes while preserving the anonymity of those who have voted. The protocol can be generalized to support a wider range of inputs beyond just the binary values 0 and 1.

References

  1. Aad, Imad (2023), Mulder, Valentin; Mermoud, Alain; Lenders, Vincent; Tellenbach, Bernhard (eds.), "Zero-Knowledge Proof", Trends in Data Protection and Encryption Technologies, Cham: Springer Nature Switzerland, pp. 25–30, doi: 10.1007/978-3-031-33386-6_6 , ISBN   978-3-031-33386-6
  2. Goldreich, Oded (2001). Foundations of Cryptography Volume I. Cambridge University Press. p. 184. doi:10.1017/CBO9780511546891. ISBN   9780511546891.
  3. Goldreich, Oded (2001). Foundations of Cryptography Volume I. Cambridge University Press. p. 247. doi:10.1017/CBO9780511546891. ISBN   9780511546891.
  4. Goldreich, Oded (2001). Foundations of Cryptography Volume I. Cambridge University Press. p. 299. doi:10.1017/CBO9780511546891. ISBN   9780511546891.
  5. 1 2 Blum, Manuel; Feldman, Paul; Micali, Silvio (1988). "Non-interactive zero-knowledge and its applications". Proceedings of the twentieth annual ACM symposium on Theory of computing - STOC '88 (PDF). pp. 103–112. doi:10.1145/62212.62222. ISBN   978-0897912648. S2CID   7282320. Archived (PDF) from the original on December 14, 2018. Retrieved June 2, 2022.
  6. 1 2 Wu, Huixin; Wang, Feng (2014). "A Survey of Noninteractive Zero Knowledge Proof System and Its Applications". The Scientific World Journal. 2014: 560484. doi: 10.1155/2014/560484 . PMC   4032740 . PMID   24883407.
  7. Quisquater, Jean-Jacques; Guillou, Louis C.; Berson, Thomas A. (1990). "How to Explain Zero-Knowledge Protocols to Your Children". Advances in Cryptology — CRYPTO' 89 Proceedings (PDF). Lecture Notes in Computer Science. Vol. 435. pp. 628–631. doi:10.1007/0-387-34805-0_60. ISBN   978-0-387-97317-3.
  8. Chalkias, Konstantinos. "Demonstrate how Zero-Knowledge Proofs work without using maths". CordaCon 2017. Retrieved 2017-09-13.
  9. 1 2 3 Murtagh, Jack (July 1, 2023). "Where's Waldo? How to Mathematically Prove You Found Him without Revealing Where He Is". Scientific American . Retrieved 2023-10-02.
  10. Feige, Uriel; Fiat, Amos; Shamir, Adi (1988-06-01). "Zero-knowledge proofs of identity". Journal of Cryptology. 1 (2): 77–94. doi: 10.1007/BF02351717 . ISSN   1432-1378. S2CID   2950602.
  11. Chaum, David; Evertse, Jan-Hendrik; van de Graaf, Jeroen (1988). "An Improved Protocol for Demonstrating Possession of Discrete Logarithms and Some Generalizations". Advances in Cryptology — EUROCRYPT '87. Lecture Notes in Computer Science. Vol. 304. pp. 127–141. doi:10.1007/3-540-39118-5_13. ISBN   978-3-540-19102-5.
  12. Blum, Manuel (1986). "How to Prove a Theorem So No One Else Can Claim It" (PDF). ICM Proceedings: 1444–1451. CiteSeerX   10.1.1.469.9048 . Archived (PDF) from the original on January 3, 2023.
  13. Sahai, Amit; Vadhan, Salil (1 March 2003). "A complete problem for statistical zero knowledge" (PDF). Journal of the ACM. 50 (2): 196–249. CiteSeerX   10.1.1.4.3957 . doi:10.1145/636865.636868. S2CID   218593855. Archived (PDF) from the original on 2015-06-25.
  14. 1 2 Groth, J; Kohlweiss, M (14 April 2015). "One-Out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin". Advances in Cryptology - EUROCRYPT 2015. Lecture Notes in Computer Science. Vol. 9057. Berlin, Heidelberg: EUROCRYPT 2015. pp. 253–280. doi:10.1007/978-3-662-46803-6_9. hdl: 20.500.11820/f6ec5d8f-cfda-4f56-9bd0-d9222b8d9a43 . ISBN   978-3-662-46802-9. S2CID   16708805.
  15. "Introducing Zero-Knowledge Proofs for Private Web attestation with Cross/Multi-Vendor Hardware". The Cloudflare Blog. 2021-08-12. Retrieved 2021-08-18.
  16. 1 2 Goldwasser, S.; Micali, S.; Rackoff, C. (1989), "The knowledge complexity of interactive proof systems" (PDF), SIAM Journal on Computing, 18 (1): 186–208, doi:10.1137/0218012, ISSN   1095-7111
  17. Abascal, Jackson; Faghihi Sereshgi, Mohammad Hossein; Hazay, Carmit; Ishai, Yuval; Venkitasubramaniam, Muthuramakrishnan (2020-10-30). "Is the Classical GMW Paradigm Practical? The Case of Non-Interactive Actively Secure 2PC". Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. CCS '20. Virtual Event, USA: Association for Computing Machinery. pp. 1591–1605. doi:10.1145/3372297.3423366. ISBN   978-1-4503-7089-9. S2CID   226228208.
  18. "PPPL and Princeton demonstrate novel technique that may have applicability to future nuclear disarmament talks - Princeton Plasma Physics Lab". www.pppl.gov. Archived from the original on 2017-07-03.
  19. 1 2 3 Hellwig, Daniel; Karlic, Goran; Huchzermeier, Arnd (3 May 2020). "Privacy and Anonymity". Build Your Own Blockchain. Management for Professionals. SpringerLink. p. 112. doi:10.1007/978-3-030-40142-9_5. ISBN   9783030401429. S2CID   219058406 . Retrieved 3 December 2020.
  20. Hurst, Samantha (28 October 2020). "Zcoin Announces Rebranding to New Name & Ticker "Firo"". Crowdfund Insider. Archived from the original on 1 November 2020. Retrieved 4 November 2020.
  21. Bonneau, J; Miller, A; Clark, J; Narayanan, A (2015). "SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies". 2015 IEEE Symposium on Security and Privacy. San Jose, California. pp. 104–121. doi:10.1109/SP.2015.14. ISBN   978-1-4673-6949-7. S2CID   549362.{{cite book}}: CS1 maint: location missing publisher (link)
  22. Ben-Sasson, Eli; Chiesa, Alessandro; Garman, Christina; Green, Matthew; Miers, Ian; Tromer, Eran; Virza, Madars (18 May 2014). "Zerocash: Decentralized Anonymous Payments from Bitcoin" (PDF). IEEE. Retrieved 26 January 2016.
  23. Orcutt, Mike. "A mind-bending cryptographic trick promises to take blockchains mainstream". MIT Technology Review. Retrieved 2017-12-18.
  24. 1 2 Bünz, B; Bootle, D; Boneh, A (2018). "Bulletproofs: Short Proofs for Confidential Transactions and More". 2018 IEEE Symposium on Security and Privacy (SP). San Francisco, California. pp. 315–334. doi: 10.1109/SP.2018.00020 . ISBN   978-1-5386-4353-2. S2CID   3337741.{{cite book}}: CS1 maint: location missing publisher (link)
  25. Odendaal, Hansie; Sharrock, Cayle; Heerden, SW. "Bulletproofs and Mimblewimble". Tari Labs University. Archived from the original on 29 September 2020. Retrieved 3 December 2020.
  26. Andrew, Munro (30 July 2019). "Zcoin cryptocurrency introduces zero knowledge proofs with no trusted set-up". Finder Australia. Archived from the original on 30 July 2019. Retrieved 30 July 2019.
  27. Aram, Jivanyan (7 April 2019). "Lelantus: Towards Confidentiality and Anonymity of Blockchain Transactions from Standard Assumptions". Cryptology ePrint Archive (Report 373). Retrieved 14 April 2019.
  28. Zhou, Lu; Diro, Abebe; Saini, Akanksha; Kaisar, Shahriar; Hiep, Pham Cong (2024-02-01). "Leveraging zero knowledge proofs for blockchain-based identity sharing: A survey of advancements, challenges and opportunities". Journal of Information Security and Applications. 80: 103678. doi: 10.1016/j.jisa.2023.103678 . ISSN   2214-2126.
  29. Goldreich, Oded (1985). "A zero-knowledge proof that a two-prime moduli is not a Blum integer". Unpublished Manuscript.
  30. Goldreich, Oded; Micali, Silvio; Wigderson, Avi (1991). "Proofs that yield nothing but their validity". Journal of the ACM. 38 (3): 690–728. CiteSeerX   10.1.1.420.1478 . doi:10.1145/116825.116852. S2CID   2389804.
  31. Russell Impagliazzo, Moti Yung: Direct Minimum-Knowledge Computations. CRYPTO 1987: 40-51
  32. Ben-Or, Michael; Goldreich, Oded; Goldwasser, Shafi; Hastad, Johan; Kilian, Joe; Micali, Silvio; Rogaway, Phillip (1990). "Everything provable is provable in zero-knowledge". In Goldwasser, S. (ed.). Advances in Cryptology – CRYPTO '88. Lecture Notes in Computer Science. Vol. 403. Springer-Verlag. pp. 37–56.
  33. Ben-or, M.; Goldwasser, Shafi; Kilian, J.; Wigderson, A. (1988). "Multi prover interactive proofs: How to remove intractability assumptions" (PDF). Proceedings of the 20th ACM Symposium on Theory of Computing: 113–121.
  34. Dwork, Cynthia; Naor, Moni; Sahai, Amit (2004). "Concurrent Zero Knowledge". Journal of the ACM. 51 (6): 851–898. CiteSeerX   10.1.1.43.716 . doi:10.1145/1039488.1039489. S2CID   52827731.
  35. Feige, Uriel; Shamir, Adi (1990). "Witness indistinguishable and witness hiding protocols". Proceedings of the twenty-second annual ACM symposium on Theory of computing - STOC '90. pp. 416–426. CiteSeerX   10.1.1.73.3911 . doi:10.1145/100216.100272. ISBN   978-0897913614. S2CID   11146395.
  36. 1 2 Mouris, Dimitris; Tsoutsos, Nektarios Georgios (2021). "Zilch: A Framework for Deploying Transparent Zero-Knowledge Proofs". IEEE Transactions on Information Forensics and Security. 16: 3269–3284. doi:10.1109/TIFS.2021.3074869. ISSN   1556-6021. S2CID   222069813.
  37. Parno, B.; Howell, J.; Gentry, C.; Raykova, M. (May 2013). "Pinocchio: Nearly Practical Verifiable Computation". 2013 IEEE Symposium on Security and Privacy. pp. 238–252. doi:10.1109/SP.2013.47. ISBN   978-0-7695-4977-4. S2CID   1155080.
  38. Costello, Craig; Fournet, Cedric; Howell, Jon; Kohlweiss, Markulf; Kreuter, Benjamin; Naehrig, Michael; Parno, Bryan; Zahur, Samee (May 2015). "Geppetto: Versatile Verifiable Computation". 2015 IEEE Symposium on Security and Privacy. pp. 253–270. doi:10.1109/SP.2015.23. hdl: 20.500.11820/37920e55-65aa-4a42-b678-ef5902a5dd45 . ISBN   978-1-4673-6949-7. S2CID   3343426.
  39. Ben-Sasson, Eli; Chiesa, Alessandro; Genkin, Daniel; Tromer, Eran; Virza, Madars (2013). "SNARKs for C: Verifying Program Executions Succinctly and in Zero Knowledge". Advances in Cryptology – CRYPTO 2013. Lecture Notes in Computer Science. Vol. 8043. pp. 90–108. doi:10.1007/978-3-642-40084-1_6. hdl: 1721.1/87953 . ISBN   978-3-642-40083-4.
  40. Wahby, Riad S.; Setty, Srinath; Ren, Zuocheng; Blumberg, Andrew J.; Walfish, Michael (2015). "Efficient RAM and Control Flow in Verifiable Outsourced Computation". Proceedings 2015 Network and Distributed System Security Symposium. doi:10.14722/ndss.2015.23097. ISBN   978-1-891562-38-9.
  41. Eberhardt, Jacob; Tai, Stefan (July 2018). "ZoKrates - Scalable Privacy-Preserving Off-Chain Computations". 2018 IEEE International Conference on Internet of Things (IThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData). pp. 1084–1091. doi:10.1109/Cybermatics_2018.2018.00199. ISBN   978-1-5386-7975-3. S2CID   49473237.
  42. Kosba, Ahmed; Papamanthou, Charalampos; Shi, Elaine (May 2018). "XJsnark: A Framework for Efficient Verifiable Computation". 2018 IEEE Symposium on Security and Privacy (SP). pp. 944–961. doi: 10.1109/SP.2018.00018 . ISBN   978-1-5386-4353-2.
  43. Zhang, Yupeng; Genkin, Daniel; Katz, Jonathan; Papadopoulos, Dimitrios; Papamanthou, Charalampos (May 2018). "VRAM: Faster Verifiable RAM with Program-Independent Preprocessing". 2018 IEEE Symposium on Security and Privacy (SP). pp. 908–925. doi: 10.1109/SP.2018.00013 . ISBN   978-1-5386-4353-2.
  44. Ben-Sasson, Eli; Chiesa, Alessandro; Tromer, Eran; Virza, Madars (20 August 2014). "Succinct non-interactive zero knowledge for a von Neumann architecture". Proceedings of the 23rd USENIX Conference on Security Symposium. USENIX Association: 781–796. ISBN   9781931971157.
  45. Kosba, Ahmed; Papadopoulos, Dimitrios; Papamanthou, Charalampos; Song, Dawn (2020). "MIRAGE: Succinct Arguments for Randomized Algorithms with Applications to Universal zk-SNARKs". Cryptology ePrint Archive.
  46. Maller, Mary; Bowe, Sean; Kohlweiss, Markulf; Meiklejohn, Sarah (6 November 2019). "Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updatable Structured Reference Strings". Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. Association for Computing Machinery. pp. 2111–2128. doi:10.1145/3319535.3339817. hdl: 20.500.11820/739b94f1-54f0-4ec3-9644-3c95eea1e8f5 . ISBN   9781450367479. S2CID   242772913.
  47. Chiesa, Alessandro; Hu, Yuncong; Maller, Mary; Mishra, Pratyush; Vesely, Noah; Ward, Nicholas (2020). "Marlin: Preprocessing zkSNARKs with Universal and Updatable SRS". Advances in Cryptology – EUROCRYPT 2020. Lecture Notes in Computer Science. Vol. 12105. Springer International Publishing. pp. 738–768. doi:10.1007/978-3-030-45721-1_26. ISBN   978-3-030-45720-4. S2CID   204772154.
  48. Gabizon, Ariel; Williamson, Zachary J.; Ciobotaru, Oana (2019). "PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge". Cryptology ePrint Archive.
  49. Bünz, Benedikt; Fisch, Ben; Szepieniec, Alan (2020). "Transparent SNARKs from DARK Compilers". Advances in Cryptology – EUROCRYPT 2020. Lecture Notes in Computer Science. Vol. 12105. Springer International Publishing. pp. 677–706. doi:10.1007/978-3-030-45721-1_24. ISBN   978-3-030-45720-4. S2CID   204892714.
  50. Wahby, Riad S.; Tzialla, Ioanna; Shelat, Abhi; Thaler, Justin; Walfish, Michael (May 2018). "Doubly-Efficient zkSNARKs Without Trusted Setup". 2018 IEEE Symposium on Security and Privacy (SP). pp. 926–943. doi: 10.1109/SP.2018.00060 . ISBN   978-1-5386-4353-2.
  51. Bowe, Sean; Grigg, Jack; Hopwood, Daira (2019). "Recursive Proof Composition without a Trusted Setup". Cryptology ePrint Archive.
  52. Zhang, Jiaheng; Xie, Tiancheng; Zhang, Yupeng; Song, Dawn (May 2020). "Transparent Polynomial Delegation and Its Applications to Zero Knowledge Proof". 2020 IEEE Symposium on Security and Privacy (SP). pp. 859–876. doi: 10.1109/SP40000.2020.00052 . ISBN   978-1-7281-3497-0.
  53. Ames, Scott; Hazay, Carmit; Ishai, Yuval; Venkitasubramaniam, Muthuramakrishnan (30 October 2017). "Ligero". Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. Association for Computing Machinery. pp. 2087–2104. doi:10.1145/3133956.3134104. ISBN   9781450349468. S2CID   5348527.
  54. Ben-Sasson, Eli; Chiesa, Alessandro; Riabzev, Michael; Spooner, Nicholas; Virza, Madars; Ward, Nicholas P. (2019). "Aurora: Transparent Succinct Arguments for R1CS". Advances in Cryptology – EUROCRYPT 2019. Lecture Notes in Computer Science. Vol. 11476. Springer International Publishing. pp. 103–128. doi:10.1007/978-3-030-17653-2_4. ISBN   978-3-030-17652-5. S2CID   52832327.
  55. Ben-Sasson, Eli; Bentov, Iddo; Horesh, Yinon; Riabzev, Michael (2019). "Scalable Zero Knowledge with No Trusted Setup". Advances in Cryptology – CRYPTO 2019. Lecture Notes in Computer Science. Vol. 11694. Springer International Publishing. pp. 701–732. doi:10.1007/978-3-030-26954-8_23. ISBN   978-3-030-26953-1. S2CID   199501907.