Zero Knowledge Proofs
What are they?
A method where you can convince someone you know "something" without revealing what that thing is
eg. Location of some treasure, a Sudoku Solution, Where is Waldo
Knowledge Proof
Mathematical Proof
If \(n^2\) is even, then \(n\) is even
An argument showing that the stated assumptions logically guarantee the conclusion.
The treasure is buried at 43.44588, -80.50090
A process in which you prove to another party that you know "something"
vs.
How could this even be possible?
❓
✅
🤖
- Not modified
- Not tampered with
- No information revealed
Alibaba's Cave
Make sense?
Why talk about them?
"Spooky Moon Math"
"Shouldn't be possible"
Two things we thought were true about ZKP
1. There is limited "types" of statements/problems you can construct a ZKP for. Not all information can be conveyed via a ZKP
2. The way you construct a ZKP for a type of information is unique and hard to discover.
Turns out both are false!
You can encode any information in a ZKP and there's a known process to do it!
Statement → Boolean Logic → CNF
Boolean Encoding ← 3SAT ← 3CNF
3 Coloring Problem → 3Color ZKP → Polynomial Encoding
QAP ← R1CS ← Arithmetic Circuit
zk-SNARK
3 Coloring Problems
❌
✅
At any point if I reveal two nodes of the same color I know you are full of shit
So how can we make a statement into a 3 color problem?
If it's raining and it's not freezing, plants will grow
I know this is super simple, but the complexity scales up pretty quick
Define our "literals" (things that are either true or false)
"raining" AND NOT "freezing" → "growth"
FRG + FRG +FRG +FRG +FRG
True
False
Neutral
A
B
A or B
True
False
Neutral
A
B
A or B
True
False
Neutral
A
B
A or B
True
False
Neutral
A
B
A or B
True
False
Neutral
A
B
A or B
True
False
Neutral
A
B
A or B
Put it all together
- Convert your info into boolean logic
- Re-arrange the logic in 3CNF form
- Change it into a 3 color map
- Execute your ZKP
Whew!
Zero Knowledge Proofs
By Scott Tolksdorf
Zero Knowledge Proofs
- 56