Discussions
What is zero knowledge proof(ZKP)?
A zero-knowledge proof (ZKP) is a powerful cryptographic method that lets you prove to someone that a statement is true without revealing any information except that the statement is true. It's similar to presenting evidence for something while not revealing the secret itself.
How Zero-Knowledge Proofs Work
A ZKP is made up of two parties: the prover, who is ready to prove a fact, and the verifier, who is ready to check it. The operation can either be interactive, where there is a conversation back and forth, or non-interactive, where one solitary cryptographic proof is created and potentially checked by anyone.
The underlying qualities making a ZKP work are:
Completeness: The prover is able to always convince the verifier whenever the statement holds.
Soundness: If the statement is false, a dishonest prover cannot deceive the verifier.
Zero-Knowledge: The verifier learns nothing other than that the statement holds true.
There is also one standard analogy in terms of the "Ali Baba's Cave" story. Assume that you have a circular cave with two doors and one secret door in the middle. You want to prove that you are aware of the password to open the door without revealing it. You go into the cave through one of its doors. Your verifier, your friend, goes in and tells you which door they want you to exit from. If you have the password, you may exit from the specified door. Doing this test a few times satisfies your friend that you do know the password, as it would be practically impossible to get it right each time.
Real-World Applications
The ability to prove knowledge without revealing data has significant usage in privacy and security across a variety of fields.
Digital Identity: Instead of showing a driver's license as proof of your age, which reveals your full name, location, and birthday, a ZKP can prove that you are over 21 years of age without revealing any additional sensitive information. That gives you more control over your own private information.
Secure Authentication: You can prove you know a password without ever sending the password to a server using ZKPs. This keeps your password from being intercepted or stolen by a data breach.
Blockchain and Cryptocurrency: Public blockchains are transparent in nature. To balance out privacy concerns, there are cryptocurrencies like Zcash which use ZKPs to enable private transactions wherein the sender, recipient, and amount are not disclosed. ZKPs also form the basis of scaling solutions like zk-rollups that bundle hundreds of transactions off-chain into one cryptographic proof, accelerating networks and saving resources.
