Heard people talking about zero-knowledge proof but have no idea what it is? In this blog we will simply define and explain it.
A Simple Definition Of Zero Knowledge Proof
Zero-knowledge proof is a method someone can employ to prove they have a certain piece of information, without having to give up what that information is.This is particularly important in the realm of security and passwords and the transaction of cryptocurrency on the blockchain.
Explaining Zero-Knowledge Proof
Zero-Knowledge Protocol, also known as Zero Knowledge Password Proof (ZKP) is a method of authentication with a greater level of security.That is achieved because no passwords are exchanged, and that means they cannot be stolen.ZKP allows one person, the “prover”, to prove they have some information (such as a password) to another person, the “verifier”, without revealing that information.There is no knowledge or information shared between the parties, hence “zero-knowledge proof” is attained. How can that happen? Let’s break it right down to illustrate how it works.
A Basic Example
Let’s say Michael is colourblind and he has two snooker balls, a red and a green one. Jane wants to prove to Michael that the balls are indeed different colors, without revealing which is which. In this instance, Jane is the “prover” and Michael is the “verifier”. Michael holds the two balls behind his back, selects one and shows it to Jane. She takes note he has shown her the red ball. Michael then puts the ball behind his back and has the option to switch balls (to the green ball) or show Jane the same red ball again. Michael decides to show Jane the same red ball again and Jane acknowledges that no switch has been made. Michael now knows that Jane has correctly identified no switch was made but he doesn’t know whether he has shown her the red or green ball. He also wonders whether Jane might actually also be colourblind and her answer was the result of a lucky guess with a 50% chance of being right. So he repeats the process, sometimes switching the balls and sometimes not. Each time, Jane correctly identifies whether or not a switch has been made. It is highly possible to correctly guess this once. But by the time this process has been repeated just 25 times, the odds of 25 correct guesses are 1 in 33,554,432. At this time, Michael becomes convinced the balls are different colors and that Jane has knowledge (like a password), even though he does not know what that knowledge is (what that password is). The process of arriving at this point is known as “completeness”.
Completeness And Soundness
There are three requirements that must be fulfilled to achieve zero-knowledge proof.
Completeness – if the prover is telling the truth, she will eventually convince the verifier, at least to a high degree of probability. After 25 tests, Jane convinces Michael she is telling the truth.
Soundness – this is like using reverse logic to understand the mechanics of the test. The prover can only convince the verifier if she is telling the truth. It follows that if Jane is lying, her luck will run out and she will eventually fail.
Zero-knowledge – the verifier learns no information from the prover.
Real World Applications
Many blockchain platforms are already using zero-knowledge proof to increase security, trust and privacy with the transaction of cryptocurrency. Zcash is one example which uses a proof known as a zk-SNARK (zero-knowledge Succinct Non-Interactive Argument of Knowledge). Zero-knowledge proof achieves what passwords cannot. Passwords are keys to information and one of the most commonly stolen items online. Even the process of hashing passwords, encrypted versions of the original or “cleartext” passwords, has its limitations. A user attempting to gain access will input their password to a server which converts that password to a hash and compares it to the hashed value it has stored. But this process still gives up the cleartext version of the password to the server and relies on its integrity and infallibility to prevent any security breaches. This becomes an even greater concern when attempting to gain access to servers from foreign or remote devices.
The History Of Zero-Knowledge Proof
1985 – The concept of zero-knowledge proof was first discussed at the Massachusetts Institute of Technology in a paper titled “The Knowledge Complexity of Interactive Proof Systems” written by computer scientists Shafi Goldwasser and Silvio Micali and cryptologist Charles Rackoff. 2012 – The term zk-SNARKs (zero-knowledge Succinct Non-Interactive Argument of Knowledge) is first coined by Alessandro Chiesa and a team of researchers. 2016 – Zcash becomes the leading privacy-focused cryptocurrency to employ zk-SNARKs. 2018 – zk-STARKs (zero knowledge Scalable Transparent Arguments of Knowledge) introduced for Ethereum 2.0, improving scalability and privacy.
Want To Know More About Zero-Knowledge Proof?
We’ve made it super easy to get up to speed! Just sign up for our Web3 Made Easy Webinars, and get ready for the new world or Web3.