Zero-knowledge proofs help to ensure that transaction privacy does not come at the expense of trust. Read on to learn what zero-knowledge proofs are, how they work, and why we need them in web3.
What Are Zero-Knowledge Proofs?
Zero-Knowledge Proofs (ZKPs) are protocols that help prove the validity of statements on blockchains without offering information that may compromise privacy. They allow users to verify the validity of a transaction without revealing details of the transaction.
In Zero-Knowledge Proofs, the prover is responsible for proving the claim, and the verifier’s role is to validate it. The protocols reveal on-chain that the hidden information is valid, and the prover knows this with high certainty.
In the hands of malicious actors, personally identifiable information (PII) can present certain risks, such as identity theft, reputational damage, and discrimination. Zero-knowledge proofs ensure your PII remains protected.
Consider a scenario where you must prove your identity to complete a transaction. You will need to provide evidence such as your driver’s license and other PII.
However, you will have no control over the safety of that information once it’s in the hands of a third party. Hackers could target the third party’s central database, or the third party could share your information with others for targeted advertising purposes and other reasons.
With zero-knowledge proofs, you can avoid sharing this information and stick to proving its validity.
How Do Zero-Knowledge Proofs Work?
Zero-knowledge proofs utilize algorithms that process input data and confirm its truthfulness. Projects like StarkNet on Ethereum, Polygon Zero, Zk Sync, and more are currently using the protocols in their functionality.
For zero-knowledge proofs to work efficiently, there are three criteria they need to satisfy:
- Zero-knowledge: The verifier cannot access the original input. The only information available to them is the statement’s validity.
- Soundness: The protocol cannot validate invalid input as being true. The protocol must have safeguards to ensure the prover has no room to manipulate the verifier into thinking their statement is true.
- Completeness: Provided the input is valid, the protocol always validates the statement. The protocol accepts the proof if both parties act honestly and the underlying information is true.
A basic zero-knowledge proof comprises three elements.
- First, we have the witness, which is the secret information. The prover provides questions that only a party privy to the information would know.
- The second element is the challenge, where the verifier selects a question from the set for the prover to answer.
- The third and final element is the response, where the prover answers the question. With the response, the verifier confirms that the prover can access the witness. The verifier then proceeds to select more questions from the set. The multiple questions limit the possibility of the prover faking knowledge of the information.
Types of Zero-Knowledge Proofs
There are two types of zero-knowledge proofs: interactive and non-interactive.
- Interactive zero-knowledge proofs allow back-and-forth communication between two parties. The communication allows statement validity verification to the verifier’s satisfaction.
- Non-interactive zero-knowledge proofs: Here, two parties engage in only one communication round. The prover shares the information with an algorithm that computes zero-knowledge proof. The verifier receives the proof and uses another algorithm to confirm the prover’s knowledge.
Given the convenience of non-interactive ZKPs, many currently available protocols fall under the non-interactive ZKPs category. Let’s look at some of them.
- ZK-SNARKs: Known in full as Zero-Knowledge Succinct Non-Interactive Argument of Knowledge, their small size makes the verification process easy. These protocols utilize elliptical curves to generate a cryptographic proof, a process considered to be gas efficient.
- ZK-STARKs: They are known as Zero-Knowledge Scalable Transparent Argument of Knowledge. They are fast due to the minimal interaction between two parties.
- Bulletproofs: These do not require a trusted setup. The short non-interactive zero-knowledge proofs enable private cryptocurrency transactions.
- PLONK: These are known as Permutations over Lagrange bases for Oecumenical Non-interactive arguments of Knowledge. PLONKs allow a large number of participants by using a universal trusted setup.
Why Do We Need Zero-Knowledge Proofs?
Various use cases explain why we need zero-knowledge proofs. Let’s take a look at some of the most important.
- Security and privacy: The pseudonymity of web3 fails to guarantee complete privacy since the transaction history is available on public blockchains. With ZKPs, information verification is possible without revealing PII, thus maintaining anonymity.
- Identity verification: Proving one’s identity does not have to include sharing sensitive information. ZKPs offer an avenue to carry out the identity verification process privately and securely.
- Scalability: With ZKPs, blockchain networks can verify transactions without revealing the underlying data. The network’s efficiency improves since the information stored on the blockchain reduces significantly.
- Compliance: Organizations can comply with regulatory requirements regarding money laundering, KYC, and other relevant laws. ZKPs allow organizations to comply without storing users’ personal information on centralized databases.
Zero-knowledge proofs are a fundamental cryptography tool offering information authentication to unidentified or untrusted parties. The pseudonymous nature of the web3 space presents a challenge in matters of information verification. ZKPs address this pain point through revolutionary protocols that promise to ensure fast and secure transactions.