Zero-knowledge proofs help ensure that the privacy of transactions does not come at the expense of trust. Read on to discover what zero-knowledge proofs are, how they work, and why we need them in Web3.
This is affiliate content sourced from Laura Shin has been unleashed and published by CoinDesk.
What are zero knowledge proofs?
Zero-Knowledge Proofs (ZKPs) are protocols that help prove the validity of statements about blockchains without providing information that could 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 up the chain that the hidden information is valid, and the prover knows this with great certainty.
In the hands of malicious actors, personally identifiable information (PII) can pose certain risks, such as identity theft, reputational damage, and discrimination. Zero-knowledge proofs ensure that your PII remains protected.
Consider a scenario where you need to prove your identity to complete a transaction. You will need to provide evidence such as your driver’s license and other PII.
However, you no longer have control over the security of that information once it is in the hands of a third party. Hackers may target the third party’s central database, or the third party may share your information with others for targeted advertising purposes and other reasons.
Zero-knowledge proofs allow you to prevent this information from being shared and prove its validity.
How do zero-knowledge proofs work?
Zero-knowledge proofs use algorithms that process input data and confirm its veracity. Projects such as StarkNet on Ethereum, Polygon Zero, Zk Sync and more currently use the protocols in their functionality.
For zero-knowledge proofs to work efficiently, there are three criteria they must meet:
Zero-knowledge: the verifier has no access to the original input. The only information available to them is the validity of the statement.
Soundness: The protocol cannot validate invalid input as true. The protocol must include safeguards to ensure that the prover has no room to manipulate the verifier into thinking that his statement is true.
Completeness: Provided the input is valid, the protocol always validates the statement. The protocol accepts the evidence if both parties act honestly and the underlying information is true.
A basic zero-knowledge proof consists of three elements.
Firstly, we have the witness, what the secret information is. The pointer asks questions that only a party aware of 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 answer, where the speaker answers the question. With the response, the verifier confirms that the prover has access to the witness. The verifier then continues to select more questions from the set. The multiple questions limit the possibility of the speaker falsifying 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 enable back-and-forth communication between two parties. The communication allows verification of the validity of statements to the satisfaction of the verifier.
Non-interactive zero-knowledge proofs: Here two parties are involved in only one round of communication. The prover shares the information with an algorithm that calculates the 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 category of non-interactive ZKPs. Let’s take a look at a few.
ZK-SNARKs: Fully known as Zero-Knowledge Succinct Non-Interactive Argument of Knowledge, their small size makes the verification process easy. These protocols use elliptic curves to generate cryptographic proof, a process considered gas-efficient.
ZK-STARKs: They are known as Zero-Knowledge Scalable Transparent Argument of Knowledge. They are fast because of 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 ecumenical non-interactive knowledge arguments. PLONKs enable a large number of participants by using a universally trusted setup.
Why do we need zero-knowledge proofs?
Several use cases explain why we need zero-knowledge proofs. Let’s take a look at some of the most important ones.
Security and privacy: Web3’s pseudonymity cannot guarantee complete privacy as transaction history is available on public blockchains. ZKPs allow information verification without revealing PII, thus preserving anonymity.
Identity Verification: Proving someone’s identity doesn’t have to involve sharing sensitive information. ZKPs provide a way to perform the identity verification process privately and securely.
Scalability: ZKPs allow blockchain networks to verify transactions without revealing the underlying data. The efficiency of the network improves because the information stored on the blockchain decreases significantly.
Compliance: Organizations can comply with legal requirements regarding anti-money laundering, KYC and other relevant laws. ZKPs allow organizations to comply without storing users’ personal information in centralized databases.
Zero-knowledge proofs are a fundamental cryptography tool that provides information authentication to unidentified or untrusted parties. The pseudonymous nature of the Web3 space poses a challenge in terms of information verification. ZKPs address this pain point through revolutionary protocols that promise to ensure fast and secure transactions.