Your personal data like your contact information, your tastes or even your behavior patterns
are very valuable.
A lot of companies try to collect as much information about you as they can, so they'll
be able to sell more ads, give you better recommendations or keep you longer on their
platforms.
With so many companies and services collecting our data, it almost seems impossible to keep
it private.
Now of course you could say: don’t use services that collect personal data.
If you don’t agree with the way Facebook uses your data for example, you could just
decide to not sign up for it or even delete your account.
But it’s not that simple, we don’t always have a choice.
Try for instance to get a loan from a bank without revealing your financial history.
We do have the ultimate control over our personal data but in reality we’re often forced to
reveal more than we actually want.
So that got me looking into alternative ways of sharing data.
Is there a way to provide companies with the data they need, without actually revealing
the data itself?
Kind of like proving that something is true without revealing the thing we’re proving...
Well such a technique does exist and it’s called Zero Knowledge Proof.
Let me demonstrate how it works.
Imagine you have a friend who is colorblind and can’t see the difference between a green
and red ball.
To him, the balls have the same color and you want to prove to him that they are in
fact different.
He doesn’t need to know which is red and which is green, just whether or not they are
different.
So you give the balls to your friend and take note which ball is in which hand.
Then your friend puts the balls behind his back and chooses to either switch them around
or not.
After that, he shows them again to you and now you have to tell him whether or not the
balls have switched hands.
If you aren’t color blind, this is very easy to do because you can see the difference
in color.
You can clearly tell when the red ball was moved from his left to right hand for instance.
In fact we can determine that with an accuracy of 100%, because, again we see the difference
in colors..
But hang on!
Your friend is suspicious, the balls look the same to him and he thinks that you’re
trying to fool him.
After all, you have a 1 in 2 chance of correctly guessing whether he switched the balls.
Those are pretty good odds, so you decide to run the experiment again.
Your friend hides the balls behind his back, randomly chooses to switch them or not and
then presents them again to you.
Again, you can see straight away if he switched them or not.
But if the balls would be the same color, you would have to guess again.
And now your chances of guessing correctly are halved and are now just 1 in 4 or 25%.
Repeat this process 10 times and the chance of you guessing correctly drops drops to just
0,09%.
This probability is small enough to convince your friend that the balls are indeed a different
color, you just can’t be that lucky.
But of course you could keep going.
Each time you repeat the process, the probability that you’re cheating decreases further.
So that’s it!
We have “proven” to our friend that the balls have a different color.
But this proof does not convey the actual colors of the balls to our friend.
Hence the name “zero knowledge”.
Oh and it’s interesting to point out that a “zero knowledge proof” doesn’t give
you an airtight proof.
It’s about minimizing the probability that someone is lying to you.
You can get that probability very small but it can never reach 0.
There are two forms of zero knowledge proof: interactive and non-interactive.
The example of you and your friend with the colored balls is interactive.
Because you, the prover, had to perform a series of actions to convince your friend,
the verifier of a certain fact.
It’s almost like an interrogation!
However there is one drawback to this technique: the proof is limited in transferability.
We convinced our friend that the balls have a different color, but if we want to do the
same with someone else, who’s also color blind we have to repeat the entire process.
The other form is “non-interactive” and allows you to deliver a proof that anyone
can verify by themselves.
No need to juggle balls around!
In fact, you might have heard about zk-SNARKS, which is used by some cryptocurrencies to
protect the privacy of their users.
You see traditional projects like Bitcoin make all transactions public, meaning everyone
can see everyone’s balance and how they spend their coins.
Other projects, like Zcash use a non-interactive, zero-knowledge proof to hide all of this.
That’s where SNARK’s come in, which is short for “succinct non-interactive arguments
of knowledge”.
For blockchains, we have to use a non-interactive proof because transactions have to be verifiable
by every node on the network.
That’s how blockchains reach consensus.
It would be very time consuming to prove our transactions to every node on the network.
That’s a neat application of zero knowledge proofs!
But what else?
Well, here are 2 more examples.
Aside from cryptocurrencies, traditional banks could also make use of this technology.
The Dutch bank ING has built a variation of this concept called “Zero Knowledge Range
Proof”.
The system is designed to prove that a number is within a given range, without revealing
the actual number.
ING’s blockchain team notes that this can be used for instance to verify if your salary
is sufficient to get a loan, without actually revealing how much you make.
Now of course you have to pick a large enough range, otherwise you can accurately guess
the real number and then it’s not a zero knowledge proof anymore.
Techniques like this could allow the financial world to embrace blockchain technology.
Right now that’s very tricky for them because they have to meet a lot of regulatory requirements,
especially concerning privacy.
With that issue being solved, we could see banks adopting blockchain technology more
quickly, which could make their processes faster, more efficient and perhaps even cheaper.
The final example I’m going give is a bit unconventional: nuclear disarmament.
Powerful countries that are in possession of nuclear weapons agree that they’re dangerous
and the number of weapons should be reduced.
However, the problem is verifying that weapons have been destroyed!
But big nations don’t really trust each other.
When one says that they’ll reduce the number of nuclear warheads, how can the other be
sure of it?
Sending a crew of “independent” verifiers to confirm if the weapons have been destroyed
is tricky.
The designs of these warheads are often top-secret to prevent other countries from copying them.
So it’s unlikely that a country will trust a group of people to actual see and verify
these nuclear warheads.
After all, they might leak the sensitive designs to other nations.
In 2016 however a new technique was proposed that uses a zero knowledge proof to say whether
or not two objects are the same, without revealing their geometry or composition.
This technique is a physical application of zero-knowledge protocols allowing nations
to verify their warheads without seeing classified information.
Granted, it’s a bit of a weird use case, but it is a cool one!
These are just a few ways you could put zero knowledge proofs to use.
It’s a cool concept that could greatly enhance our privacy but there are some downsides as
well.
For starters, it can’t produce a 100% airtight proof.
That’s something we discussed earlier in this video.
It can only infinitely reduce the probability that someone is faking a proof.
Secondly, the algorithm is rather intensive, requiring either a large number of interactions
between verifier and prover or, in case of SNARK’s, requiring a lot of computations
that could make it impossible to run on slow or mobile devices.
But that limitation can be overcome.
The Zcash team for instance has been at hard at work to improve their algorithm so it can
also run on lower powered devices such as a smartphone.
And finally, zero knowledge proofs are so good at keeping secrets that we might lose
access to them altogether.
Let’s say only 3 people know a secret recipe.
Thanks to zero knowledge proofs they can prove to each other that they do indeed know the
recipe.
But if all three of them die, the secret it lost forever.
If they have been using SNARK’s, the only thing that remains is the proof that they
knew the secret.
But the secret itself is lost.
Before ending this video I just want to mention that Zero knowledge Proof isn’t a brand
new idea.
Nowadays it’s getting a lot of attention because of how certain blockchain projects
are implementing it, but it was first proposed in a paper from 1985 called “The Knowledge
Complexity of Interactive Proof-Systems”.
Personally I’m really happy that after all these years, it’s finally getting some more
attention.
So that was it for this video.
Time for a conclusion!
Zero knowledge proof could unleash a revolution when it comes to our online privacy.
We can limit on how much information a certain company has on us, while the company has just
enough information to offer you a service or to comply with regulations.
Is it perfect?
No, of course not, it does have certain limitations.
Like the fact that it uses a lot of computational power.
But it’s a lot better then just giving all our data away and let it be collected in huge
databases.
I hope you like this video.
If you did, consider getting subscribed and hitting that like button.
Thank you very much for watching and I see you in the next video!