The Interactive & Non-Interactive Zero-Knowledge-Proof.

The two fundamental types of Zero-Knowledge Proof (ZKP) are interactive zero-knowledge proofs and non-interactive zero-knowledge proofs.

Interactive zero-knowledge proofs

Require communication between the prover and verifier. In interactive zero-knowledge proofs, the prover and verifier engage in a back-and-forth protocol to establish the proof.

Interactive proving was the earliest method used for implementing zero-knowledge proofs, but it had several limitations. One of the significant limitations was that both the prover and verifier needed to be present and repeatedly interact to establish the proof. This requirement made it impractical for many applications, as it was not possible to pre-compute the proof, and the verifier had to be involved in every proof validation.

Moreover, the proof generated by the interaction could not be used for independent verification, as computing a new proof required a new set of messages between the prover and verifier. As a result, interactive proving was not scalable, making it unsuitable for many real-world applications.\

Address the limitations of interactive ZKPs, as they do not require any interaction after the initial setup. The NIZKP uses a precomputed set up to allow the verifier to check the proof without further interacting with the prover.

NIZKs have a wide range of applications, including secure multi-party computation, digital signatures, and anonymous credentials

The development of NIZKs was a significant breakthrough for cryptography, as they provide a more efficient and flexible method for proving knowledge without interaction. In a NIZK, the prover generates a single proof that anyone can verify without the need for additional interaction. This makes NIZKs highly useful in situations where parties cannot interact or where interaction is expensive or impractical. A key component of NIZKPs is the use of public parameters or a Common Reference String (CRS) that a trusted third party generates. The CRS is a set of public values that both the prover and verifier agree to use during the proving and verification process.\

The generation of the CRS is a crucial and sensitive operation, as any compromise in its randomness or security can lead to false proofs being generated by a malicious prover. Therefore, the generation of the CRS is typically performed by a trusted setup ceremony, where a group of participants collectively generate the parameters securely and randomly. This helps to ensure that no single participant can manipulate the parameters to generate false proofs.

Once the CRS is generated, the prover uses it along with their witness to generate proof without any interaction with the verifier. The verifier then checks the proof using only the CRS and their own inputs without interacting with the prover. This enables NIZKPs to be used in situations where interactive proving is not practical or feasible

\

Last updated