It seems like ZK-rollups have taken over tech Twitter. Everyone is talking about it. Everyone is deploying it. But wtf is Zero-Knowledge
?
Bigger than blockchain
A while ago I asked a good friend of mine, Tony, how it's possible that decentralised identity solutions and scaling solutions both use zero-knowledge technology.
While I was asking this question I realised I didn't even know what Zero Knowledge Technology
was...
That night in Lisbon I learned my first lesson about Zero Knowledge Principles
, which is the basis for understanding every single piece of technology that makes use of Zero Knowledge Proofs
. I also learned that it's bigger than blockchain.
Disclaimer
I'm going to dive into Zero-Knowledge
more, but in the context of blockchain. Even though I just told you it's bigger than blockchain. I guess a better way to put it, is that it can be applied outside of blockchain.
The Goal of Zero Knowledge
"To prove something without providing the details of what it is you're proving"
So an example would be, what if I can prove I'm over 18 without showing you my ID card? Immediately you might think how? Let's say you have a badge that you would only be provided with if you were over 18. Then you go to a bar, show the badge and you enter. The bar hasn't seen your name, date of birth, or anything really.
The goal of Zero Knowledge has been achieved here. You were able to prove you were over 18 without sharing your date of birth.
The 3 Principles
Before we talk about how you got that badge or how this would even work with technology, I want to talk about the 3 principles every tech powered by Zero-knowledge
needs to comply with. Completeness, Soundness, Zero-knowledge.
Zero-knowledge
Let's start with the easy one. The underlying data or information shouldn't be shared. In the example of the bar, I didn't share my date of birth, but a 'proof' (ie the badge) that I'm over 18.
Soundness
Yes, I'm going in reverse. Soundness refers to the proving system responsible for generating the proof, in our example the badge. It ensures that a dishonest or malicious prover cannot produce a convincing proof for a false statement. In other words a badge is generated for someone who is below 18. This would mean that the proof/badge isn't actually valid, while it would pass the verification process. So as simple as it may sound, it is of essence that the proof itself is sound
as well as the proving system that generates the proof.
Completeness
When a 'proof' is checked, the only outcome can be correct or incorrect. So if I have a badge that says I'm over 18, the bar has "all" the information to check if I'm over 18. The outcome of that exercise is either I'm verified as over 18 or not.
Closing out
Congratulations. You are now a zero-knowledge EXPERT. Joke...
For real though, understanding these three principles and the example above was fundamental for me to understand zero-knowledge applied to technology.
I'm writing these articles in bit sizes. So sorry if I'm leaving you hanging here. I'm going to continue writing about how this is applied to privacy and scaling solutions in my next episodes.
Further reading/Resources used
Never use a '/' in a heading. Whatever.
Below you can find a list of articles & video's I used to learn about Zero-Knowledge
proofs. Definitely recommend reading and watching them. I'm not going to do the whole Harvard referencing, just click the link.
Articles
Ethereum article on Zero-knowledge proofs
Zero Knowledge Proof And Its Importance To Web3
Zero-Knowledge Proof – How It Works
Video's
Computer Scientist Explains One Concept in 5 Levels of Difficulty | WIRED