Since the recent development in cryptography and resulting cryptocurrencies, security and privacy have been key in the industry. Various blockchains provide their own security measures to make the network as secure as possible. Zero-Knowledge proof (ZKP) is a security measure that makes the verifier show that they know the answer to a particular question/puzzle without actually giving out the actual answer. It allows you to prove that you know some secret(s) to somebody else at the “other” end of communication without actually revealing it.
Zero-Knowledge proof is a mathematical expression that is carried out by the prover and verifier. There can be many provers and verifiers for one ZKF protocol. It is hard and confusing explaining such a phenomenon to one with no knowledge in cryptography but the illustrations below will offer a clearer picture.
The first exclusive example to simplify the ZKP protocol and how it works is the switching of two glasses of soda; one with Pepsi the other with Coke. Both of these glasses are identical in all ways and there is no way to distinguish the one that contains Pepsi and one that has Coke. However, your friend (prover) claims they can distinguish which glass has Coke and which has Pepsi perfectly but without revealing their conclusions. Thus, they need to prove to you (verifier) that they know which glass contains Coke without actually telling you which glass it is.
One way to do this would be to blindfold the verifier and you can then decide to switch the glasses or leave them as they were. Once the blindfold is off, ask if the glasses were switched or not. If they are able to distinguish if you switched the glasses or not then it means they know how to distinguish between the two. However, it may have been a lucky guess. Do it multiple times and the probability of ‘guessing’ the correct position of sodas will drop to 0.5. If they still get it correct successively, then it shows that the verifier actually knows how to distinguish the two without revealing how they did it.
The first illustration has many flaws as you may have noticed. First, if an outsider (second verifier) wants to determine whether it is true that the prover can distinguish the two glasses they will have to start the process again. If the number is large, this makes the process cumbersome and slow. Second, you and your friend may have colluded to make a trick on how to distinguish etc.
Therefore, to solve these problems you will need more verifiers and a faster way to provide zero proof knowledge.
This is done through more complex permutations and verifications such as a ‘Sudoku’ where each box represents a number that is to be solved. A typical sudoku has nine rows and nine columns; each of the rows and columns should contain numbers 1-9 without repeating a number. Each box can be used by different provers to show they know the solution without actually revealing the number.
This is the Zero Knowledge Proof system. Many privacy-based cryptocurrencies such as Z Cash and Monero use this method to secure their transactions and make them private between users.