# Zero Knowledge Proof

A zero-knowledge protocol is a method by which one party can prove to another party that something is true, without revealing any information apart from the fact that this specific statement is true. It lets you validate the truth of something without revealing how the user knows the truth or sharing the content of this truth with the verifier. Zero Knowledge Proof can verify that you processed a transaction without revealing the amount of transaction. This principle is based on an algorithm that takes some data as input and produces ‘true’ or ‘false’ as output.

In a zero-knowledge transaction, the others only know that a valid transaction has taken place, but nothing about the sender, recipient, asset class and quantity. The identity and amount being spent can remain hidden, and problems such as “front-running” can be avoided.

There are three requirements that must be met by any zero-knowledge application:

(1) Completeness: If the input is true, the zero-knowledge proof always returns ‘true’

(2) Soundness: If the input is false, it is not possible to trick the zero-knowledge proof to return ‘true’

(3) Privacy: The input cannot be obtained by any other party.

Now a days zero knowledge proof is getting a lot of attention because of implications in various blockchain projects, but it isn’t a brand-new idea, it was first proposed in a paper from 1985, called ‘The knowledge complexity of Interactive Proofs’. The zero-knowledge proof isn’t an airtight proof, rather it is a process that helps you confirm that the probability of the proof being fake is negligent (not zero, but very close to zero). There exist two forms of zero knowledge proof, Interactive & Non-Interactive. In Interactive zero knowledge proof, you ask a series of questions regarding the ‘knowledge’ possessed by the prover, hence the name interactive. And as implied by the name, Non-Interactive zero knowledge proof does not need any interaction between the verifier & prover, rather it might use computational programs and algorithms to device a sequence of experiments.

A few setbacks of this theory are:

(1) It cannot produce a 100% airtight proof

(2) The proof is limited in transferability

(3) Zero knowledge proof is so good at keeping secrets that we might lose access to them altogether

(4) It either requires heavy interactions or intensive computational power

However, the intensive requirements can be taken care of by the help of snarks, short for Succinct Non-interactive Arguments of Knowledge. ZK-Snarks reduce the size of the proofs and the computational effort required to verify them. It introduces several innovations that render them usable in blockchains. Zero-knowledge protocols enable the transfer of assets across a distributed, peer-to-peer blockchain network with complete privacy.

Considering the bigger picture, zero knowledge proof could unleash a revolution when it comes to our online privacy. We can limit how much information a certain company can access, enabling the transfer of just enough data to provide a service or comply regulations. It is proving to be a boon in the sector of nuclear disarmament. In 2016, a technique was proposed that uses zero knowledge proof to identify whether or not two objects are same without revealing their geometry or composition. This technique is a physical application of zero knowledge proof, allowing nations to verify their warheads without disclosing classified information. Thus, this might become the next big innovation as far as privacy is concerned.

Thanks for reading. Connect with me on twitter.