Hunting For zk-SNARKs

post image

In a previous article, I explained what zero knowledge proofs are and discussed the growing importance of zero-knowledge (ZK) technologies. However, an intuitive understanding of how ZK tech works is still lost on many people.

Although there are many aspects of zk to tackle, this article details my study notes from ZK Whiteboard Sessions — Module 1 as well as other materials in order to provide readers (specifically those without a formal maths background) with an understanding of one such innovation: zero-knowledge succinct non-interactive argument of knowledge, regarded as the most powerful cryptographic technology of the last 10 years, though commonly referred to as zk-SNARKs.

Explaining how zk-SNARKs work is notoriously hard, even considered “moon maths”. For in-depth reading of how the SNARKs work, I recommend checking out these links!

However, in my research I wanted to find a description of how SNARKs work so as to give readers lacking formal mathematics background an intuitive understanding that can serve as a basis to contribute to ZK conversations and communities. Unfortunately, when reading the introductory paragraphs of most guides, I found something like this:

post image

Such warnings usually see a large number of otherwise interested readers drop-out, reducing the number of informed individuals working on integrating these innovations. To be clear, these explanations are usually geared towards developers and cool maths nerds, so I’m in no way throwing shade on these materials.

However, in web3, we believe it is imperative to explain our moon maths, decentralisation necessitates never relying on the perceived ‘smartest’ people in the room. As soon as a protocol states “it’s a black box, we’re smart, trust us” is one of the clearest red flags of doomed projects we’ve seen. No, in web3 we hold our innovators and builders to a higher standard. We trust code and maths, not promises…

In this article, I hope to give an overview of how ZK-SNARKs work, drawing on the excellent resources such as Vitalik’s explainer series, Scroll protocol resources, and a16z’s blog.

This is my attempt to break down this tech. This space is both exciting and new. It is important to take a moment to appreciate the pace of change, so please reach out if you can think of ways to improve this article, or just want to chat!

Recap: What are Zero Knowledge Proofs?

I recently released a short article on what zero-knowledge proofs are and why they’re important, you can find that here.

Quick recap, a zero-knowledge proof (ZKP) is a way of proving the validity of a statement without revealing the statement itself. The ‘prover’ is the party trying to prove a claim, while the ‘verifier’ is responsible for validating that claim. The seeds of ZKPs were sown in the 1980s by three MIT researchers (Shafi Goldwasser, Charles Rackoffand Silvio Micali) when they proposed the concept of ‘Knowledge Complexity of Interactive Proof Systems’, which provides the definition of ZKPs widely used today:

“A zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that something is true, without revealing any information apart from the fact that this specific statement is true.”