Zero-knowledge proofs, or ZK proofs, are a type of cryptographic encryption that keeps the details of a blockchain transaction hidden. Why is this important?
Blockchain use a vast network of computers scattered across the globe to verify transactions. These computers are called nodes, and they need to mutually agree on the authenticity of the data under scrutiny before it is added to the blockchain. This is called a ‘consensus mechanism’.
Since data is shared between so many computers across the world, user privacy is obviously a matter of concern.
Further, blockchains focus more on decentralisation than user privacy. This means that nodes keep getting onboarded to the network to keep the database as distributed as possible. Also, blockchains use public ledgers from which a user’s wallet address can easily be viewed using a blockchain explorer.
Also Read:
What is a layer 2 blockchain?
So, how can blockchains ensure that user privacy is safeguarded in such a scenario? That’s where ZK Proofs come in!
What are ZK Proofs?
ZK Proofs are a way of authenticating data without revealing the data itself. This concept is designed to ensure that the Prover (whose data is to be authenticated) does not unnecessarily share the data with the Verifiers (the nodes). At the same time, the Verifiers can ascertain that the Prover’s the data is valid.
Since the Verifier does not know the actual information being verified — they only know that the data is true — these are called ‘Zero-Knowledge Proofs’.
How do ZK Proofs work?
This is a very intriguing concept, so let us understand it with an example. Think of this consensus mechanism as the process of protecting a secret. Alice knows a secret (Prover) which needs to be verified by Bob, Charles, Dylan, and Eunice (Verifiers). But she can’t tell the verifiers what the secret is.
In such a situation, the four verifiers will tell Alice to perform specific tasks which she can only execute if she knows the secret. If she completes them, the verifiers automatically know that Alice’s secret is true without knowing the secret itself. The tasks act as ZK Proofs for the verifiers.
If Alice were to keep guessing, the other four would catch her in a lie while testing her with predefined tasks. This works in person – when Alice is carrying out the tasks before the four verifiers. However, a blockchain is a distributed network, and the Prover will most likely never interact with the Verifiers. So, what happens then?
Also Read: Explained | Coin Burning: How is it done & why?
In that case, we can add a camera recording to this mix — the Verifier sees Alice perform these tasks and then decides whether she knows the secret or not. And to ensure complete fairness, dice are also introduced to randomise the tasks.
The Verifiers ask Alice to roll a dice and choose a task based on the number she rolls. If this were to be recorded on a camera and shown to verifiers, they would believe it as Alice was made to pick a task randomly, and she still completed it successfully. It is worth noting that even new verifiers wouldn’t have to know her secret to believe that she knew it.
What are the types of ZK Proofs?
There are two types of ZK Proofs:
• Interactive ZK Proofs: When the Prover and Verifiers interact with one another to establish the validity of data, the tasks are witnessed in person. These are called ‘interactive zero-knowledge proofs.’ With respect to our above example, Alice’s interaction with Bob, Charles, Dylan, and Eunice falls under interactive ZK Proofs.
• Non-interactive ZK Proofs: Sometimes, the Prover and Verifiers do not interact at all. Instead, they agree with the verdict of a trusted party, thus the term ‘non-interactive zero-knowledge proofs.’ With respect to our example, using the camera recording to prove Alice’s knowledge of the well-guarded secret falls under the non-interactive ZK Proof umbrella. The camera recording is the third party they trust.
Also Read: Explained | Why are Indian Web 3.0 and DeFi projects moving to Dubai?
The technology that uses the concept of ZK Proofs to power its consensus mechanism is called the Zero-Knowledge Succinct Non-Interactive Argument of Knowledge aka zk-SNARK.
ZCash is one of the most noteworthy projects that use zk-SNARKs to guarantee user privacy. When transactions are processed on ZCash, the blockchain only knows the transfer amount and the sender/receiver destinations. Actual identities remain completely shielded. This technology allows blockchains to maintain complete anonymity whilst ensuring a secure and tamper-proof transaction.