0️⃣ WHAT ARE ZERO KNOWLEDGE PROOFS? 0️⃣
Since I started falling down the #DeFi and #blockchain rabbit hole I've been intrigued by Zero Knowledge (ZK Proofs).
So let's talk about it 👇
🧵/1
The tech encapsulates all that is #crypto in my opinion. Passing on knowledge (authentication, etc) without passing on THE knowledge.
But how?!
🧵/2
The point of ZKP is to prove that one possesses knowledge without revealing information.
Basically, proof that one HOLDS information without giving that information.
🧵/3
There are two parties involved in a ZKP:
The prover and the verifier.
The process of proving is interactive between the parties and typically consists of challenges where the answers to such convince the verifier that the prover possesses the knowledge.
🧵/4
A zero-knowledge proof of some statement must satisfy three properties:
1. Completeness: if the statement is true, an honest verifier who is following the protocol rules will be convinced of the fact by an honest prover.
🧵/5
2. Soundness: if the statement is false, the probability is incredibly small that a cheating prover will be able to convince an honest verifier that the statement is true.
🧵/6
3. Zero-knowledge: if the statement is true, the verifier doesn't learn anything except that the statement is true. No other information is conveyed.
🧵/7
There's actually a pretty popular paper that attempts to explain the concept to children. Let me summarize that story here...
Imagine a cave shaped like a ring (or a donut if you prefer). The mouth of the cave opens to a fork that goes left and right (but not straight).
🧵/8
There is a partition at the back of the cave that can only be opened with a magic word.
If you don't have the magic word, if you go down one side of the cave, you'll hit a dead end and have to come back.
🧵/9
In the story, a prover claims to know the magic word but doesn't wish to share it.
So a verifier allows the prover to go into the mouth of the cave, then follows them in and yells out which side of the cave he wishes the prover to come out from.
🧵/10
Obviously if this is only done one time, there's a 50% chance the prover went down the same side the verifier calls out and won't need to actually know the magic word and open the partition at all.
🧵/11
However, in the story, the verifier calls out sides of the cave at random and the exercise is repeated 40 times, diminishing the chances that the prover was lucky and already chose the proper side to an immensely small number.
🧵/12
By the end of the 40 iterations, the verifier had no choice but to concede that the prover, in fact, knew the magic words to get through the partition in the cave.
🧵/13
"Cool story bro...wtf does that have to do with crypto?"
Well, now that you understand what ZKP can do, let's talk about HOW it works...
🧵/14
The HOW really depends on the application. ZKP's have been experimented with since the 80's, but they have found particularly effective use cases in blockchain.
One such example is $Zcash and their use of ZK-SNARKs.
🧵/15
Zcash launched using ZK SNARKs (which stands for zero knowledge succinct non-interactive arguments of knowledge).
This bit of technology utilizes complex mathematical computations to determine knowledge from a series of public information.
🧵/16
In fact Zcash's launch was a dramatic display of creating it's SNARK's parameters using secure multi-party computations, which involved six individuals across the globe generating only fractions of public and private keys.
🧵/17
Another, more recent and popular utilization of ZKPs is #Ethereum and #ZKrollups.
ZK rollups (in an incredible oversimplification) create txns outside of the L1, then apply a cryptographic test. Once txns are verified it provides a Proof of Validation to the L1.
🧵/18
Ok, the HOW is a bit technical. But are rollups for faster transactions and private money movement the only things ZKPs are good for?
Not at all. The future implications of the technology are impressive to say the least.
🧵/19
First, ZKP's could potentially offer private authentication.
Imagine KYC without KYC. Authenticating your identity without making your identity known to any living parties.
🧵/20
As real-world assets become tokenized, we can also imagine a future where real estate ownership takes place on-chain. ZKPs could also offer private income verifications.
Getting a loan or a mortgage without having to reveal your income...only prove whether you qualify.
🧵/21
And speaking of loans...currently crypto loans require at minimum equal collateralization (and most of the time over-collateralization).
This is because, since crypto is trustless, there is no such thing as credit.
But ZKPs could change that.
🧵/22
Remember, at it's core, #crypto has aimed at offering anonymous and secure transactions.
Privacy has always been an inherent expectation.
If privacy is important to you, then you can see why ZKPs are a revolutionary concept in #blockchain.
🧵/23