Source: Chainalysis; Compiled by Wuzhu, Golden Finance
In 1985, the original concept of zero-knowledge proof (ZKP) appeared in a peer-reviewed academic paper titled "Knowledge Complexity of Interactive Proof Systems," marking a breakthrough in cryptography. Researchers Shafi Goldwasser, Silvio Micali, and Charles Rackoff explored whether it was possible to prove that data was valid without revealing any information other than the data itself. Nearly 40 years later, ZKP has become a fundamental component of many blockchains, empowering users by enhancing privacy and security.
What is Zero-Knowledge Proof? (ZKP)
Zero-knowledge proof (ZKP) is a cryptographic method that allows multiple parties to verify the authenticity of a statement without revealing information other than the statement itself. Many blockchains leverage ZKP to improve the security of interactions involving sensitive data. As a result, participants in a blockchain with ZKP can interact with greater confidence because private information is less likely to be leaked or exploited by malicious actors.
Components of a Zero-Knowledge Proof
ZKPs require at least two parties to participate in each interaction: a prover and a verifier. The prover is responsible for providing the actual mathematical proof to convince the verifier of the validity of the statement. The verifier must examine this proof and either accept or reject it.
There are often multiple rounds of communication between the prover and the verifier to reduce the likelihood that either party will guess or provide illegal information.
How do Zero-Knowledge Proofs work?
ZKPs operate using basic building blocks of advanced cryptographic algorithms and mathematical concepts. For example, ZKPs use cryptographic hash functions to generate random challenges for the verifier in an effort to establish mutual trust with the prover.
Interactions powered by ZKPs must satisfy the following conditions:
Integrity: An honest prover should be able to easily convince the verifier that the statement is true.
Soundness:If the statement is false, a dishonest prover should not be able to deceive the verifier.
Zero-knowledge:Neither party can extract additional private information about the other; they only know the content of the statement provided.
Let’s look at an example of how two users can conduct a transaction using ZKP:
A (the prover) wishes to perform a transaction using the privacy coin ZCash so that any observer of the hidden blockchain cannot extract any details of the transaction (i.e., amounts transferred, addresses transferred, etc.).
B (the verifier) wishes to receive ZCash from A, but without knowing their private details, such as the total amount of assets held in A’s wallet.
A encrypts the transaction and submits it to the blockchain.
A submits a ZKP with the encrypted transaction to prove that the transaction is valid.
Nodes on the blockchain check the ZKP to ensure that A's encrypted transaction is indeed valid.
If the ZKP is valid, B will accept it.
ZCash is transferred from A's account to B's account.
The transaction is permanently recorded on the blockchain.
Types of Zero-Knowledge Proofs
ZKPs come in two main flavors: interactive and non-interactive. Interactive ZKPs involve multiple rounds of back-and-forth communication between the prover and the verifier. Non-interactive ZKPs involve only one round of communication—the prover only sends a single message to the verifier, and they don't have to be online at the same time for this to happen.
Interactive proofs are uncommon in blockchain-based systems because they are inefficient, and it is usually undesirable to require both parties to be online at the same time. Therefore, the following types of ZKPs are used in non-interactive settings:
Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs) enable participants to prove possession of certain information without revealing the details of that information. Zk-SNARKs are common on the Ethereum blockchain and are particularly useful for privacy-preserving smart contracts. ZCash also leverages Zk-SNARKs to prove the validity of protected transactions, such as those that do not reveal any information - including the sender, recipient, and amount transferred.
Zero-knowledge Scalable Transparent Argument of Knowledge (zk-STARK) functions similarly to zk-SNARKs, but is designed to scale for large computations. Because zk-STARKs have the added benefits of transparency and scalability, they are compatible with a wide range of blockchain applications.
Bulletproofs prove that a value is within a certain range without revealing the value itself. By using advanced mathematical concepts, bulletproofs are able to make proofs smaller, thereby reducing transaction size and verification time. Monero uses bulletproofs.
Applications and Use Cases of Zero-Knowledge Proofs
Zero-knowledge proofs offer a wide range of applications in the blockchain ecosystem, from privacy-enhancing decentralized protocols to scalable transaction solutions. While some of these use cases have been adopted by blockchains, others remain speculative or in early stages of development.
Authentication and Secure Authentication:DeFi participants can use ZKPs to prove that they possess certain attributes, such as participating in governance activities or being a member of a specific group of token holders, without revealing the actual values of those attributes. Similarly, users can interact with ZKPs to selectively disclose information related to their identity.
Secure Voting Systems:ZKPs can allow DeFi participants to prove their voting eligibility and number of votes without revealing their history or voting preferences.
Zk-rollups are Layer 2 scaling solutions that bundle or “roll” transaction data off-chain into cryptographic proofs and then publish transaction validity on the Ethereum mainnet in the form of calldata using ZKP. Since transactions are published to the mainnet in bundles, they typically take up less space, reducing the computational burden on Ethereum. Popular zk-rollups include ZkSync and Loopring.
Zk-Plasmais a variant of the Plasma network that leverages ZKP to create privacy-preserving sidechains on Ethereum. Instead of verifying all data on the mainnet, users can verify transactions on a sidechain and then publish their validity on Ethereum using ZKP.
Decentralized Exchanges (DEXs): ZKPs can facilitate trading of a variety of assets without revealing a user’s trading history, strategy, or account balances.
Supply Chain Transparency and Integrity Verification:ZKPs can enhance supply chain security by verifying supplier credentials and product authenticity without disclosing transaction information or proprietary information about the production process to unauthorized parties. In addition, ZKPs may help verify authentication and compliance with supply chain regulatory standards.
The following chart illustrates the scale of adoption of zero-knowledge technology in some use cases. We look at the volume of funds sent to several of the most popular ZKP applications, including ZCash (privacy-preserving cryptocurrency), Tornado Cash (decentralized, non-custodial smart contracts), Railgun (Ethereum L2 privacy protocol), and Aztec (Ethereum L2 privacy protocol). Between January 2022 and April 2024, more funds were sent to Tornado Cash than to the other three ZKP-enabled applications, at nearly $5 billion.
Challenges of Zero-Knowledge Proof Adoption
While ZKPs hold the promise of making blockchains more secure and efficient, their widespread adoption faces a number of challenges:
Implementing and deploying ZKPs requires a deep understanding of cryptographic principles and advanced mathematics — expertise that most developers do not possess.
Generating ZKPs typically requires significant computing resources, resulting in slower transaction processing times and higher fees.
Blockchain interoperability can become difficult if participants encounter incompatible protocols or verification methods.
The complexity of ZKPs and corresponding data storage may create regulatory compliance and audit challenges.
The Future of Zero-Knowledge Proofs in Blockchain
As awareness of the importance of privacy and security on blockchain platforms continues to grow, zero-knowledge proofs are likely to gain wider adoption. Additionally, many Layer 2 protocols on Ethereum are continually seeking ways to improve scalability and efficiency, and zero-knowledge proofs may help address these issues. These ongoing efforts will play a key role in protecting user sensitive information and standardizing blockchain transactions to promote blockchain interoperability.