Welcome to the Builder’s blog. This is where is update on progress in the Nights and Weekends program. This post is going to be quite different from the others. This time I haven’t shipped anything to the actual game. I’ve started working on the zk circuit but there are a lot of bugs to figure out still.
Instead I’ll do more of an educational post and hopefully sharpen my knowledge as I write. My idea is to write a series of blogs on zero knowledge. Starting from the very basics going into some pretty deep waters. What do you think?
Philosophy on learning
My idea of learning is very much based on the ideas of Richard Feynman. His thesis was that if you can’t explain it clearly to someone, you don’t really understand it yourself. That being said - not everybody is expected to understand everything I write. But with sufficient prerequisites it shouldn’t be too hard.
Also, rewriting and looking at the same thing from a different perspective enhances learning. That’s why I’m going to use examples from existing resources - and be clear when referencing them - but try to write them differently or rephrase. Hopefully this series will be useful for you!
zk-Snark level 0
Not even a remote reference to anything mathematical. Imagine we’re playing a game - where’s Waldo. You might be familiar with the books from your childhood. Super easy, on every picture - like the one below - you should be able to find a guy named Waldo.
Now whoever finds Waldo first wins. Now a tricky question: how can I show to you that I know where Waldo is without ruining the game for you? After all, if one wants to continue playing the game after the other one has won, we can’t simply give away the answer.
This is our first zero knowledge protocol - a method for proving that you know something without revealing that something. In this case the location of Waldo. It goes like this:
Player A - who claims to know where Waldo is - goes in a separate room with the picture.
Player A places the picture on an extremely large table. The bigger the better. And places an even bigger blanket on the table.
Now Player A uses knife to carve out a precise hole exactly where Waldo is without showing any of the background.
Player B is called in and can verify that Player A indeed knows where Waldo is. And importantly, looking at this proof helps in no way Player B to find Waldo.
Now you should already have an intuition on what zero knowledge is. Proving that you know something without leaking anything.
That’s it, level 0 was pretty simple but hopefully you got on to the core idea of zero knowledge. Here’s another good and very understandable way of explaining zero knowledge. The protocol they describe in the video is a bit different in nature, but the general idea is the same.
Thank you for reading 🙏🏻 Let’s build! (and learn!)