Zero Knowledge Proofs for Dummies

WM Leong
3 min readNov 23, 2021

Zero knowledge proofs, ZK Proofs or ZKP in cryptographic terms is essentially a method of verification when one party-the prover, can prove to another party — the verifier that a given statement is true without revealing specifics of the data.

ZKP is not new and has been around since the 80s when MIT researchers, Shafi Goldwasser and Silvio Micali published a paper detailing the concept of ZKP. However lately there’s been somewhat of a resurgence of the concept due to the emerging use-case in the cryptocurrency space.

A zero-knowledge proof must satisfy three properties:

  1. Completeness: if the statement is true, the honest verifier (that is, one following the protocol properly) will be convinced of this fact by an honest prover.
  2. Soundness: if the statement is false, no cheating prover can convince the honest verifier that it is true, except with some small probability.
  3. Zero-knowledge: if the statement is true, no verifier learns anything other than the fact that the statement is true. In other words, just knowing the statement (not the secret) is sufficient to imagine a scenario showing that the prover knows the secret.

Why is it important?

In this time of digital age, most of our personal data is not that personal anymore, with large corporations essentially collecting and aggregating our personal data, sometimes even if we didn’t intend to reveal them.

Illustrated example: The Alibaba Cave

Image credit: https://blog.chain.link/what-is-a-zero-knowledge-proof-zkp/

ZKP works by proving knowledge of a specific data without revealing the data itself. In this example, Alice wants to prove to Bob that she knows the passcode to the locked door in the middle of the cave without revealing the passcode to Bob.

The scenario starts by Alice going inside the cave, but in the middle chooses a random path (either path A or B) without Bob knowing which path was chosen by Alice. Bob then calls out to Alice to take one of the two paths back to the entrance. If Alice took path A, and Bob asked Alice to come out from path B, then Alice must have passed through the locked door to emerge from the other side. However from Bob’s perspective, Alice could have initially chosen path B, so she still could have emerged from B without passing through the locked door.

The above scenario would be a 1/2 chance or 50% to get right. So we repeat the scenario multiple times. If each time Alice emerges from the correct path, we can conclude it’s mathematically true that Alice does indeed know the passcode rather than choosing the correct path each time, without revealing to Bob the passcode.

In a computerized environment, a ZKP works similarly through this concept but using cryptography instead to proof a specific knowledge without revealing the underlying data.

Use-cases of ZKP

ZKPs are most useful in applications where privacy and security are essential. A popular use-case for blockchain technology is using ZKP to verify transactions without compromising on the privacy of its users. As we know, many blockchains such as Bitcoin utilize a public ledger where it’s extremely secure and immutable, but at the costs of privacy as all transactions ever made on the blockchain can be publicly accessed and viewed.

There are more ZK technologies in the market today such as zk-SNARKS and zk-STARKS that will likely be a major catalyst in changing the way traditional blockchains work in the future, but that’s probably an article for another day.

Sources and more:

--

--