In this article, we will explore an overview of what Zero-Knowledge Proof (ZKP) is, the advantages and limitations of ZKP technology, as well as highlight some prominent Blockchain projects that use ZKP technology
What is Zero-Knowledge Proof (ZKP)?
Zero-Knowledge Proof (ZKP) is a cryptographic technology used to verify information without revealing the content of the information itself.
At its core, it’s a method by which one party (the prover) can prove to another party (the verifier) that they know a value x, without revealing any information about how they know the value x.
Why is Zero-Knowledge Proof (ZKP) Needed?
The main purpose of Zero-Knowledge Proof technology is to maintain the confidentiality of the input information while still verifying the accuracy of that information.
Example: Trang lost her parking ticket. How can she prove to the security guard that this is her vehicle?
Solution 1: Use her driver’s license.
Trang’s personal information will then be entered into the security guard’s information storage system. Suppose this database is hacked; Trang’s information will be exposed, which could potentially harm her.
The Problem: How can she retrieve her vehicle without providing personal information?
Solution 2: Use proof generated from Zero-Knowledge Proof technology.
Trang uses her driver’s license for the ZKP system to generate proof to verify that this is her vehicle.
The security guard will check and verify the proof provided by Trang. If everything is correct, Trang will be allowed to retrieve her vehicle.
In this case, Trang’s personal information is not revealed, but the security guard can still verify that this is her vehicle.
To see how these components appear in a ZKP system, I will explain below.
How does Zero-Knowledge Proof work?
A ZKP system consists of two main components: the prover and the verifier. There are also some related entities. Their roles are as follows:
- Prover: The party trying to prove that a statement is true, without revealing any information about their witness.
- Witness: The information that serves as input for the proving system to generate proof, demonstrating the correctness of a statement.
- Proving System (also can be called ZKP System): A system that includes algorithms to generate proof through the witness. The proof generated from this system is displayed in the form of an algorithm and is called a zero-knowledge proof.
- Verifier: The party that verifies the truth of the statement through the proof provided by the prover. The verifier does not need to know the input information of the proof
Continuing with the example above, we have the components clarified as follows:
- Statement to be proved: “Does the vehicle belong to Trang?”
- Driver’s license (witness): The input information for the ZKP system to generate proof.
- ZKP proving system: Uses input data and algorithms to generate proof. Trang provides witness information to the system, the system returns proof to Trang (a sequence of numbers displayed in an algorithmic form for computers to understand), Trang sends the proof to the security guard. Then, the security guard submits this sequence to the ZKP system for verification of the result. The input information will be encrypted by the system into numbers, then algorithms will be set up to produce the final data.
- Trang (prover): Provides necessary information (witness) to the ZKP system to generate proof for the statement to be proved.
- Security guard (verifier): Receives proof from Trang and proceeds with verification. The ZKP system will return a result of “Yes (1)” or “No (0)” for the statement to be proved.
If the result returned is (1), the security guard verifies that the vehicle belongs to Trang without needing to examine other information.
If the result returned is (0), the security guard verifies that the vehicle does not belong to Trang.
What are Interactive and Non-interactive Zero-Knowledge Proofs?
Interactive Zero-Knowledge Proof
Suppose during the process of proving “Does the vehicle belong to Trang?”:
Trang provides Witness 1, the security guard checks, has questions, and asks Trang again.
Trang continues to provide Witness 2, the security guard continues to check.
Trang provides Witness N, the security guard checks and verifies that the vehicle belongs to Trang.
At this point, Trang has proven her statement to be true.
This question-and-answer process is called Interactive Zero-Knowledge Proof. Clearly, it has several limitations:
- High storage costs: Because multiple rounds of questions and answers require a large amount of data for verification, storage costs are high.
- Long time, high latency: This question-and-answer process requires the questioner and the respondent to be present and constantly interacting, resulting in high transaction latency.
- Loss of decentralization of the network: The back-and-forth interaction makes the transaction dependent, losing the decentralized nature.
Non-interactive Zero-Knowledge Proof (Non-interactive ZKP)
Non-interactive ZKP was created to address the limitations of interactive ZKP. Its difference is that the prover and the verifier only need to interact once.
With this method, the proving system has been upgraded.
Non-interactive ZKP reduces communication between the prover and the verifier, making the proof process more efficient. Besides, after the proof is generated, anyone can verify the proof.
Read more: Updates on Prominent Zero-Knowledge Proof Projects in Early 2023
Common Zero-Knowledge Proof Structures
ZKP has 2 common structures:
- ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge): SNARK was formally introduced in January 2012 by Professor Alessandro Chiesa of UC Berkeley and his team (co-inventor of Zerocash, co-founder of Zcash, co-founder of StarkWare Industries).
- ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge): STARK was introduced later, formally in 2018 by Eli Ben-Sasson and his team (currently StarkWare).
The common point is that both SNARK and STARK are non-interactive ZKP systems, but they have different security assumptions and performance characteristics.
Advantages and Limitations of Zero-Knowledge Proof
Like all other forms of technology, Zero-Knowledge Proof (ZKP) also has its own set of advantages and limitations:
Advantages of Zero-Knowledge Proof (ZKP)
- Scalability for Blockchain: Zk Rollup solutions use ZKP technology to increase throughput and scalability for Layer 1 blockchains. Some typical projects are StarkNET, Loopring, and Zksync.
- Privacy and Security: 1 ZKP technology helps verify the completeness and accuracy of data without revealing sensitive information. Therefore, in addition to applications in Layer 2s to increase scalability, ZKP technology is also applied in application layers related to security and privacy, for example: Monero, Zcash…
Limitations of Zero-Knowledge Proof (ZKP)
- Requires a large amount of computing power: ZKP protocols often rely on complex mathematical equations. Therefore, they require a large amount of computing power to operate and calculate. This means it will be difficult for ordinary computers to participate in the transaction verification process.
- Not developer-friendly: One of the main applications of ZKP is for Layer 2 technologies to improve the scalability of blockchains. But at present, the applications of Zk Rollups are currently limited to simple payments and transactions. In addition, Zk Rollups currently do not support composability; different Zk Rollup applications cannot interact with each other within the same Layer 2.
Two Popular Applications of ZKP
Using ZKP Technology in the Blockchain Field
ZKP technology promises to be one of the medium and long-term scaling solutions for Blockchain.
With Zk Rollup solutions, they allow Ethereum and other Layer 1 blockchains to scale significantly by enabling quick verification and confirmation of the validity of transactions.
Besides, blockchains applying ZKP technology like Mina Protocol promise to create the leading blockchain generation in the field of Crypto.
Information Security Applications
Traditional applications require users to verify their identity with a centralized server. With ZKP technology, it can be used for end-to-end data encryption in applications, allowing information to be sent privately.
In addition, ZKP can help an individual prove their identity without revealing further personal information.
Conclusion
I hope this content will help you grasp the overview of what Zero-Knowledge Proof (ZKP) is, the advantages and limitations of ZKP technology, as well as highlight some prominent Blockchain projects that use ZKP technology.