Dwarves
Memo
Type ESC to close search bar

Zero-knowledge Proofs

Zero-knowledge proof is a way of proving the validity of a statement without disclosing the statement itself. A “validator” is the party attempting to prove a claim, while a “verifier” is responsible for validating the claim.

Why do we need to demonstrate no knowledge?

Zero-knowledge proofs represent a breakthrough in applied cryptography, as they promise to improve the security of information for individuals. Consider how you can prove the claim (for example, “I am a citizen of country X”) to another party (for example, a service provider). You’ll need to provide “proof” to back up your claim, such as a national passport or driver’s license. But this approach is not safe, can be hacked, personal information can be revealed

Zero-knowledge proofs solve this problem by removing the need to disclose information to prove the validity of claims. The zero-knowledge protocol uses a statement (called a ‘witness’) as input to generate a succint proof of its validity. This proof provides firm assurance that a statement is true without revealing the information used to make it.

Going back to our earlier example, the only proof you need to prove your citizenship claim is zero-knowledge proof. The verifier only has to check if certain properties of the proof are true to believe that the underlying statement is also true.

How to prove Zero Knowledge works?

To make this possible, zero-knowledge protocols rely on algorithms that take some data as input and return the ’true’ or ‘false’ as output. A Zero-knowledge protocol must satisfy the following criteria:

  1. Completeness: If the input is valid, the zero-knowledge protocol always returns ’true’. Hence, if the underlying statement is true, and the prover and verifier act honestly, the proof can be accepted.
  2. Soundness: If the input is invalid, it is theoretically impossible to fool the zero-knowledge protocol to return ’true’. Hence, a lying prover cannot trick an honest verifier into believing an invalid statement is valid (except with a tiny margin of probability).
  3. Zero-knowledge: The verifier learns nothing about a statement beyond its validity or falsity (they have “zero knowledge” of the statement). This requirement also prevents the verifier from deriving the original input (the statement’s contents) from the proof.

In basic form, a zero-knowledge proof is made up of three elements: witness, challenge, and response.

Interactive proof and non-interactive proof:

Types of zero-knowledge proofs

ZK-SNARKs

ZK-SNARK is an acronym for Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. The ZK-SNARK protocol has the following qualities:

For the ZK-SNARK protocol to work, the creation of a Common Reference String (CRS) is necessary: ​​The CRS provides public parameters to prove and verify valid proofs. The security of the proof system depends on the CRS setting; If the information used to create the public parameters falls into the possession of malicious actors, they can create false validators.

ZK-STARKs

Like ZK-SNARKs, ZK-STARKs demonstrate the validity of off-chain computation without revealing the input. However, ZK-STARK is considered an improvement on ZK-SNARK because of their scalability and transparency.

Application for ZK proof

Drawbacks of using ZK proofs

References