How do you make transactions truly private? Zero Knowledge Proof
What is zero-knowledge proof all about?
Zero-knowledge proof (or zero-knowledge protocol; shortly ZKP) is a way of proving that something is true without revealing what it is. Speaking more clearly, it is a method in which one person (the prover) can prove another person (the verifier) that he has the knowledge about the value of x, without giving any information about it. This proof has to be done this way, that verifier cannot repeat the whole process to someone else, proving that he also has the information. During ZKP questions a prover has to be yes/no questions. What is important, ZKP gives nearly 100% certainty, never straight 100%.
There are two different models of zero-knowledge proofs - interactive and non-interactive. What is the distinction? Interactive ZKP requires interaction between the prover and verifier, whereas non-interactive ZKP does not. The interactive is limited in transferability which means that to convince the next person, we have to repeat the whole process. In non-interactive, there is a complicated cryptographic hash function and proof, which anyone can verify by themselves.
ZKP proof has to satisfy three properties:
When we think about big IoT Platforms, there are a few names, which will come to our mind.
- Completeness- if the statement is true, the honest verifier will be convinced by an honest prover.
- Soundness - there is only a small probability, that if the statement is false, a cheater prover can convince an honest verifier that it is true.
- Zero-knowledge - if the statement is true, the verifier learns anything other than it is true.
Because the definition can be a bit complicated, let’s see a short example of ZKP use. To buy alcohol, you have to be at least 18 years old in Poland. ZKP could confirm whether the client can or cannot buy it, without disclosure of birth data or age. The dealer only has to know, if he can sell us something (like alcohol), he should not know any of our private data.
Benefits of Zero-knowledge protocol
As we already know a bit about this method, we can focus on finding some benefits of using it:
- Zero-knowledge proof protects data while allowing for queries on them - sometimes we have to prove we possess certain data to someone we do not trust. ZKP will help us to prove it, at the same time protecting our data. It is extremely important in the digital economy when organizations and businesses do more and more transactions fully digitally.
- Data cannot be manipulated or stolen - simply because it is not shared and is still on our servers.
- ZKP gives us anonymity - our transactions cannot be censored, monitored or tracked by any central or governing body.
- Useful for verification of blockchain transactions in different currencies like Zcash. Zcash is cryptocurrency, built on the original Bitcoin code base, using it you control which information you share with others.
To sum up, we can say, that zero-knowledge proof can prove the existence of a secret without disclosing what the secret is. And this is our future, because sooner or later most of us will understand how important our privacy is.