How do you make transactions truly private? Zero Knowledge Proof


We use the Internet on a daily basis both in our work and in our free time, often making different transactions. So it is very important to ensure security and verification of transactions concluded on the Internet, because when our transaction is falsified, our data can be stolen. Solution for these problems is a zero knowledge method, which makes transactions private.


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.


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.


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 a 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.