A 10 Year Old Kid Explanation of Zero Knowledge Proof
In 2008, September, there was the implosion. Banks failed, the financial system collapsed
Many people lost all their savings, and their lives were badly affected even though it was not their fault
As a result, people do not trust the banks and institutions anymore
A few months later, 2009 January, digital money called Bitcoin was created.
After people checked Bitcoin, since it was decentralized and was monitored by everyone that used it, meant that it didn't need a federal reserve. Everybody saw Bitcoin as a way to take back their power from the government after the financial crisis.
Later, everybody then thought that it was going to take down all the power structures in the world. But apparently, it didn't happen it didn't take down the world, but Bitcoin started a movement and remained for almost one decade.
But if you talk to people that are inside of Bitcoin, they will tell you about the problem that has dogged Bitcoin is privacy.
The issue is that every single transaction you have made gets tracked anytime, anywhere.
It gets stored in something called the Public Ledger.
Now the problem with the Public Ledger is that anyone can check the Public Ledger.
People did think that it was private at the beginning because there weren't any names there.
But still, your spending habits using Bitcoin is there for anybody to see, this way they can find out where you live, your bank, what you like, and maybe where you like to go to.
People are trying to fix this, but then now some companies deanonymize people for legal reasons to prevent people doing transactions with criminals or any illegal people without knowing about it.
With this, there is this puzzle. Can you have both worlds, put into one? The decentralized system together with privacy?
Just like paper money, where you can give a dollar bill to someone, he/she gives it to another person; you can't trace it. Unless you put a tracer on it, but otherwise it can't be traced, not like Bitcoin.
From this, there were new cryptocurrency projects called Zcash and Zcoin
They are both decentralized and private, and they both use a protocol called zero-knowledge proof.
Here is a basic example,
Imagine there is a house, with two rooms, named A and B, both rooms have separate exit but they connected by a door that requires a password.
So Jake has the password but doesn't want to let Alice know it at the same time let her know that he knows the password.
So Jake enters the house while Alice waits.
Let's say he goes into room A.
After he enters, Alice staying outside the house tells him to exit through room A.
In this case, he won't have to use the password.
But if Alice tells him to exit using room B, then Jake would have to open the door with the password
So there is a 50% chance of Jake using his password
This is not good enough, so they will have to repeat this many times.
Like maybe a hundred times
Should Jake be able to get out using the right room every time, then Alice can reasonably confirm that he knows the password.
This way he won't have to reveal the password but also be able to prove that he knows the password.
Jake is known as the prover - the guy who has something to prove
And Alice is known as the verifier
This is the base of the Zero Knowledge Proof protocol.
There are also other applications for Zero Knowledge Proof method
It can also apply to anonymous voting or bidding
It is a very effective tool to preserve privacy, which is a fundamental human right.
And it can change the world in many positive ways.
Good write up. Keep it up.
Interesting take.
How is this different than the zero knowledge proof kind of thing that comes with public+private key cryptography? With DSA schemes (such as the ECDSA which is used in Bitcoin) you put a signature with your private key on things, without actually revealing the private key. So you prove you have the key, without revealing it.
Also, something I don't understand about your metaphore: why is there a 50% chance (instead of 100%) that Jake has to use the password if Alice tells him to exit through room B? Why can't she just verify if Jake does indeed come out of room B? That would suffice, she doesn't actually have to see him entering the password.
hi, the way zero knowledge proof is applied in ZCoin is that it sits on top of bitcoin core to provide anonymity.
So the bitcoin public and private key system is the same.
Only when a coin enters the zero knowledge proof module, the bitcoin is transformed into zerocoin.
the public key of Jake is given to Alice to generate the encrypted message - this is to generate (or mint) the zerocoin and destroy the bitcoin
And Jake keeps the private key to decrypt the message - this is to destroy (spend) the zerocoin in order to generate a fresh bitcoin with no transaction history
Your suggestion is very good.
I think the reason for the house and 2 room model is because someone else always have a chance to guess private key without knowing it. This is very small probability and not like the 50% shown in the example. This is why there is a chance of failure and the process must be repeated many times to be sure.