What is Zero-Knowledge Proof?
In today’s world, data has become very important for companies. Even if you don’t use your apps, the network provider and the phone operating system collects your data.
Companies profit from the data in many ways. They use this data to optimize their services or re-sell them to other companies. Few companies need your data to serve you. For example, banks need your credit score to provide you with desired loans.
Now, think if you can prove that your credit score is good enough, without disclosing the actual credit score?
There is a way! This is how zero-knowledge proof works. One can verify the data without revealing that data.
In simple terms, a zero-knowledge proof or zero-knowledge protocol is a method by which the provider can prove to the verifier that they know the value of y, without giving any information apart from the fact that they know the value y.
Let me explain it with an example
Imagine you have a color-blind friend and two balls, red and green of the same size. Your friend is doubting your statement and thinks that they are the same.
So, you have to prove to your friend that there are two different colors of balls without telling him which is which.
You give the balls and, your friend hides them behind his back. He takes out a ball randomly after that and lets you see it. He then takes back the ball and then randomly picks the ball again. You get to see the ball this time too. After that, he’d ask you if he had switched the ball or not. For some time, he will be repeating this process to be sure.
Now that you’re not color blind, you can determine whether or not he switched the ball. Your chances of responding correctly would be 50% if the balls were of the same color.
After repeating this process and when you can answer each time correctly, your friend would be convinced.
Here, the probability of predication becomes zero, and the three zero-knowledge properties are fulfilled.
But make sure that your friend doesn’t know which one is green and which one is red and this way you will be able to preserve the third property “zero-knowledge.”
Properties of Zero-Knowledge Proof
A true Zero-Knowledge Proof needs to fulfill three criteria:
It should convince the verifier that the provider knows what they say they know.
If the information is false, the provider cannot convince the verifier.
Verifier won’t be able to know any information beyond that the statement is true or false.
In Interactive zero-knowledge proof, the prover performs a series of actions to convince the verifier about the soundness of the knowledge of the verifier.
Non-interactive zero-knowledge proof does not need an interactive process. It requires picking a hash function to pick the challenge without any interaction with the verifier.
Pros and Cons
Pros are as follows:
- Simple – It does not involve any complex encryption method.
- Secure – It does not need anyone to reveal any sort of information.
A few Cons of Zero-Knowledge Proof:
- Lengthy – The zero-knowledge method has around 2K computations. Each computation requires a certain amount of time to process which makes it lengthy.
- Imperfect – One can destroy or change the messages sent to the verifier/prover.
- Limited – The secret should be a numerical value in ZKP.
Why blockchain and Zero-Knowledge Proof?
Blockchain is a decentralized distributed ledger where transactions are secure and immutable. The transaction that takes place is visible to all the users and, the details of the transaction are visible to others as well, which results in a privacy breach.
Blockchain doesn’t provide transaction or data privacy and, this where we can put in place the concept of Zero-Knowledge Proof. ZKP can ensure that others only know that a valid transaction has taken place. But information about the sender, receiver, number, and type of asset transferred is not disclosed.
Applications of Zero-Knowledge Proof
Applications of zero-knowledge:
For confidential transactions on blockchains.
End-to-end encryption of messages is necessary so that no one can read the private message besides the one you are sending it to. With ZKP and blockchain together, we can build end-to-end trust in the messaging world without leaking any extra information.
There will be no need for a trustworthy third party to verify the results if the public blockchain records the votes. As a result, ZKP can make the voting system anonymous as the eligible voters can prove their right to cast a vote without revealing their identity.
In authentication systems, one party wants to prove its identity to a second party via some secret information like a password but, without letting the second party learn anything. ZKP can help perform this type of information exchange.
5.Checking personal information.
To apply for loans in banks, users have to submit a few certificates and their credit score details which contain confidential information. ZKP can help to share this information without sharing confidential information.
iZero-Knowledge Proofs have enormous ability to place people back in charge of their information by allowing others to confirm properties of the data without exposing the data itself. Therefore, it could be beneficial in various industries, like finance, health care.
To understand how blockchain works in the finance sector, click here.