Zero Knowledge Proof – ZKP


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!

34 thoughts on “Zero Knowledge Proof – ZKP”

  1. I still don't get it 😀 How does the ball example transfer to atomic weapons? How does the non-interactive proof work?

  2. In colorblind balls example, what if I always lie to friend and always say that ball is green for example? He may switch hands however he wants but he will reach conclusion that both balls are same.

  3. At 2:45 if the balls would be the same color… This i do not understand. How does probability of 1/2 changes to 1/4 o.0

  4. I really liked the example using color blindness, it was a neat solution. An alternative to repeating the shuffle and question process to get higher probability of correctness would be to cut a piece out of one ball, then cut up the other ball into many pieces, then mix the pieces in such a way that the person doing the mixing knew where the one piece was, while the person asserting that the balls are a different color does not. This is more destructive, and more complex, but possibly faster if you needed high probabilities of correctness quickly.

    As many other comments have said, I’d be interested in further videos on this topic.

  5. Awesome, but can you please explain about non interactive zero knowledge proof in another video?
    Thanks~

  6. Not everything is correct on this video… Ergo content quality is quite bad… It's a shame because graphics and exposition is quite well designed.

  7. I agree with the other commenters, a part 2 would be appreciated. I'd also like to see something on DAOs. Loving your content, keep it up.

  8. So cool to see that you are a metalhead also, Hail bro!, what genres and bands? you seem as polite as most of my thrash and death metal friends, as heavier the genre the nicer the people haha, I could be wrong…

  9. Most people don't realize that even if you delete your Facebook account, Facebook will still have ALL of your data. This is because, when you delete your account, the Fb database will simply mark it as "Inactive".
    In other words, there is likely a "users" table, in the Fb database, which contains a boolean (True/False) or binary (0/1) column, titled "active"(or something similar). When you create a Facebook account, this column will either be set as "True" (boolean) or "1" (binary). When you delete your account, the boolean/binary value will simply be flipped (to either "False" or "0"). This merely tells the Facebook program not to display the user's information any longer, since the account is no longer active.
    However, all of your information (Profile, Media, etc) is still stored in the database, which Facebook can still utilize and sell, as it deems fit.

  10. It is a huge advantage of the currency if it has this feature. Some users focus on basic things like consensus or algorithm, but they forget that other coin features are extremely vital and should be taken under consideration when you choose a coin to invest in. I have invested in two currencies (PIVX and PSC) that use Zerocoin Protocol which improves the method of enabling private transactions. The underlying technology utilizes Zero-Knowledge Proof function. PIVX is known by everyone, but the PrimeStone Coin (PSC) is a quite new currency "well-equipped" with additional functions. Both coins are worth considering.

Leave a Reply

Your email address will not be published. Required fields are marked *