What is zero-knowledge proof?

What is zero-knowledge proof?

What is zero-knowledge proof and how it is used in blockchain? Everything about it in one article.

What is it?

Zero-disclosure evidence is a cryptographic protocol that allows one side (the prover) to confirm the truth of the statement to the other side (the verifier), without disclosing any additional information about it (neither the content nor the source from which the prover learned about the veracity). the definition was first proposed by researchers at the Massachusetts Institute of Technology (MIT) Shafi Goldwasser, Silvio Micali and Charles Rakoff in the scientific article “The knowledge complexity of interactive proof-systems” (1985).

How does it work?

Imagine that you are in a room with someone blindfolded. On the table in front of you are two balls white and black. You need to prove to the second person (the verifier) ​​that the balls are really different colors, without revealing which ones.

To do this, you must ask him to hide both balls under the table. After that, ask to get only one so you can see it. Then the ball hides again and the next time the verifier can again show either white or black. However, you can prove the statement because you know for sure whether he changed them under the table.

Nevertheless, the verifier will not be completely sure of the truth of the fact, because luck or deception could have taken place. This problem is solved by repeating the experiment n times. With each round, the chance of accidentally being right will be halved: after five repetitions, the probability of cheating will be 1 to 32, after 10 rounds 1 to 1024, and after 20 rounds about 1 to 1,000,000.

Through repetition, it is possible to achieve the desired level of evidence reliability, but absolute certainty cannot be achieved.

Why use zero-knowledge proof?

One of the obvious applications of evidence with zero disclosure in cryptocurrencies can be called checking the user’s availability of funds for a transaction, without disclosing to network participants who this user is and how much money he has in his account.

This protocol can also be used in areas where it is necessary to ensure the security of data (for example, personal information) or the conduct of financial transactions.

Zero-disclosure evidence can play the role of a tool that verifies data and users, provides privileged access and establishes trusted connections.

What are the benefits of zero-disclosure evidence?

  • increasing the privacy of users in public blockchains and other networks;
  • Strengthening information security by replacing inefficient authentication and verification methods;
  • Blockchain throughput and scalability.

What are the disadvantages?

  • require significant computing power;
  • the possibility of compromise with a trusted installation;
  • potential vulnerability to quantum computing.