Zero knowledge proof is very fascinating concept in cryptographic innovation. Firstly introduced in a 1985 paper, over a time several improvement occurs in it and now zkp is used in real world application.

It is a method in which one party(prover) can give proof of knowing one thing to second party(verifier) without sharing actual information. In the form of proof it gives proof of knowingness.

Main challenge in Zero knowledge protocol is giving justification of possession of knowledge without sharing information to another party.

Zero knowledge proof is all about anything like statement or set of information etc.

Prover is responsible to prove claims,

Verifier is responsible to validate claim.

**Why we need ZKP(zero knowledge proof)??**

Lets consider simple scenario that, “To prove student is of particular college”, he need to give unique Identity card.

Again sharing such document is security threat so in this case ZKP(Zero Knowledge Protocol) gives solution.

**How ZKP(Zero Knowledge Protocol) work?**

Zero knowledge proof allow us to prove truth without sharing information or how you prove that information. For that ZKP depends on algorithm which takes some input and generate two outputs, either true or false. If true then that truth itself contain succinct(short) validity proof. Again it is not information to be prove or how we make it prove.

Zero knowledge protocol must satisfy 3 criteria

1.**Completeness**– when **information is true** and **both prover and verifier are honest** then protocol should return true

2.**Soundness**– when information is false and both prover and verifier honest then protocol should return false.

In above case Soundness limit lying prover that they can’t make fool to honest verifier and tell them invalid info as valid one.

3.**Zero knowledge**– what validators receive at the end about original information?

Validators know only either validity or falsity of information and have ‘zero knowledge’ about original information so that they can’t retrieve original information.

**Types of zero knowledge protocol**

Depends on mode of communication(either one way or two way) between prover and verifier ZKP is mainly divided into two types.

**1.Interactive ZKP**

**2.Non-Interactive ZKP**

**Interactive ZKP**

In this ZKP back and forth communication between prover and verifier occurs.

Whatever may be the original information, secret information is generated which will be witness to the proof.

Now by considering this secret information as base, set of a question is generated which can be answered by only party having knowledge of that information i.e having access to secret information.

Prover randomly choose question from that set and start proving by giving answer of it to verifier then again verifier select another question and prover gives answer of it. This question-answer round repeat till satisfaction of verifier that confirms prover have proper knowledge of secret information.

**Limitations of interactive ZKP(zero knowledge protocol)**

- Two parties should available and need to make continuous interaction till strong proof generation
- Proof generated by convincing verifier not available for another verifier

**Non-Interactive ZKP**

To overcome the limits of interactive ZKP(zero knowledge protocol) this **Non-Interactive ZKP **was introduced by Manuel Blum, Paul Feldman and Silvio Mical.

This model uses **shared key** for prover and verifier on which proof of knowledge possession is provided which can be further available for another verifier also.

This shared key is public parameter but have sensitive generation as it directly connected to security issue.

Once generated proof is further useful for other validators.

Two specific types of non- interactive ZKP(Zero Knowledge Proof):

- ZK-SNARK(
**Zero knowledge succinct non-interactive argument of knowledge**) - ZK-STARK(
**Zero knowledge scalable transparent argument of knowledge**)

We will see main differences through difference table.