# What is Zero-Knowledge Proof

The many benefits of blockchain include transparency, immutability, and decentralization. However, blockchain is a distributed ledger technology (DLT) that shares information with third party systems to verify transactions in the blockchain and we can all agree that the less information is shared, the less is exposed to security breaches. What if there was a way to verify the authenticity of transactions without revealing the underlying data?

In this article, we will take a deeper look at Zero-Knowledge Proof, how it works, and how important it is in the blockchain space.

# Defining Zero-Knowledge Proof

A zero-knowledge proof, sometimes also referred to as a ZK protocol, is a verification method that takes place between a prover and a verifier. In a zero-knowledge proof system, the prover is able to prove to the verifier that they have the knowledge of a particular piece of information (such as the solution to a mathematical equation) without revealing the information itself. These proof systems can be used by modern cryptographers to provide increased levels of privacy and security.

The concept of a zero-knowledge proof was first described in a 1985 MIT paper, published by Shafi Goldwasser and Silvio Micali. They demonstrated that it was possible to prove some properties of a number without disclosing the number or any additional information about it. This paper also introduced the mathematically significant finding that interactions between a prover and a verifier could reduce the amount of information required to prove a given theorem.

A ZK proof must fulfill two basic requirements known as completeness and soundness. Completeness refers to the ability of the prover to demonstrate knowledge of the relevant information to a high degree of probable accuracy. For the proof to be sound, the verifier must be able to reliably determine whether or not the prover is actually in possession of the information. Finally, in order to be truly zero-knowledge, the proof must achieve both completeness and soundness without the information in question ever being communicated between the prover and the verifier.

# How does Zero-Knowledge Proof work?

A popular example to illustrate the basic idea behind ZKPs is as the following:

Suppose you (the prover) have a color-blind friend (the verifier) that cannot distinguish a green and a red ball from each other (have zero knowledge about whether the balls are different colors). You need to prove that the colors of the balls are different but your friend needs something more than your words to be convinced. A ZKP method for this problem would be like this:

- Your friend takes the balls and lets you see which ball is in which hand.
- Then, they either switch the balls between their hands or not behind their back.
- They then present the balls to you and ask you whether they switched the balls or not. As you can distinguish the green ball from the red one, you can easily give the correct answer.
- Your friend is not convinced. You have a 50% chance to correctly guess whether they switched the balls or not and the balls can still be the same color.
- However, if they repeat this several times, eventually, the probability of you correctly guessing whether they switched the balls or not each time would be very low. This enables your friend to verify that the balls are different colors without knowing the actual colors of the balls.

A series of cryptographic algorithms are used in the real-world applications of ZKPs to enable the verification of a computational statement. For instance, using ZKP methods, a receiver of payment can verify that the payer has sufficient balance in their bank account without getting any other information about the payer’s balance.

# What are the properties of zero-knowledge proofs?

A zero-knowledge proof (ZKP) method must satisfy these criteria:

**Completeness:**If the information provided by the prover is true, then a ZKP method must enable the verifier to verify that the prover is telling the truth.**Soundness:**If the information provided by the prover is false, then a ZKP method must allow the verifier to refute that the prover is telling the truth.**Zero-knowledge:**The method must reveal to the verifier nothing else than whether the prover is telling the truth or not.

# What are the challenges of zero-knowledge proofs?

**No 100% guarantee:** Even if the probability of verification by the verifier while the prover is lying can be significantly low, ZKPs don’t guarantee that the claim is valid 100%. As demonstrated above, the probability of a prover lying decreases in each iteration of the ball-picking process, but it can never reach zero. Thus, zero-knowledge proofs aren’t actual proofs in a mathematical sense.

**Computation intensity:** Algorithms used are computationally intense as they require many interactions between the verifier and the prover (in interactive ZKPs), or require a lot of computational capabilities (in non-interactive ZKPs). This makes ZKPs unsuitable for slow or mobile devices.

# The Future of Zero-Knowledge Proof

Centralized platforms like Facebook, Amazon, and Google, our data is sold for profit in an effort to manipulate our behavior through advertising. On completely open blockchain networks all our activities are recorded and public. What zero-knowledge proof offers is a public and transparent network that protects people from the snoopers, peepers, and creepers of our digital age.

The future is bright for ZKP, and we can expect more improvements. When used correctly, it can totally change the way we live our internet lives today.