Zero-knowledge proof (ZKP) is a cryptographic technology that was first proposed by S. Goldwasser, S. Micali, and C. Rackoff in the early 1980s in a paper titled The Knowledge Complexity Of Interactive Proof Systems. In this paper, it was conceptualized as a theoretical model to address the problem of verifying mathematical statements without revealing the evidence. This concept gained significant attention in the academic community as it challenged the limits of traditional encryption techniques and provided a new 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 2010, Groth published a paper titled Short Pairing-based Non-interactive Zero-Knowledge Arguments, which became a seminal work in the development of zk-SNARK, an important solution in ZKP. The most significant practical application of ZKP is the zero-knowledge proof system used by Z-cash in 2015, which achieved privacy protection for transactions and amounts. Subsequently, zk-SNARK combined with smart contracts, leading to a wider range of applications.
The principles that traditional ZKP needs to adhere to are as follows:
The principle of ZKP can be understood through a simple example: If I need to prove to A that I have B’s phone number, I don’t need to directly tell A B’s phone number. Instead, I can directly dial B’s phone number and once the call is connected, it can prove that I indeed have B’s phone number. This process does not disclose B’s number information.
And zk-SNARK further upgrades on this basis, with the following characteristics:
In Groth’s paper, he proposed a non-interactive zero-knowledge proof method based on pairings that transforms a computational problem into a Quadratic Arithmetic Program (QAP), and then constructs an efficient proof using elliptic curve cryptography and hash functions. Later designs of zk-SNARK generally involve four steps:
To help understand, let’s consider a simple example: Suppose you have a treasure map that can guide you to the exact location of the buried treasure. You want to prove to someone that you know the location of the treasure without revealing the contents of the map or the actual location of the treasure. If you use zk-SNARK technology, you would need to create a complex puzzle of the treasure map. You select a small piece of the puzzle (a proof) and show it to the person, which convinces them that you know how the complete puzzle fits together, i.e., the location of the treasure, without seeing the entire puzzle. However, to achieve this, you would need to obtain special markings from a trusted printing house, which serve as evidence that your puzzle piece is genuine.
The traditional approach to zero-knowledge proofs involves interactive proof methods, where a prover repeatedly asks a verifier “yes or no?” questions until a correct answer is reached. This process is inefficient. However, zk-SNARK eliminates the need for repeated interactions by obtaining a CRS from a trusted third party. All provers can directly compare the CRS to determine the truthfulness. This greatly improves the efficiency of zero-knowledge proofs.
In addition, zk-SNARK offers the following advantages:
The first application of zk-SNARK is Zcash, which allows users to engage in fully anonymous transactions by hiding information such as senders, receivers, and amounts using zk-SNARK. In the current Web3 space, zk-SNARK technology plays a significant role in blockchain scalability and exchange reserve management.
Due to the consensus mechanism and security requirements of blockchain, its throughput and efficiency are greatly limited. To address this issue, a common solution is to use Layer2 technology, which builds an additional layer on top of the blockchain to migrate a large number of transactions or computations from the main chain (Layer1) to Layer2, thereby improving the system’s performance and usability.
zk-SNARK plays an important role in this solution, as it can compress the transactions or computations on Layer2 into a small and fast proof, which is then submitted for verification on the main chain, ensuring the correctness and consistency of Layer2. Currently, there are two mainstream Layer2 solutions based on zk-SNARK: ZK-rollup and Validium.
Due to the volatility and uncertainty of the cryptocurrency market, many exchanges need to hold a certain amount of reserve funds to address potential risks or demands. However, these reserve funds often lack transparency and trustworthiness, leaving users uncertain about whether the exchange truly has enough reserve funds to safeguard their assets.
zk-SNARK can provide a solution in this regard by allowing exchanges to prove to users or regulatory bodies that they possess an adequate quantity and value of reserve funds without revealing specific asset details or locations.
A typical example is Gate.io, which utilizes a combination of zk-SNARK and Merkle trees. They encrypt user data and generate proofs of 100 different tokens’ reserve funds using constrained circuits to demonstrate their 100% solvency capability.
Source: https://www.gate.io/proof-of-reserves
Further Reading: How zk-SNARK improves Gate.io Proof of Reserves
In addition to Web3 applications, zk-SNARK can also be used in non-blockchain domains, such as:
In the previous section, we introduced the technical principles of zk-SNARK, which mentioned that zk-SNARK improves proof efficiency by finding a trusted third party to generate CRS. However, this also leads to some inherent limitations and challenges of zk-SNARK.
In summary, there are various approaches to address the inherent limitations of zk-SNARK.
zk-SNARK, as an innovative cryptographic technology, has broad future application scenarios, especially in the field of privacy:
The zk-SNARK technology represents a significant breakthrough in the fields of privacy protection and encrypted verification. It is not only promising in providing strong privacy guarantees but also practical in enhancing the scalability of blockchain and various other applications. Despite the existence of technical challenges and limitations, through continuous research and innovation, we expect zk-SNARK to continue evolving, optimizing existing systems, and inspiring new application models to drive the advancement of privacy protection and encryption technology. With the maturity of technology and the increasing emphasis on data privacy in society, zk-SNARK has the potential to become an indispensable tool in the digital age, empowering users with greater control over their information and promoting secure and transparent digital interactions.
Zero-knowledge proof (ZKP) is a cryptographic technology that was first proposed by S. Goldwasser, S. Micali, and C. Rackoff in the early 1980s in a paper titled The Knowledge Complexity Of Interactive Proof Systems. In this paper, it was conceptualized as a theoretical model to address the problem of verifying mathematical statements without revealing the evidence. This concept gained significant attention in the academic community as it challenged the limits of traditional encryption techniques and provided a new 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 2010, Groth published a paper titled Short Pairing-based Non-interactive Zero-Knowledge Arguments, which became a seminal work in the development of zk-SNARK, an important solution in ZKP. The most significant practical application of ZKP is the zero-knowledge proof system used by Z-cash in 2015, which achieved privacy protection for transactions and amounts. Subsequently, zk-SNARK combined with smart contracts, leading to a wider range of applications.
The principles that traditional ZKP needs to adhere to are as follows:
The principle of ZKP can be understood through a simple example: If I need to prove to A that I have B’s phone number, I don’t need to directly tell A B’s phone number. Instead, I can directly dial B’s phone number and once the call is connected, it can prove that I indeed have B’s phone number. This process does not disclose B’s number information.
And zk-SNARK further upgrades on this basis, with the following characteristics:
In Groth’s paper, he proposed a non-interactive zero-knowledge proof method based on pairings that transforms a computational problem into a Quadratic Arithmetic Program (QAP), and then constructs an efficient proof using elliptic curve cryptography and hash functions. Later designs of zk-SNARK generally involve four steps:
To help understand, let’s consider a simple example: Suppose you have a treasure map that can guide you to the exact location of the buried treasure. You want to prove to someone that you know the location of the treasure without revealing the contents of the map or the actual location of the treasure. If you use zk-SNARK technology, you would need to create a complex puzzle of the treasure map. You select a small piece of the puzzle (a proof) and show it to the person, which convinces them that you know how the complete puzzle fits together, i.e., the location of the treasure, without seeing the entire puzzle. However, to achieve this, you would need to obtain special markings from a trusted printing house, which serve as evidence that your puzzle piece is genuine.
The traditional approach to zero-knowledge proofs involves interactive proof methods, where a prover repeatedly asks a verifier “yes or no?” questions until a correct answer is reached. This process is inefficient. However, zk-SNARK eliminates the need for repeated interactions by obtaining a CRS from a trusted third party. All provers can directly compare the CRS to determine the truthfulness. This greatly improves the efficiency of zero-knowledge proofs.
In addition, zk-SNARK offers the following advantages:
The first application of zk-SNARK is Zcash, which allows users to engage in fully anonymous transactions by hiding information such as senders, receivers, and amounts using zk-SNARK. In the current Web3 space, zk-SNARK technology plays a significant role in blockchain scalability and exchange reserve management.
Due to the consensus mechanism and security requirements of blockchain, its throughput and efficiency are greatly limited. To address this issue, a common solution is to use Layer2 technology, which builds an additional layer on top of the blockchain to migrate a large number of transactions or computations from the main chain (Layer1) to Layer2, thereby improving the system’s performance and usability.
zk-SNARK plays an important role in this solution, as it can compress the transactions or computations on Layer2 into a small and fast proof, which is then submitted for verification on the main chain, ensuring the correctness and consistency of Layer2. Currently, there are two mainstream Layer2 solutions based on zk-SNARK: ZK-rollup and Validium.
Due to the volatility and uncertainty of the cryptocurrency market, many exchanges need to hold a certain amount of reserve funds to address potential risks or demands. However, these reserve funds often lack transparency and trustworthiness, leaving users uncertain about whether the exchange truly has enough reserve funds to safeguard their assets.
zk-SNARK can provide a solution in this regard by allowing exchanges to prove to users or regulatory bodies that they possess an adequate quantity and value of reserve funds without revealing specific asset details or locations.
A typical example is Gate.io, which utilizes a combination of zk-SNARK and Merkle trees. They encrypt user data and generate proofs of 100 different tokens’ reserve funds using constrained circuits to demonstrate their 100% solvency capability.
Source: https://www.gate.io/proof-of-reserves
Further Reading: How zk-SNARK improves Gate.io Proof of Reserves
In addition to Web3 applications, zk-SNARK can also be used in non-blockchain domains, such as:
In the previous section, we introduced the technical principles of zk-SNARK, which mentioned that zk-SNARK improves proof efficiency by finding a trusted third party to generate CRS. However, this also leads to some inherent limitations and challenges of zk-SNARK.
In summary, there are various approaches to address the inherent limitations of zk-SNARK.
zk-SNARK, as an innovative cryptographic technology, has broad future application scenarios, especially in the field of privacy:
The zk-SNARK technology represents a significant breakthrough in the fields of privacy protection and encrypted verification. It is not only promising in providing strong privacy guarantees but also practical in enhancing the scalability of blockchain and various other applications. Despite the existence of technical challenges and limitations, through continuous research and innovation, we expect zk-SNARK to continue evolving, optimizing existing systems, and inspiring new application models to drive the advancement of privacy protection and encryption technology. With the maturity of technology and the increasing emphasis on data privacy in society, zk-SNARK has the potential to become an indispensable tool in the digital age, empowering users with greater control over their information and promoting secure and transparent digital interactions.