What is ZKP?
Contents
Definition and Origin
Zero-knowledge proofs were proposed by Goldwasser, Micali, and Rackoff in the early 1980s. It is implemented through an interactive protocol where the Prover can convince the Verifier that a proposition is true, but the verifier cannot get any details about “how to prove” or “concrete information” from it. For example, Ali Baba proved to the robber that he knew the spell by repeatedly opening and closing the stone door, but did not reveal its contents
The core of zero-knowledge proof lies in “zero knowledge”, that is, in the process of verification, the verifier can not get any useful information, but can only be sure of the truth of the proposition.
It has a very important property, that is, zero knowledge, the verifier can not get any information about the proposition itself during the verification process.
For example, there is A ring room, and user A needs to prove to user B that he has the key to the ring room by entering the front door and exiting the back door.
In this process, user B is completely unaware of the existence of the key and only knows that user A is the owner of the room.
Core Concept
- Commitment: The prover makes a commitment to a proposition and provides a proof that can be verified, but does not disclose the details
- Challenge:The verifier presents a challenge that requires the prover to provide further evidence to prove the correctness of its promise
- Response:The prover provides a response according to the challenge, and the verifier verifies the truth of the proposition by verifying the response
Zero-knowledge proof is a powerful technique that ensures the authenticity and integrity of information while protecting privacy.
The main application scenarios of zero-knowledge proof
Zero-Knowledge Proofs (ZKP) is a technique for verifying the authenticity of information without revealing any information, which is widely used in many fields
Blockchain and Digital currency:
- Privacy protection: Zero-knowledge proofs are used in blockchain to protect transaction privacy
- Off-chain computing: Ethereum’s ZK-Rollup solution implements off-chain computing statistics through zero-knowledge proof, reducing resource consumption and improving blockchain performance
Authentication:
- Anonymous authentication: Users can prove their identity without revealing any personal information, such as authentication in Web3 and the Internet of Things.
- Healthcare: While some blockchain technologies support zero-knowledge proof, they are not yet widely used in healthcare scenarios
Financial Transactions:
- Anonymous Payments: Zero-Knowledge Proof supports anonymous payment systems, such as Tornado Cash, allowing users to make private transactions without revealing transaction details
Supply Chain Management:
- Product verification: Zero-knowledge proof can verify the authenticity and origin of a product without revealing sensitive information about the supply chain
Of course, we will focus on the application of ZKP in the field of supply chain management and modern logistics, and how it can enable modern logistics.
Comparison of mainstream algorithms
Algorithm | Peculiarity | Application scenario |
---|---|---|
zk-SNARKs | The proof data is small, requires trusted Settings, and relies on elliptic curve cryptography | Ethereum zk-Rollup |
zk-STARKs | No need for trusted Settings, resistant to quantum attacks, but large proof volume | Financial transaction verification |
Bulletproofs | No trusted Settings required for proof of scope and confidential transactions | Monero |
Challenge
Generating zero-knowledge proofs designs very complex calculations that are best performed on dedicated machines. Since these machines are expensive, the average individual user cannot afford this part of the cost.
Validation proofs also require complex calculations and increase the cost of implementing zero-knowledge techniques in applications.
In ZK-SNARK, the Common Reference String (public parameters) is generated once and available for re-use to parties who wish to participate in the zero-knowledge protocol. Public parameters are created via a trusted setup ceremony, where participants are assumed to be honest.
But the user is not actually evaluating the honesty of the participants, and the user must take the developer’s word for it. ZK-STARK is not affected by the trust assumption because the randomness used in generating strings is publicly verifiable. This is potentially dangerous.
ZK-SNARK uses elliptic curve cryptography for encryption. While the elliptic curve discrete logarithm problem is assumed to be intractable for now, the development of quantum computers could break this security model in the future.
In short, zero-knowledge proof is a challenging technique, but it is also cutting-edge, and we need to look at it critically