Current implementation - syscall abstractions
I refactored my approach to test my malloc by just mocking syscalls under testing conditions to get rid of dynamic linking altogether.
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.
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 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 which has an interactive proof. We will show an interactive proof system for membership in Quadratic Residue(QN) . Let us say our inputs are and . The question is if y is a Quadratic Non-Residue mod x or not. Let be the length of the binary representation of . Verifier starts by generating a random number of which the binary representation length also is . The Verifier generates 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 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 , he then begins to form a string as following : the Verifier computes values such that each is a random value, , and . The Verifier then computes such that for every in bits of , if then ; if then . In simpler terms, if , the corresponding to this turn will be a quadratic residue in ; if , the corresponding to that turn will NOT be a quadratic residue in . So the Prover somehow computes whether or not is a QR or not, and sends to the Verifier a sequence of bits such that if and only if is a QR , otherwise. B checks if for every , and if so is βconvincedβ that is in QNR . The reasoning is as follows: if for every , , it means the Prover who can somehow compute if a number is in QR or not, could not compute a number such that . If she could, would result in this be a QR and would result a bit 0 contrary to which is equal to 1 instead since the Verifier assumed that is in QNR .
Let us peak another problematic situation between Victor and Peggy. Those two appearantly have trust problemsβ¦
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
Figure 2 :A colored graph sample
http://web.mit.edu/~ezyang/Public/graph/svg.html
Figure 3 : Victor chose edge and Peggy revealed the vertices connected by the . 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
problem -> a string belonging to a language.
binary representation.
i.e. the number of 1s and 0s in the representation.