Deep Dive in Zero Knowledge - Extending Interactive Proofs

Deep Dive in Zero Knowledge - Extending Interactive Proofs

in

This is the second one of my article series on Zero Knowledge. First one was a very abstract example to point out what we are looking for. Now we are continuing with the first emergence of ZK protocols in the literature. You may need your pencil πŸ“ in this one…

We will examine the interactive proof scheme which showed effectively that proving a knowledge without revealing anything about the secret is possible. There are lot to cover so bear with me. Hopefully, we will get closer what a real ZK protocol may offer.

TLDR: If an interaction cannot be simulated, we lose ZKness since the prover now loses her chance to deny the possession of the secret.

Let us remember that ZK is a property. It can be thought as all or none, if even one thing is revealed, ZK is lost. As we examined earlier, the case in which Peggy cannot deny that she knows the secret means we do not have ZK property. As we understood that, we should ofcourse make things harder and more complicated now. It will get easier the more we see internal mechanics and components of these schemes.

Interactive Proof Systems

Interaction of parties is essentially communicating back and forth but only the specified information. That is to keeping some information secret. As we will see, randomness is neeeded for such systems to work, so we have to secure this random number generation and sometimes the random number itself. We call such systems interactive proof systems.

So the question raised was and still is, how much knowledge is obtained by the verifier in an interactive proof system. We define interactive zero-knowledge proof system for a problem[1]^{[1]} as follows : if the Prover tells nothing but her solution is valid for the specified problem. We knew this already from the Cave example, but we will add something here now : the above statement should hold even if the Verifier is trying to obtain some information by tricking the Prover. It was not that trivial in the Cave example since we discarded most of unwanted details to deliver basics. So, even if the Verifier is not abiding the protocol and acts deceptively, he should not be able to obtain anything.

Let us examine an example problem [A]^{[A]} which has an interactive proof. We will show an interactive proof system for membership in Quadratic Residue(QN) [3]^{[3]} . Let us say our inputs are xx and yy. The question is if y is a Quadratic Non-Residue mod x or not. Let nn be the length of the binary representation [2]^{[2]} of xx. Verifier starts by generating a random number rr of which the binary representation b0,b1,...,bnb_0, b_1, ... , b_n length also is nn. The Verifier generates rr by tossing a coin for each bit and say making that bit 1 for heads, 0 for tails. Coin toss is a symbolic approach to indicate that this process should be a random process, i.e. there should not be any deterministic precursors to the selection of rr since if so and the Prover discovers such a pattern, she could deceive the Verifier . We will examine this scenario in a minute. After the Verifier generates rr, he then begins to form a string Ξ±\alpha as following : the Verifier computes values z1,z2,...znz_1, z_2, ... z_n such that each ziz_i is a random value, 0<z<x0<z<x, and gcd(zi,x)=1gcd(z_i, x)=1 . The Verifier then computes w1,w2,...wnw_1, w_2, ... w_n such that for every bib_i in bits of rr, if bi=0b_i = 0 then wi=zi2modxw_i = z_i^2 mod x; if bi=1b_i = 1 then wi=(zi2y)modxw_i = (z_i^2y) mod x. In simpler terms, if bi=0b_i = 0, the wiw_i corresponding to this turn will be a quadratic residue in modxmod x; if bi=1b_i = 1, the wiw_i corresponding to that turn will NOT be a quadratic residue in modxmod x. So the Prover somehow computes whether or not wiw_i is a QR modxmod x or not, and sends to the Verifier a sequence of bits c1,c2,...,cic_1, c_2, ..., c_i such that ci=0c_i=0 if and only if wiw_i is a QR modxmod x, ciβˆ’1c_i-1 otherwise. B checks if bi=cib_i=c_i for every ii, and if so is β€œconvinced” that yy is in QNR modxmod x. The reasoning is as follows: if for every bib_i, bi=cib_i=c_i, it means the Prover who can somehow compute if a number is in QR modxmod x or not, could not compute a number Ξ³\gamma such that y=Ξ³2modxy=\gamma^2 mod x. If she could, wi=(zi2y)modxw_i = (z_i^2y) mod x would result in wi=(zi2Ξ³2)modxw_i = (z_i^2\gamma^2) mod x this be a QR modxmod x and would result a bit 0 contrary to bib_i which is equal to 1 instead since the Verifier assumed that yy is in QNR modxmod x.

Let us peak another problematic situation between Victor and Peggy. Those two appearantly have trust problems…

Interactive Proofs Figure 1 : Interactive proof schema, the arrows are not horizontal to represent time which is assumed to flow from above to below in this case

A colored graph sample Figure 2 :A colored graph sample

http://web.mit.edu/~ezyang/Public/graph/svg.html

The Knowledge Complexity of Interactive Proof Systems - Shafi Goldwasser, Silvio Micali, and Charles Rackoff

Ali Baba's Cave Figure 3 Figure 3 : Victor chose edge eie_i and Peggy revealed the vertices connected by the eie_i. Seeing that vertices belong to the solution color set and different Victor will note this run as in the cave example and re-run the protocol

[1]^{[1]} problem -> a string belonging to a language.
[2]^{[2]} binary representation. i.e. the number of 1s and 0s in the representation.
[3]^{[3]}
[4]^{[4]}
[5]^{[5]}