In our evermore globally digitizing economy, the less stray information floating around the better for our privacy and security.
Keeping your personal information to yourself and unexposed to any services on the internet the safer you are.
Altough cutting down on your personal data sharing is extremely difficult since there is still quite some information that online services often need to know.
Luckily a constantly growing and innovating cryptographic technology known as “zero-knowledge proofs” (ZKPs) is enabling internet users to verify information without actually exposing that very information.
Zero knowledge proof was first invented in 1985 by 1985 by Shafi Goldwasser, Silvio Micali, and Charles Rackoff in their paper "The Knowledge Complexity of Interactive Proof-Systems".
Zero knowledge proof is only now garnering more technological development and eyes from investors. The use cases for zero knowledge proofs are increasing by the day.
Zero-knowledge proofs use numerous complex cryptographic equations to allow a user to prove the information is true without ever exposing the actual proven information.
Let’s get into the zero-knowledge proof method in depth.
Zero-knowledge proofs are defined as proofs that convey no additional knowledge other than the correctness of the proposition in need of proving.
Zero-knowledge proof is a cryptography method in which one party called the prover can prove to another party called the verifier that they know a set of information without ever showing the actual information to the verifier.
The reason to create zk proof is in order to maintain the privacy of one's content even though you do want to act with the content.
Even though you possess the knowledge it would often be undesirable for you to prove you possess the knowledge by revealing it. The challenge for zero-knowledge proof is to prove you have possession of information without having to reveal the information itself.
The primary form of zero knowledge proof is interactive zero knowledge proof. This interactive input is in the form of challenges a prover receives from a verifier.
The prover has to successfully pass these cryptographic challenges in order to prove that they possess said knowledge. Examples will be provided later in the article.
Thus, the process of proving in interactive zero knowledge proofs is not a fixed and static one time interaction, but rather a randomized and interactive process in which the verifier and prover interact.
Essentially you may think of this interaction as consisting of tricky questions asked by the verifier, to which the prover has to reply accurately.
Another form of zero-knowledge proofs are non-interactive zero-knowledge proofs. In this case the proof relies completely on computational cryptographic hash functions.
The process is called Zero-knowledge proof (ZKP) because the prover has to reveal none of the information they know in order for the verifier to confirm the prover’s knowledge of said information.
There are many variations of zero-knowledge proofs. These different types include zk-SNARKS, zk-STARKS, zk-SNARGS, Bulletproofs, and zk Rollups.
An in-depth article on different Zero-knowledge proofs can be found here.
An easy example of ZKP use-case is the Dutch bank ING’s use of ZKPs. ING uses the zero knowledge range proof (ZKRP) to allow their clients to prove the amount of money in their account without actually showing the amount.
ZKRP enables numerical data to be validated within a number range. ING’s new Zero knowledge range proof solution allows users to prove they have a secret number that lies in a known range.
For example, a mortgage applicant could prove that their salary sits within a certain range, without revealing their exact salary.
The most common example used to intuitively demonstrate interactive proof is the Alibaba cave example (Fig. 1). The Alibaba example introduces a cave with a single entrance but two pathways (A and B) that connect at a common door locked by a password.
Emma wants to prove to David she knows the password to the door from path A to path B but doesn’t want to actually tell David the password.
As a solution David remains outside of the cave as Emma walks into the cave and choses one of the two paths without David knowing which path. David calls out to Emma which path to take back to him.
If Emma originally chose to take path into the cave and then David asks her to take path B back, the only way to Emma to do so was to know the password to the door. This process can be repeated multiple times to prove Emma had not just chosen the right path by chance.
After this process is completed numerous times David has a high degree of confidence that Emma knows the door’s password. This confidence was achieved without ever revealing the passcode to David.
While the cave example is certainly a simplified example, ZKPs deploy this same method using cryptography to prove knowledge of data without revealing the data.
At a high level, this form of interactive proof involves a verifier asking the prover to perform a series of actions that can only be performed accurately if the prover knows the underlying information.
If the prover is only guessing as to the result of these actions, then they will eventually be proven wrong by the verifier’s test with a high degree of probability.
The color-blind friend example of interactive proof introduces Emma (the prover), who has full-color vision and David (the verifier) who is color blind.
Imagine Emma has two balls: one red and one blue.
To David, the set of the balls look indistinguishable. Yet, Emma wants to prove to David that these balls are different colors, there is one way to go about it.
David will have to hold both the balls and begin mixing them up (remembering which ball was in which hand) without Emma looking.
When David reveals the balls, Emma will be able to correctly distinguish the balls due to the colors.
The fallacy in only doing this process once is that David may believe Emma showcased her knowledge of the right ball only through guessing with a 50/50 probability.
Just like with the Alibaba cave example David and Emma will have to repeat this interactive Zero-Knowledge proof process until probability is eliminated.
This process is classified as a Zero-knowledge process due to David (the verifier) never having to know what color either of the balls are, the verifier only knows that Emma (the prover) in fact does know what colors the balls are.
The primary benefits of Zero-knowledge proofs are privacy and security.
With Zero-knowledge proof it becomes possible for users to create an identity authentication system without the risk of information being stolen.
Not only can information thievery be avoided, but privacy is also overall increased by not having to reveal any information to any third party at any point.
Zero-Knowledge Proof has around two thousand computations per interaction, all the interactions require a certain amount of time to process, often making the process a rather lengthy one.
Another potential fallacy in ZKPs is that if someone was able to access the code that was used to create the parameters of the proof protocol, they could tamper with the proofs and create false proofs that look valid to verifiers.
Zero-knowledge proofs are most used in the development of cryptocurrency projects. Zcash (ZEC) is one of the most popular Zero-Knowledge protocols which uses zero knowledge proofs to create privacy during blockchain transactions.
Another notable cryptocurrency project that offers its own zero knowledge blockchain solution is the Mina Protocol (MINA). Mina has developed their own blockchain which stores its blocks through a Zero-knowledge protocol, maintaining its blockchain at a 22kb storage size, making it the lightest blockchain in the cryptocurrency space.
The Dutch bank ING bank mentioned earlier is one of the first institutions to widely adopt blockchain and Zero-Knowledge proof.
ING has their own blockchain team and has recently also developed another Zero-Knowledge proof solution called zero-knowledge set membership (ZKSM).
For example, the ZKSM solution allows banks to validate that a client lives in a country that belongs to the European Union, without revealing the exact country.
An in-depth article on all current ZKP enabled crypto projects can be found here.
Eventually, the final vision for Zero-Knowledge Proofs would be the ability to use private information preserving within transparent systems such as public blockchain networks like Ethereum while not actually publicly revealing your sensitive data/personal information at all.
This integrating process has already begun in the case of Mina. Mina has immense aspirations and has begun to build an Ethereum x Mina bridge with the _nil foundation which should be ready to launch soon.
This process would increase transparency, security, and privacy all simultaneously, which can certainly seem paradoxical.
While blockchains are designed to be thoroughly transparent, ZKP technology should be able to allow blockchain users to use their private information on the blockchain without actually revealing their sensitive information on the blockchain.
On a larger scale, it can be used in many more places including global Identity, password, and membership authentication.
You can read more in-depth about Zero-Knowledge proof use cases here.
Essentially, zero-knowledge proof is a cryptography method in which one party to another party called that they know a set of information without ever revealing the information, maintaining privacy.
This method of privacy insurance is garnering much attention in the cryptocurrency and blockchain space.
It is regarded as one of the primary technological developments that institutions may have to adopt to abide by user’s privacy concerns.