# What is Zero Knowledge Proof (ZKP)

The Zero Knowledge Proof, also known as ZKP has an almost decade-long history in computer science and cryptography. However, the concept is evolving largely in a decentralized ecosystem due to its authentication potential for blockchain and Web 3.0.

**What is Zero – Knowledge Proof?**

A zero-knowledge proof is a way to prove the validity of the statement without revealing the statement in general. It is a protocol that attempts to establish factual consensus between the parties with the minimum information exchange. The “prover” is the party that tries to prove some claim while the “verifier” is the one responsible for validating the claim.

The idea of ZKP was first published in 1985 in the paper. “The Knowledge Complexity of Interactive Proof Systems” where the ZKPs is defined completely in the way we understand them today.

In cryptography, the ZKP protocol intends to limit the transfer of information exchange during authentication activities. As a result, the ZKP originators study the movement of knowledge and information in the computer proofs and provide a significant advancement in introducing a new area of study that has wider implications and use -cases in Web 3.0 and blockchain.

**Elements of Zero – Knowledge Proof **

The Zero – Knowledge Proof works on three fundamental elements: Witness, Challenge, and Response.

**● Witness **

With a zero–knowledge proof (ZKP), the prover aims to prove knowledge regarding some hidden information that acts as the “witness” to the proof. The assumed knowledge of the prover establishes a set of questions that can only be answered by the parties with complete knowledge of the information. Here, the prover starts the proving process by randomly choosing a question, calculating the answer to it, and sending it to the verifier.

**● Challenge **

The verifier randomly picks another set of question and ask the prover to answer them which is termed a “challenge” in the Zero–Knowledge Protocol.

**● Response **

After accepting the question and calculating its answer the prover returns it to the verifier. The prover’s response to the question allows the verifier to check if the prover has access to the witness. This ensures the prover is getting the correct answers even by chance which further facilitates choosing more questions and repeating the process. The possibility of the prover providing fake knowledge reduces significantly as the process repeats unless the verifier is satisfied.

**How does Zero–Knowledge Proof Work?**

The ZKP allows you to prove a statement's truth without revealing its content to discover the truth. To make it possible ZKP relies on some algorithms which take into account some data which act as the input and return “ true” or “false” as the output. Some of the common conditions that Zero–Knowledge Protocol shall satisfy to give true results are as follows.

**● Completeness **

The input shall be valid so that the ZKP protocol always returns “True” as the output. If the underlying statement is true then it ensures that the prover and verifier also perform their task honestly and the proof becomes acceptable.

**● Soundness **

The invalid input makes it impossible for Zero–Knowledge Protocol (ZKP) to return “True” output. As a result, the lying or unfair prover cannot trick any honest verifier into believing the invalid statement. As a result, ZKP protocols ensure that the validation provided is true and sound.

**● Zero – Knowledge**

Since the verifier learns nothing about the statement except its validity or falsity. Therefore, the ZKP protocols prevent the verifier from revealing the original input also termed as the statement’s content from the proof.

**Types of Zero–Knowledge Proof **

There are broadly two types of Zero – Knowledge Proof (ZKP) which are as follows.

**● ZK – SNARKs**

It is the acronym for Zero–Knowledge Succinct Non – Interactive Argument of Knowledge which has the following characteristics.

● The parties have zero –knowledge of the content.

● ZKP has smaller than witness is verified quickly, termed as Succinct

● This type of ZKP is non-interactive because the parties only interact once.

● It follows an argument known as (Of) Knowledge which prevents access to secret information.

**● ZK – STARKs**

It stands for Zero-Knowledge Scalable Transparent Argument Of Knowledge which is largely similar to ZK- SNARKs except for the following characteristics.

● ZK-STARKs are more scalable and faster when the size of the witness is larger.

● This type of ZKP relies on publicly verifiable randomness making the setup more transparent.

In general, ZK-STARKs produce a larger set of proofs than ZK – SNARKS and have higher verification overheads. However, in some cases, ZK-STARKS acts more cost-effective and provides operational efficiency.

**Use Cases of Zero Knowledge Proof **

The ZKP protocol has a wide range of use –cases. However, some of the known real–time applications of the Zero – Knowledge Proof are as follows.

**● Supports Anonymous Payments **

The Zero – Knowledge technology is a suitable tech stack for privacy–focused blockchain networks where the validation of transactions does not require access to transaction data. Tornado Cash, a decentralized and non–custodial service provider uses this to conduct private Ethereum – based transactions. There are more such digital coins that proudly rely on the ZKP protocol.

**● Provides Identity Protection **

The use of ZKP in the context of decentralized identity which is also known as “self-sovereign identity “helps to improve the control access to personal identifiers. The most common use –case could be proving the citizenship of the person without requiring them to reveal tax ID or passport details.

**● Ensures Transaction Authentication**

Using online services often comes with the fact that one has to prove their identity and right to access which might involve sharing personal information. ZKP is potent to simplify this process and reduce the need to store huge amounts of information in the system or user’s mind.

**● Eases verifiable computation **

Supporting verifiable computation is another use–case of zero–knowledge technology that improves blockchain designs by allowing outsourcing computation and maintaining the verifiable results. ZKP can support both on and off-scaling solutions in the blockchain and allow extensive modification of the base layer.

The Zero-Knowledge Rollups and Validiums are the two popular off-chain scaling solutions that rely on ZKP to provide secure scalability.

**Going Ahead With Zero –Knowledge Proof in Web 3.0 **

The Zero – Knowledge Proof has been a breakthrough in applied cryptography and ensures the security of information in the blockchain. It has emerged as an exciting and uncertain area as there remains a lot to explore.

Zk-SNARK is the most commonly used ZKP protocol in Web 3.0 projects and allows them to maintain platform security and transaction privacy. However, there are some issues that are addressed the technology evolves. Thus, there is a lot that ZKP can do for blockchain startups and projects if the shortcomings are eliminated.