# Zero Knowledge Proof and ZK-SNARK

## Zero Knowledge Proof

A zero-knowledge proof (ZKP) is a type of proof that allows one party (the prover) to demonstrate to another party (the verifier) that a statement is true, without revealing any additional information beyond the statement itself. In other words, a zero-knowledge proof provides a way to prove the validity of a claim without revealing any information about the underlying data.

The idea behind zero-knowledge proofs is to create a mechanism for validating information without revealing any additional details about that information. This can be useful in a variety of scenarios, including transactions used in blockchains.

A zero-knowledge proof typically consists of three elements: a statement to be proven, a protocol for demonstrating the validity of the statement, and a proof that the protocol has been followed. The proof is generated using complex mathematical algorithms and is designed to be easily verifiable, but not easily forgeable.

## ZK-SNARK

zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) is a form of zero-knowledge proof. It is a technology used in cryptography to prove the validity of a statement or computation, without revealing any information about the statement or the inputs used in the computation.

In the context of blockchain, zk-SNARKs can be used to verify transactions on a public blockchain without revealing the details of the transaction, such as the sender, recipient, or the amount involved. This provides a high level of privacy for the users of the blockchain.