The concept of zero-knowledge proofs has been gathering a lot of hype across various use cases and this can be attributed to their potential to enhance security, protect user privacy and support the scaling of layer 2 networks.
In this article, we will discuss a popular type of zero-knowledge proof called zk-SNARKS.
zk-SNARKS is an acronym for Zero-Knowledge Succinct Non-Interactive Arguments Of Knowledge. It’s a proof construction where a prover proves to the verifier that they possess a piece of certain information without interaction between the verifier and prover.
What are Zero-Knowledge Proofs
The concept of Zero-Knowledge Proof is based on the concept of argument systems. An argument system involves a prover and verifier which can be denoted as P and V.
Imagine there is a public arithmetic circuit ( C ), which contains 2 inputs ( X, W). This can be expressed as C( X, W). X is a list of n elements in a field and W is a list of m elements in a field.
In the possession of the prover is ( X, W), while the verifier has only ( X) and doesn’t know the identity of W. The prover tries to prove to the verifier that he knows W without showing him W and does this via mathematical computation. Only someone who knows the identity of W can solve this computation, if the prover solves this computation, then he has convinced the verifier that W exists.
A zero-knowledge proof must meet the following three requirements:
- Completeness: If the statement is true, then the verifier would be convinced of the statement of the prover.
- Soundness: The prover can only prove the existence of the statement if the statement is actually true.
- Zero-Knowledge: If the prover claim is accurate, the only thing the verifier knows is that the claim is valid.
There are two types of Zero-Knowledge Proofs.
- Interactive Zero-Knowledge Proof
- Non-Interactive Zero-Knowledge Proof
Interactive Zero-Knowledge Proof: The interactive zero-knowledge proofs involve repeated interactions between the prover and verifier. This type involves the verifier repeatedly challenging the prover to prove their knowledge of the secret code or information. This process is repeated until the verifier is convinced.
Non- Interactive Zero-Knowledge Proof: The 2 parties exchange a single transaction that confirms the proverb’s authenticity. This interaction is just once. zk-SNARKS is a form of Non-Interactive Zero-Knowledge Proof
zk-SNARKS is an acronym for Zero-Knowledge Succinct Non-Interactive Arguments Of Knowledge. This concept was introduced in 2012 via a paper co-authored by Eran Tromer, Alessandro Chiesa, Ran Canetti, and Nir Bitansky.
zk-SNARKS is a cryptographic primitive that allows a party ( prover) to prove it has certain information without revealing the information to the other party ( verifier). The prover only confirms the existence of a secret information to the verifier without revealing any other information beyond the existence of the secret information.
To simplify the concept of zk-SNARKS, consider this real-life scenario:
Your friend ( a verifier) wants to be convinced that you ( a prover) have a pant trouser, but without you showing him or someone else the pant trouser. To do this, you engage in a clever interaction with your friend and you provide them with some information about the pant trouser that verifies your possession of this pant trouser.
At the end of this interaction, your friend becomes convinced that you possess the pant trouser because you were able to complete the steps and answer questions only someone with the pant trouser could perform.
This scenario above is similar to the concepts of zk-SNARKS. However, in zk-SNARKS there is no continuous or regular interaction between the prover and verifier. In the case of zk-SNARKS, the prover only sends a single proof or message to the verifier.
To fully understand the concept of zk-SNARKS, let’s examine the components that make up the concept.
- Zero-Knowledge: The prover confirms the veracity of a piece of information or secret code without providing the information or revealing the code to the verifier.
- Succinct: The verifier varies the proof within a few milliseconds since the proof length is a few hundred bytes
- Non-Interactive: The prover only sends a single message to the verifier. There is no constant interaction or exchange of information
- Arguments: It’s a crypto terminology used for zero-knowledge proofs
- Knowledge: This refers to the information in the possession of the prover.
Zcash is one of the prominent application or use cases of zk-SNARKS, it applies this technology to creating shielded transactions that conceals the identity of the sender and recipient, amount, user address, and memo field.
At the time of writing, according to CoinMarketCap, Zcash (ZEC) sells at $30.11 and has a market cap value of $491,621,858
Alt text: This is a logo of zcash. Source: Wikimedia Commons.org
Another application of zk-SNARKS is Filecoin ( a decentralized storage network to store humanity‘s most important information. The Filecoin Network generates 6 to 7 million zk-SNARK proofs per day, and each proof has more than 100 million arithmetic constraints.
Alt text: This is a logo of Filecoin. Source:Bitcoin Wiki
Pros of zk-SNARKS
Below are some of the advantages and benefits of zk-SNARKS
- Privacy and Efficiency: Privacy and data security is one of the main benefits of zk-SNARKS and this is evident in its use cases. Furthermore, because zk-SNARKS does not involve extended interactions between the verifier and prover, it requires little computational power and storage processing time, hence improving the efficiency and overall performance of the blockchain.
- Interoperability: zk-SNARKS can be used across various blockchain platforms, hence allowing for seamless interactions between different networks. This interoperable feature enhances the potential for collaboration between distinct blockchain ecosystems.
- Security: The concept of zk-SNARKS is solidified on the principle of cryptography. This feature ensures a high level of security for data and transactions verified. The security of zk-SNARKS can be attributed to the complexity of the mathematical computation required to verify the identity of the secret information.
- Auditability: This feature allows for efficient auditing of transactions and data, hence fostering transparency and accountability of the blockchain.
Cons of zk-SNARKS
Although zk-SNARKS offer valuable features and unique use cases, there still exist some limitations or Cons. Some of these are :
- Complexity: The mathematical background of zk-SNARKS is complex and very difficult to understand and implement. The complex nature makes it harder for developers to integrate them correctly.
- Limited Interactions: Although these features are advantageous for privacy and efficiency, they can also be a limitation to other usecases that could require constant interactions between parties involved.
Conclusion and Future Expectations:
Zero-Knowledge Proofs and zk-SNARKS are interesting and promising cryptography concepts that have experienced massive adoption and acceptance over the years. This groundbreaking concept provides privacy and efficiency. Other advantages include Security, auditability, and interoperability.
Although there are many wins already associated with Zero-Knowledge Proofs and zk-SNARKS, the reality is that we have barely scratched the surface and this technology still warrants further research and development. However, we are confident that with zero-knowledge protocols there are new grounds to be broken.