74 days ago
The Ultimate Guide to Understanding Zero Knowledge Proofs for Beginners
Beyond the Basics: From Zero to ZK Pro
Imagine this: you’re out with your friends at a bar and you’ve just ordered your favourite drink. When the bartender asks for your ID, you bring it out and then hesitate- realising that handing it over would also reveal key personal information.
Zero Knowledge Proof (ZKP) offers a solution wherein one party (the prover) can prove to another party (the verifier) that a statement is true without revealing any additional information beyond the validity of the statement. So to revisit the earlier scenario, when the bartender asks for your ID, you can prove that you’re of legal age without revealing your exact age or birthdate.
To meet the requirements, ZK should fulfill the following conditions:
Completeness: When the prover and verifier act truthfully and the input is legitimate, the ZK protocol should invariably produce a "true" outcome.
Soundness: If the input is not legitimate, a deceitful prover should be unable to deceive the ZK protocol into generating a "true" outcome.
Zero Knowledge: The verifier gains no knowledge about a statement except for its truthfulness.
Proving Systems in ZKP
In an interactive ZK proof, the prover and verifier engage in a dialogue to assess the prover's knowledge while avoiding the disclosure of any supplementary information about the secret.
1. Interactive ZK proofs Example
In this scenario, the prover possesses two balls - one purple and one blue - that appear identical to the colour-blind verifier. The prover's objective is to prove that the balls are different colours while keeping their identity concealed. To accomplish this, the prover instructs the verifier to take the balls behind their back, randomly determine whether to swap them before the reveal, and repeat this process several times. By examining the colours, the prover can accurately discern whether the verifier switched the balls or not.
If both balls had the same colour, the probability of the prover guessing correctly would not exceed 50%. However, after performing the exercise multiple times, the verifier eventually becomes convinced that the balls are indeed different colours.
Conclusion: the above proof is Interactive ZK because the friend never learns which ball is which,and requires back-and-forth communication.
But Interactive ZKPs have some limitations: high computing power usage, slowness for complex statements, and require multiple rounds of communication.
To solve this problem, non-interactive ZKPs provide a solution.
2. Non-interactive ZKPs
Non-interactive proofs require only one round of communication between the prover and verifier.
The prover creates a zero knowledge proof using a special algorithm and then sends it to the verifier who checks if it's valid by using another algorithm.
This method is more efficient as it reduces communication between the prover and verifier.
How can we use ZKPs in the real world?
Identity theft, fraud, and cybercrime are major concerns for individuals, businesses, and organizations alike. Traditional identity management systems require individuals to reveal sensitive personal information, which can result in data breaches and financial losses.
Zero-knowledge proofs (ZKP) offer a solution to this problem by allowing individuals to prove their identity without disclosing sensitive personal information. Instead of divulging personal details, individuals can provide cryptographic evidence of their identity, which verifies that they are who they claim to be.
Project working on zero-knowledge based decentralized identity solution:
Polygon ID: Polygon ID, with the help of zero-knowledge proofs, lets users prove their identity without exposing their private information.
The problem with many payment systems (including credit cards and public blockchains) is that transactions are often visible to multiple parties, thus compromising users' privacy. While financial surveillance can help identify illegal activity, it also undermines the privacy of ordinary citizens.
ZKPs can be used in blockchain and cryptocurrency transactions to prove that a transaction is valid without revealing any information about the addresses or values involved.
ZCash is a cryptocurrency that offers complete transaction privacy.
ZKP technology can help achieve scalability on blockchain networks by enabling verifiable computation. By offloading the execution of transactions to a separate chain, off-chain scaling solutions can improve throughput on the base layer without requiring a redesign of the core protocol. However, to ensure the validity of off-chain transactions, the chain needs to validate them without re-executing them. This is where zero-knowledge proofs come in.
Zero-Knowledge Proofs for Decentralized Oracle Networks
Decentralized oracle networks provide a mechanism for smart contracts to access data and perform computations that exist beyond the blockchain network. This is a valuable feature since it enables smart contracts to leverage information not directly available on the blockchain, such as weather conditions or stock prices.
However, incorporating off-chain data into smart contracts exposes a potential vulnerability because the data source may be untrustworthy. If a malicious data source supplies false or manipulated information, it can result in unfavorable outcomes for the smart contract.
To overcome this challenge, zero-knowledge proofs can be utilized to ensure the correctness of off-chain data while preserving its confidentiality.
This involves having a trusted entity produce a proof that validates the accuracy of the off-chain data. The smart contract can then verify the proof without disclosing the actual data, thus mitigating the risk of data tampering or manipulation.