Introduction

Zero-knowledge proofs involve two parties: a prover and a verifier.

  • The prover makes an assertion that his or her proof is valid

  • which the verifier must approve, without the prover leaking any “knowledge” other than the assertion itself.

How can the verifier validate an assertion without any knowledge of the content and minimal interaction with the prover?

This is where zero-knowledge proofs become useful !

  • Imagine frequent scenarios when one reveals private information to verify something about one’s identity

  • When one applies for a credit card, he or she must give up his social security number

  • When one checks in for a flight at the airport, he or she must reveal all the private information present on the passport, such as birthdate or passport number

  • Even on a day-to-day basis, when a user logs on to a web or mobile application, the user must enter a password to the account and send this sensitive information to the server, trust that the application securely handles this information, and that the password is not intercepted over the network.

3 Essential Properties of ZKP

  1. Completeness: Suppose a prover knows a secret number 𝑥 that solves a particular equation. Completeness guarantees that, if 𝑥 is indeed the solution, the verifier will be convinced of this without directly learning 𝑥 .

  2. Soundness: Imagine a prover doesn’t actually know the secret number 𝑥 but tries to fool the verifier into believing they do. Soundness ensures that any false or misleading proof will be detected by the verifier.

  3. Zero knowledge: Continuing with our secret number 𝑥 , zero-knowledge means the verifier can be convinced that the prover knows 𝑥 without learning anything about 𝑥 itself or how to solve the equation.

Last updated