Zero-Knowledge Proof (ZKP) is a cryptographic technology first introduced in a paper titled “The Knowledge Complexity Of Interactive Proof Systems” in the early 1980s by S.Goldwasser, S.Micali, and C.Rackoff. Originally conceived as a theoretical model, it aimed to address the challenge of verifying mathematical statements without revealing any evidence. This concept garnered widespread attention in the academic world for challenging the boundaries of traditional encryption techniques and offering a novel approach to handling sensitive information.
Over time, ZKP evolved from an abstract theoretical concept into concrete protocols that can be integrated into various applications. In the early 21st century, with the explosive growth of the internet and digital communication, ZKP’s potential began to be explored in the real world. Particularly with the rise of blockchain and cryptocurrencies, ZKP demonstrated its ability to enhance privacy and security while maintaining the efficiency of transactions and data processing.
Today, ZKP is not only a hot topic in cryptographic research but has also been integrated into multiple blockchain platforms and applications. For instance, zk-SNARKs’ application on Ethereum Layer2 offers anonymous transactions without revealing transaction details. This transition from theory to practical application not only proves the practical value of ZKP but also drives the exploration of more efficient and secure digital interactions. With continual technological advancements, ZKP plays an increasingly critical role in protecting personal privacy, ensuring data security, and establishing trustworthy digital systems.
Zero-Knowledge Proof (ZKP) is an encryption method that allows one party (the prover) to prove the correctness of a statement to another party (the verifier) without revealing any additional information, i.e., without disclosing any knowledge on which the correctness of the statement depends. This process not only protects the privacy of the prover but also ensures that the verifier cannot replicate the proof process or use it to gain any additional information.
Zero-Knowledge Proofs Conceptual Diagram (Source: ChainLink)
The core principles of Zero-Knowledge Proofs (ZKP) can be defined by the following three attributes:
The principle of ZKP is often understood through simple examples: If I need to prove to person A that I have person B’s phone number, I don’t need to directly reveal B’s number to A. Instead, I can prove it by calling B’s number. Once the call connects, it demonstrates that I indeed possess B’s number, without disclosing any information about the number itself.
In practical applications, ZKP usually requires complex mathematical constructions like polynomial equations, elliptical curves, or other mathematical challenges. The security of these constructions is based on the computational difficulty of problems like factorization or discrete logarithms. With the advancement of cryptography, various implementations of ZKP have emerged, such as zk-SNARKs and zk-STARKs, offering effective privacy protection in different contexts, especially in the fields of blockchain and cryptocurrencies.
The basic form of zero-knowledge proof consists of three elements: witness, challenge, and response.
Witness: In zero-knowledge proof, the prover wants to demonstrate knowledge of some hidden information. This secret information acts as the “witness” to the proof. The prover, based on their knowledge of the witness, sets up a set of questions that only someone with knowledge of the information can answer. Thus, the prover randomly selects a question to initiate the proof, calculates the answer, and then sends it to the verifier.
Challenge: The verifier randomly picks another question from the set and asks the prover to answer it.
Response: The prover receives the question, calculates the answer, and sends it back to the verifier. The prover’s response allows the verifier to check if the prover indeed has access to the witness. To ensure that the prover isn’t just blindly guessing correctly by chance, the verifier selects another question for inquiry. By repeating this process multiple times, the likelihood of the prover fabricating the truth greatly reduces until the verifier is satisfied.
In the aforementioned phone call example, “I” am the unwilling-to-disclose-information witness, while A is the verifier, and the challenge posed is “Prove that ‘I’ possess B’s number.” The response process involves “me” connecting a call to B’s number to prove I truly have it.
As previously discussed, Zero-Knowledge Proofs (ZKP) inherently offer significant advantages in the realm of privacy protection. In today’s era of information overload, personal data is often stored on third-party platforms, increasing the risk of data breaches. Moreover, due to technical barriers and the lag in legal sanctions, information security largely relies on ethical constraints, making it difficult for users to truly control their private information. The advent of ZKP technology provides a solution that both protects privacy and enhances verification efficiency and security.
Compared to other encryption technologies, ZKP has multiple advantages:
Whether in traditional Web 2.0 or the emerging Web 3.0 domain, the application prospects of ZKP are extensive.
There are multiple implementations of zero-knowledge proofs, such as zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs. Each type has its advantages and disadvantages in terms of proof size, prover time, and verification time. This article focuses on introducing the four types that are most commonly used in application scenarios.
zk-SNARKs, standing for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” are cryptographic tools used to prove that someone knows a piece of information without revealing any of the information itself. In zk-SNARKs, “zero-knowledge” means the prover can prove a statement is true without providing any information other than its correctness. “Succinctness” refers to the small size of the proof and the speed of the verification process. “Non-interactive” means once a proof is generated, it can be verified by anyone without further interaction between the prover and the verifier. The core components of zk-SNARKs include:
zk-SNARKs are used in various privacy-preservation scenarios, such as cryptocurrencies with anonymous transactions, secure voting systems, privacy-preserving authentication and data sharing, and blockchain scalability technologies.
zk-STARKs, or “Zero-Knowledge Scalable Transparent Arguments of Knowledge,” allow one party (the prover) to prove to another (the verifier) that they know certain information without revealing the information itself. Unlike zk-SNARKs, zk-STARKs do not require a trusted setup process. This means they do not rely on the confidentiality of certain private information, a feature often considered crucial for security, as the trusted setup can be a systemic vulnerability.
zk-STARKs work based on concepts from several mathematical fields, including hash functions, polynomial computations, and error correction theory. They utilize a construction known as “zero-knowledge scalable transparent argument,” allowing for proof generation without a trusted setup. The potential applications of zk-STARKs are similar to those of zk-SNARKs, but due to their scalability and transparency, they are particularly suitable for large-scale applications, including privacy-preserving cryptocurrencies, blockchain scalability technologies, and secure verification in cloud computing.
PLONK, not an acronym, refers to the surnames of its creators. It’s designed to provide a universal and efficient ZKP solution, especially in blockchain applications such as smart contracts and privacy-protected transactions. The core of PLONK is the use of a “homomorphic hiding” technique, allowing arithmetic operations on data without revealing the original data. It employs a special algorithm - a polynomial commitment scheme - to create proofs, enabling provers to efficiently prove they have the correct calculation results for a set of data.
One key feature of PLONK is its universality. Once parameters are set for a specific computational task (through a one-time trusted setup), they can be reused multiple times to create new proofs, without needing new setups each time. This makes PLONK highly efficient in creating and verifying proofs and is often designed to support various computational tasks in blockchain and other distributed systems.
Bulletproofs, a newly introduced ZKP solution, do not require a trusted setup and are specifically designed for constructing range proofs and certain types of arithmetic proofs. Proposed by Benedikt Bunz, Jonathan Bootle, Dan Boneh, and others in 2017, Bulletproofs operate on complex mathematical constructs like homomorphic encryption and elliptic curve cryptography. They leverage a series of mathematical techniques to allow provers to create an effective range proof for a number without revealing its exact value. Especially in the cryptocurrency domain, this can be used to prove that transaction values fall within a legal range without exposing the actual transaction amounts.
Due to their range-proof feature, Bulletproofs are widely used in the cryptocurrency and blockchain fields, particularly in privacy coins like Monero, to hide transaction amounts while verifying the legitimacy of transactions. Additionally, they can be employed in other applications where numerical privacy is required.
Let’s better understand these four different Zero-Knowledge Proof (ZKP) technologies—zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs—through a treasure map analogy.
Imagine you have a treasure map that leads to the exact location of a buried treasure. You want to prove to someone that you know where the treasure is without revealing the map’s contents or the treasure’s actual location.
zk-SNARKs: You create a complex jigsaw puzzle of the treasure map. You select a small, key piece of this puzzle (a proof) and show it to the other party, sufficient to convince them that you know how to assemble the complete puzzle, i.e., the treasure’s location, without revealing the whole puzzle. However, to do this, you need special markers from a trusted printer to prove that your puzzle piece is genuine.
zk-STARKs: You show a part of the treasure map to the other party, telling them they can use a special magnifying glass (a verification algorithm) to randomly check the map’s details to verify it indeed points to the treasure, without needing to know the exact location of the treasure. This magnifying glass is so powerful that even future technologies (quantum computers) can’t crack the secret of your treasure map.
PLONK: This time, you create a set of riddles, each pointing to the treasure’s location. You present a universal method of verifying solutions to these riddles (a universal setup) to the other party, sufficient for them to believe you know all the answers without having to solve each riddle individually.
Bulletproofs: You decide to prove that you know the approximate range of the treasure’s location without revealing its exact position. You provide a series of mathematical problem solutions that demonstrate the range of the treasure’s location. Your method doesn’t require any special markers or printing techniques, meaning no initial trust requirement.
In this analogy:
Each method has its trade-offs in practical applications, and the choice depends on the specific application scenario and security needs.
Before comparing, we need to understand the criteria for evaluating ZKPs:
Now, let’s compare zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs based on these indicators and discuss their pros and cons.
Pros
Cons
Pros
Cons
Pros
Cons
Pros
Cons
In Web3, there are many application cases of ZKP, and we have selected two typical cases for study.
zk-Rollups are a Layer 2 solution that bundles hundreds or thousands of transactions off-chain and generates a zk-SNARK proof. This proof, along with transaction data, is submitted to the Ethereum main chain. It allows for the validation of transactions without the main chain processing each transaction, thereby reducing fees and increasing throughput. zk-Sync Era and Starknet have adopted zk-rollup technology, and Polygon has recently introduced Polygon zk-EVM using zk-rollups.
An application demonstration of zk-SNARKs in Layer 2 (Source: Simon Brown)
Exchange reserve proof refers to the verification of balances held by cryptocurrency exchanges or other financial institutions, ensuring that the recorded assets match the actual assets held. Initially, exchanges used Merkle trees and third-party audit firms for this verification, but this process relied on third parties and could leak private user data such as account balances. Exchanges like Gate.io are now utilizing zk-SNARKs technology for reserve proofs, encrypting user data, and obtaining user asset numbers through zk-SNARK circuits, thereby issuing complete reserve proof reports.
The diverse solutions of zero-knowledge proof technology highlight its powerful potential in Web3. From data privacy protection to blockchain scaling, ZKP is important to building a secure and efficient Web3 infrastructure. While different approaches have their advantages and limitations, they collectively point toward a more trustworthy and privacy-protected digital future. As technology advances, the challenges of optimizing performance and security with ZKP will gradually be overcome, indicating its increasingly significant role in the digital world.
Zero-Knowledge Proof (ZKP) is a cryptographic technology first introduced in a paper titled “The Knowledge Complexity Of Interactive Proof Systems” in the early 1980s by S.Goldwasser, S.Micali, and C.Rackoff. Originally conceived as a theoretical model, it aimed to address the challenge of verifying mathematical statements without revealing any evidence. This concept garnered widespread attention in the academic world for challenging the boundaries of traditional encryption techniques and offering a novel approach to handling sensitive information.
Over time, ZKP evolved from an abstract theoretical concept into concrete protocols that can be integrated into various applications. In the early 21st century, with the explosive growth of the internet and digital communication, ZKP’s potential began to be explored in the real world. Particularly with the rise of blockchain and cryptocurrencies, ZKP demonstrated its ability to enhance privacy and security while maintaining the efficiency of transactions and data processing.
Today, ZKP is not only a hot topic in cryptographic research but has also been integrated into multiple blockchain platforms and applications. For instance, zk-SNARKs’ application on Ethereum Layer2 offers anonymous transactions without revealing transaction details. This transition from theory to practical application not only proves the practical value of ZKP but also drives the exploration of more efficient and secure digital interactions. With continual technological advancements, ZKP plays an increasingly critical role in protecting personal privacy, ensuring data security, and establishing trustworthy digital systems.
Zero-Knowledge Proof (ZKP) is an encryption method that allows one party (the prover) to prove the correctness of a statement to another party (the verifier) without revealing any additional information, i.e., without disclosing any knowledge on which the correctness of the statement depends. This process not only protects the privacy of the prover but also ensures that the verifier cannot replicate the proof process or use it to gain any additional information.
Zero-Knowledge Proofs Conceptual Diagram (Source: ChainLink)
The core principles of Zero-Knowledge Proofs (ZKP) can be defined by the following three attributes:
The principle of ZKP is often understood through simple examples: If I need to prove to person A that I have person B’s phone number, I don’t need to directly reveal B’s number to A. Instead, I can prove it by calling B’s number. Once the call connects, it demonstrates that I indeed possess B’s number, without disclosing any information about the number itself.
In practical applications, ZKP usually requires complex mathematical constructions like polynomial equations, elliptical curves, or other mathematical challenges. The security of these constructions is based on the computational difficulty of problems like factorization or discrete logarithms. With the advancement of cryptography, various implementations of ZKP have emerged, such as zk-SNARKs and zk-STARKs, offering effective privacy protection in different contexts, especially in the fields of blockchain and cryptocurrencies.
The basic form of zero-knowledge proof consists of three elements: witness, challenge, and response.
Witness: In zero-knowledge proof, the prover wants to demonstrate knowledge of some hidden information. This secret information acts as the “witness” to the proof. The prover, based on their knowledge of the witness, sets up a set of questions that only someone with knowledge of the information can answer. Thus, the prover randomly selects a question to initiate the proof, calculates the answer, and then sends it to the verifier.
Challenge: The verifier randomly picks another question from the set and asks the prover to answer it.
Response: The prover receives the question, calculates the answer, and sends it back to the verifier. The prover’s response allows the verifier to check if the prover indeed has access to the witness. To ensure that the prover isn’t just blindly guessing correctly by chance, the verifier selects another question for inquiry. By repeating this process multiple times, the likelihood of the prover fabricating the truth greatly reduces until the verifier is satisfied.
In the aforementioned phone call example, “I” am the unwilling-to-disclose-information witness, while A is the verifier, and the challenge posed is “Prove that ‘I’ possess B’s number.” The response process involves “me” connecting a call to B’s number to prove I truly have it.
As previously discussed, Zero-Knowledge Proofs (ZKP) inherently offer significant advantages in the realm of privacy protection. In today’s era of information overload, personal data is often stored on third-party platforms, increasing the risk of data breaches. Moreover, due to technical barriers and the lag in legal sanctions, information security largely relies on ethical constraints, making it difficult for users to truly control their private information. The advent of ZKP technology provides a solution that both protects privacy and enhances verification efficiency and security.
Compared to other encryption technologies, ZKP has multiple advantages:
Whether in traditional Web 2.0 or the emerging Web 3.0 domain, the application prospects of ZKP are extensive.
There are multiple implementations of zero-knowledge proofs, such as zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs. Each type has its advantages and disadvantages in terms of proof size, prover time, and verification time. This article focuses on introducing the four types that are most commonly used in application scenarios.
zk-SNARKs, standing for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” are cryptographic tools used to prove that someone knows a piece of information without revealing any of the information itself. In zk-SNARKs, “zero-knowledge” means the prover can prove a statement is true without providing any information other than its correctness. “Succinctness” refers to the small size of the proof and the speed of the verification process. “Non-interactive” means once a proof is generated, it can be verified by anyone without further interaction between the prover and the verifier. The core components of zk-SNARKs include:
zk-SNARKs are used in various privacy-preservation scenarios, such as cryptocurrencies with anonymous transactions, secure voting systems, privacy-preserving authentication and data sharing, and blockchain scalability technologies.
zk-STARKs, or “Zero-Knowledge Scalable Transparent Arguments of Knowledge,” allow one party (the prover) to prove to another (the verifier) that they know certain information without revealing the information itself. Unlike zk-SNARKs, zk-STARKs do not require a trusted setup process. This means they do not rely on the confidentiality of certain private information, a feature often considered crucial for security, as the trusted setup can be a systemic vulnerability.
zk-STARKs work based on concepts from several mathematical fields, including hash functions, polynomial computations, and error correction theory. They utilize a construction known as “zero-knowledge scalable transparent argument,” allowing for proof generation without a trusted setup. The potential applications of zk-STARKs are similar to those of zk-SNARKs, but due to their scalability and transparency, they are particularly suitable for large-scale applications, including privacy-preserving cryptocurrencies, blockchain scalability technologies, and secure verification in cloud computing.
PLONK, not an acronym, refers to the surnames of its creators. It’s designed to provide a universal and efficient ZKP solution, especially in blockchain applications such as smart contracts and privacy-protected transactions. The core of PLONK is the use of a “homomorphic hiding” technique, allowing arithmetic operations on data without revealing the original data. It employs a special algorithm - a polynomial commitment scheme - to create proofs, enabling provers to efficiently prove they have the correct calculation results for a set of data.
One key feature of PLONK is its universality. Once parameters are set for a specific computational task (through a one-time trusted setup), they can be reused multiple times to create new proofs, without needing new setups each time. This makes PLONK highly efficient in creating and verifying proofs and is often designed to support various computational tasks in blockchain and other distributed systems.
Bulletproofs, a newly introduced ZKP solution, do not require a trusted setup and are specifically designed for constructing range proofs and certain types of arithmetic proofs. Proposed by Benedikt Bunz, Jonathan Bootle, Dan Boneh, and others in 2017, Bulletproofs operate on complex mathematical constructs like homomorphic encryption and elliptic curve cryptography. They leverage a series of mathematical techniques to allow provers to create an effective range proof for a number without revealing its exact value. Especially in the cryptocurrency domain, this can be used to prove that transaction values fall within a legal range without exposing the actual transaction amounts.
Due to their range-proof feature, Bulletproofs are widely used in the cryptocurrency and blockchain fields, particularly in privacy coins like Monero, to hide transaction amounts while verifying the legitimacy of transactions. Additionally, they can be employed in other applications where numerical privacy is required.
Let’s better understand these four different Zero-Knowledge Proof (ZKP) technologies—zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs—through a treasure map analogy.
Imagine you have a treasure map that leads to the exact location of a buried treasure. You want to prove to someone that you know where the treasure is without revealing the map’s contents or the treasure’s actual location.
zk-SNARKs: You create a complex jigsaw puzzle of the treasure map. You select a small, key piece of this puzzle (a proof) and show it to the other party, sufficient to convince them that you know how to assemble the complete puzzle, i.e., the treasure’s location, without revealing the whole puzzle. However, to do this, you need special markers from a trusted printer to prove that your puzzle piece is genuine.
zk-STARKs: You show a part of the treasure map to the other party, telling them they can use a special magnifying glass (a verification algorithm) to randomly check the map’s details to verify it indeed points to the treasure, without needing to know the exact location of the treasure. This magnifying glass is so powerful that even future technologies (quantum computers) can’t crack the secret of your treasure map.
PLONK: This time, you create a set of riddles, each pointing to the treasure’s location. You present a universal method of verifying solutions to these riddles (a universal setup) to the other party, sufficient for them to believe you know all the answers without having to solve each riddle individually.
Bulletproofs: You decide to prove that you know the approximate range of the treasure’s location without revealing its exact position. You provide a series of mathematical problem solutions that demonstrate the range of the treasure’s location. Your method doesn’t require any special markers or printing techniques, meaning no initial trust requirement.
In this analogy:
Each method has its trade-offs in practical applications, and the choice depends on the specific application scenario and security needs.
Before comparing, we need to understand the criteria for evaluating ZKPs:
Now, let’s compare zk-SNARKs, zk-STARKs, PLONK, and Bulletproofs based on these indicators and discuss their pros and cons.
Pros
Cons
Pros
Cons
Pros
Cons
Pros
Cons
In Web3, there are many application cases of ZKP, and we have selected two typical cases for study.
zk-Rollups are a Layer 2 solution that bundles hundreds or thousands of transactions off-chain and generates a zk-SNARK proof. This proof, along with transaction data, is submitted to the Ethereum main chain. It allows for the validation of transactions without the main chain processing each transaction, thereby reducing fees and increasing throughput. zk-Sync Era and Starknet have adopted zk-rollup technology, and Polygon has recently introduced Polygon zk-EVM using zk-rollups.
An application demonstration of zk-SNARKs in Layer 2 (Source: Simon Brown)
Exchange reserve proof refers to the verification of balances held by cryptocurrency exchanges or other financial institutions, ensuring that the recorded assets match the actual assets held. Initially, exchanges used Merkle trees and third-party audit firms for this verification, but this process relied on third parties and could leak private user data such as account balances. Exchanges like Gate.io are now utilizing zk-SNARKs technology for reserve proofs, encrypting user data, and obtaining user asset numbers through zk-SNARK circuits, thereby issuing complete reserve proof reports.
The diverse solutions of zero-knowledge proof technology highlight its powerful potential in Web3. From data privacy protection to blockchain scaling, ZKP is important to building a secure and efficient Web3 infrastructure. While different approaches have their advantages and limitations, they collectively point toward a more trustworthy and privacy-protected digital future. As technology advances, the challenges of optimizing performance and security with ZKP will gradually be overcome, indicating its increasingly significant role in the digital world.