Is there more to zk-SNARKs?
Privacy is a fundamental human right, but most times we find ourselves in situations where we have to give out more information that should be private.
Maybe you want to interact with a website or an application to use a certain service.
Like, what are the odds you can get a loan from a bank without revealing your financial history?
Blockchain technology has created a transparent world of decentralization that eliminates the central authority/entity.
So, it is a technology accessible and workable to everyone without the interference of a middleman.
The transactions executed on the blockchain are transparent.
This technology makes the transactions visible with the public address of whoever carried out the transaction.
Transparency in the blockchain is good as it is a system of recording data in a way that makes it difficult to change or cheat the network.
This means that, unlike the central entity, it comes with a certain limitation, making it prone to cyber-attacks from hackers.
What is Zero-Knowledge proof?
Zero-Knowledge proof is cryptographic proof, meaning it’s encrypted.
With this, I can prove I have certain information /knowledge without telling you what that information /knowledge is.
Shafi Goldwasser and Silvio Micali described the concept of a zero-knowledge proof in a 1985 MIT article.
They established they could prove certain qualities of a “number” without revealing the number or any more information about it.
A verifier and the prover are assigned to each transaction and the statement they keep hidden is known as a witness.
The basic goal of these proofs is to expose as little information between the two parties as workable.
The prover attempts to prove something to the verifier without informing the verifier anything else about the data.
By this, the prover shows they can calculate anything without exposing the input or the computing method by delivering the end output.
The verifier just knows about the output.
For a zero-knowledge proof to be valid, three things must occur:
1. Completeness: If what the prover is saying is true, he should be able to convince the verifier.
2. Soundness: If the information the prover is trying to declare is false, he cannot convince the verifier.
3. Zero-Knowledge: If what the prover is saying is true, the verifier shouldn’t know what the data/statement is.
Types of Zero-Knowledge Proof
There are two types of Zero-Knowledge Proof:
1. Interactive: means performing /carrying out a series of actions and tasks to convince the verifier of a certain truth or fact.
This type of zero-knowledge protocol involves back-and-forth communication between the prover and the verifier.
Hence, it is referred to as – Interactive Zero-Knowledge proof.
2. Non-interactive: involves non-communication between prover and verifier.
Here, provers and verifiers just have to exchange one proof, making it a – Non-interactive Zero-Knowledge proof.
Zero-knowledge Succinct Non-Interactive Argument of Knowledge.
Zero-knowledge proofs as said earlier may be used to demonstrate that one has certain knowledge without giving any information about that knowledge.
Zero-knowledge proofs are commonly integrated within projects that need/prioritize their user’s privacy and security.
ZK proofs, for example, can be used by authentication systems to authenticate credentials or identities without revealing them directly.
For instance, it can be used to verify that a person has a password to a computer system without having to reveal the password.
The Strange Cave of Ali Baba.
In 1990, a document was published that introduced the concept of ZK proofs.
The document was titled: How to Explain Zero-Knowledge Protocols to Your Children, which was by cryptographer Jean-Jacques Quisquater, alongside other collaborators.
The Ali Baba’s Cave example comprises a ring-shaped cave with a single entrance and a magical gateway that separates the two side pathways.
You must utter the proper secret words if you are to pass through the magical gateway. The game was played by two characters, Jenny and john.
Note: Jenny is the prover and John is the verifier.
Jenny wants to show John that she understands the secret phrases without telling him what they are.
She enters the cave before reaching the end of one of the two pathways to attain the same goal.
Jenny then chooses to enter the cave by the left path, while John waits at the cave’s entrance.
In this situation, the condition is that John wants Jenny to exit the cave by a different route i.e. the right route.
Jenny now opens the magical gateway and follows John’s preferred path because she knows the secret words.
Now John may repeat the process as many times as he wants to make sure Jenny really knows the secret phrases and is not in luck.
As a result, Ali Baba’s Cave demonstrates zero-knowledge proofs.
Zero-Knowledge Proof can be used to prove ownership of certain knowledge without revealing any information about it.
What does “SNARKs” mean?
SNARK is an acronym that stands for Succinct Non-interactive Argument of Knowledge
Succinct: this means that the proofs are small and easy to verify. It shows that they are less in size and can be verified fast.
Non-interactive: refers to the fact that the prover and the verifier have little or no interaction. There is no back and forth communication between the prover and the verifier.
Argument: the argument is just a formalization between the verifier and prover for talking about the proofs.
Knowledge: this means that the prover proves that he has the evidence without disclosing it to the verifier.
Advantages of zk-SNARKs
- They don’t leak information.
It uses cryptography technology, to hide users’ sensitive information by making it encrypted.
So, when a transaction occurs between two peers, you can’t actually see what transpired between both peers. Making it highly private and secure.
- They are tiny and easy to verify.
One of the advantages of the zk-SNARKs is that they can reduce the size of the blockchain making it easier to verify transactions.
Take mina protocol, for instance, this blockchain is just about the size of a couple of tweets.
- No back and forth communication.
There’s little or no intercommunication between the prover and verifier.
- Proofs of knowledge.
They prove the validity/authenticity of knowledge when carrying out certain tasks without disclosing that knowledge.
- zk-SNARKs can help in achieving a “trustless environment”.
This means that the participants involved do not need to know or trust each other or a third party for the system to function.
Examples of Blockchains that implement ZK-SNARKS
Was the first blockchain to implement zk-SNARKs, its design primarily focuses on zero-knowledge privacy.
The privacy of Zcash is derived from the fact that transactions in the network can remain encrypted but still be verified as valid by using zero-knowledge proofs.
This blockchain refers to itself as the world’s lightest blockchain, which is about 22kb.
This is made possible through zk-SNARKs technology, which lets it stay small, private, and secure.
PS: Upcoming Blockchain applications looking at implementing users’ privacy and security could adopt and leverage the zk-SNARKs mechanism as they cannot reveal information regarding the user.