Zero-knowledge proof is a protocol used for communication between two entities, where one entity will be the prover, and the other will be the verifier. The prover needs to prove their knowledge to the verifier about a particular topic, without giving away any details regarding the topic. The verifier should verify the prover’s knowledge, but not gain any further insight related to the topic. For example, if any voting is done by a secret ballot, the authority should be able to prove the elections were fair without divulging details of any vote cast.
Let’s suppose entity A tries to prove its knowledge of a topic to entity B. For a method to come under the domain of zero-knowledge proof, it needs to satisfy the following conditions:
If entity A knows a topic, entity B will be convinced about A’s knowledge beyond a reasonable doubt. It’ll be extremely probable entity A has the information required.
If entity A doesn’t know about a topic, entity B will not be convinced about A’s knowledge beyond a reasonable doubt. It is quite possible that entity A doesn’t have the information required.
Communication between entities A and B is confined to validating A’s knowledge. Entity B’s role is solely to verify whether entity A possesses the required information, without gaining any insight into the actual information being discussed.
This protocol can seem daunting, but let’s see a few examples to make the topic more transparent.
John wants to show Alice that he knows her laptop’s password without directly mentioning the password. To do this, he logs into Alice’s laptop with a password.
This would prove John does know about Alice’s password, but the password itself cannot be known from this interaction.
In the previous example, hardware, alongside proximity between entities, was required. Furthermore, both entities had the specific information required. Let’s see an example where the entities were neither in proximity nor any hardware was used, and the prover had to prove possession of information that even the verifier did not possess.
Suppose John is failing to complete a challenge on a website. The website only records email addresses and whether the challenge has been completed or not, without divulging how to solve the challenge. Alice claims she knows the solution. To prove this, John sends her the online challenge, which she completes.
The website shows the task to be completed, so John can verify that Alice does know the solution. However, the solution itself is still unknown, which satisfies the requirement of zero-knowledge proof.
We might be able to think of examples from our daily lives that can come under the domain of zero-knowledge proof as well. For example, one can prove they passed all the required courses in the university by showing a verified degree, without needing to show the exact grade or marks of each course.
Till now, we have read about what zero-knowledge proof is, along with seeing a few of its examples. Let’s see an example that falls outside the domain of zero-knowledge proof, so that the concept can become more evident.
Suppose Alice claims she knows John’s numerical student ID. To prove she knows this, she sends back a riddle on figuring out the ID.
This is not zero-knowledge proof, even though John can verify whether Alice knows the information being discussed. This is because, in this interaction, the exact information can also be figured out, as “Four” is the only number with the same number of alphabets as the number itself. No other number satisfies this condition — for example, “two” has 3 alphabets, “seven” has 5 alphabets, etc. It is essential in zero-knowledge proof that possession of knowledge is verified, but the knowledge itself stays hidden.
We might be able to think of examples from our daily lives even where a prover is trying to prove something to a verifier, but the method doesn’t come under the domain of zero-knowledge proof. For example, one can prove their income requires tax deduction by showing the amount of tax they gave. However, the verifier will get the tax information and might even be able to figure out the total income of the prover.
In this Answer, we learn about what zero-knowledge proof is. Any method of communication can be an example of zero-knowledge proof, given it satisfies all the required conditions.
Free Resources