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:
Prove we know where Waldo is located
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:
Create a Waldo shaped cutout in large black paper (see above)
Verifier exits the room, leaving only the Waldo page and black cutout paper
Prover places the cutout paper exactly over Waldo
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