ZK-WALDO: A Simple Zero Knowledge Proof

Introduction to ZK Proofs

A zero-knowledge proof or protocol allows a "prover" to assure a "verifier" that they have knowledge of a secret or statement without revealing the secret itself.

Here's a few important ways ZK proofs are used on Ethereum:

  • Prove a calculation was performed correctly, without revealing anything about the calculation

  • Prove the validity of a transaction without revealing any details of the transaction

  • Allow parties to interact without revealing any details of the interaction

  • Increase Eth1 mainnet transaction capacity to 3000+ TPS

Common ZK Proofs used in Ethereum:

  • ZK-Rollup (Plasma) || Places L2 blocks on top of L1, creating a side chain

  • ZK-STARK || Zero-Knowledge Succinct Transparent Argument of Knowledge

  • ZK-SNARK || Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge

  • Optimistic Rollup || Enables smart contracts, runs on the EVM compatible OVM

"A Rollup-centric Ethereum Roadmap" by Vitalik Buterin demonstrates how ZK rollups will be an integral piece of the Ethereum scaling roadmap.

ZK-WALDO: A Simple Zero Knowledge Proof

"Where's Waldo" provides a great opportunity to demonstrate the usefulness of ZK proofs. In this case, we'll act as the prover to assure the verifier that we have located Waldo, without revealing Waldo's location.

We have the following 2 requirements in order to satisfy our ZK-WALDO Proof:

  1. Prove we know where Waldo is located

  2. Reveal nothing about Waldo's location during verification

Obviously we can't use the standard method to point at Waldo, so let's create a ZK-proof that can help.

ZK-WALDO Proof

We can create a proving scenario using a large (4x) black paper with a Waldo sized cutout in the middle:

Here's the steps to complete the proof:

  1. Create a Waldo shaped cutout in large black paper (see above)

  2. Verifier exits the room, leaving only the Waldo page and black cutout paper

  3. Prover places the cutout paper exactly over Waldo

  4. Verifier comes back into the room

Verifier sees the public proof:

"Secrete Knowledge" that only prover knows:

If the verifier isn't convinced by a single demonstration, we can repeat the experiment until they are convinced that we know where Waldo is located. That's ZK proofs in a nutshell.

The ZK-WALDO demonstration provides a basic foundation, but ZK proofs are incredibly complex and the entire field is still under active research. Feel free to learn more with the resources below.

Zero Knowledge Proofs - Computerphile

Zero Knowledge Podcast: Vitalik Buterin & Just Drake on ZK proofs

Podcast link: https://www.zeroknowledge.fm/120

ABOUT THIS EPISODE

In this episode, we catch up with Justin Drake and Vitalik Buterin from the Ethereum Foundation to chat about how zero knowledge proof systems are being used throughout the Eth1x and Eth2.0 stacks. We look at their applications for privacy and scalability throughout layer 1, layer 1.5 and layer 2, as well as explore some other emerging applications.

Last updated