TL;DR: An article to learn the most basic topics about Zero Knowledge cryptography.
Sign up for our quarterly State of ZK report
In a zero knowledge proof, the prover can prove to the verifier that they know a secret without revealing it. This validity of the proof is achieved through a computational process. The proof must have three characteristics:
1. Statistical Soundness: The ZKP should allow the verifier to refute the proof if the information provided by the prover is false.
2. Statistical Completeness: This property of ZKPs allows the verifier to verify that the prover is telling the truth.
3. Zero Knowledge: This characteristic sets ZKPs apart from other proving methods, and it refers to the ability of the prover to prove they are telling the truth without revealing the secret.
There are several types of zero knowledge proofs, including:
Interactive proof systems: In these systems, a prover and a verifier engage in a back-and-forth conversation in which the prover attempts to convince the verifier of the truth of a statement without revealing any additional information.
Non-interactive proof systems: In these systems, the prover creates a proof and sends it to the verifier, who checks the evidence without any further interaction with the prover.
Succinct non-interactive arguments of knowledge (SNARKs): These are zero knowledge proof systems that allow for concise and efficient proofs, making them useful for applications where proof size is a concern.
Proofs of knowledge: These are zero knowledge proof systems that not only allow a prover to demonstrate the truth of a statement to a verifier but also demonstrate a certain level of knowledge or understanding of the statement.
Proofs of authenticity: These are zero knowledge proof systems that allow a prover to demonstrate the authenticity of a statement or piece of information to a verifier without revealing the contents of the statement.
Proofs of membership: These are zero knowledge proof systems that allow a prover to demonstrate that they possess a specific piece of information (such as a password) without revealing the actual data to the verifier.
Zero knowledge proofs offer developers two main benefits. One is privacy. As we have discussed before, proving a secret without revealing it is one of the main characteristics of ZKPs. This feature could solve privacy issues that exist in the majority of blockchain protocols today.
The other benefit of using ZKPs is the property of succinctness. Take for example the Mina Protocol, which thanks to zero knowledge proofs, can maintain a constant weight of 22 KBs regardless of the amount of data the protocol handles. Also, other projects using SNARKs, such as Polygon Hermez (the team behind Polygon’s zkEVM), can prove that tens of thousands of transactions are executed correctly with just one single proof, reducing the cost of verifying large amounts of computation on L1 to a fixed cost ~ 500,000 gas.
The security of a zero knowledge proof depends upon the underlying cryptographic assumptions and the specific construction of the evidence. ZKPs are generally considered very secure, based on complex mathematical problems believed to be computationally infeasible to solve. However, it is important to note that no cryptographic system is entirely secure. Some zero knowledge proofs may be vulnerable to attack if they are not properly implemented or if new mathematical breakthroughs are made.
Overall, zero knowledge proofs can provide a solid level of security. Though, it is always important to carefully evaluate the specific security guarantees of any cryptographic system before using it.
Although the field of Zero Knowledge is still growing, there are already several accessible resources you can use to get immersed in the space and learn to build using ZKPs.
Among all the resources available, here are some of the highest quality:
ZK Whiteboard Sessions: hosted by the ZK Podcast, this is a series of hands-on videos with some of the top voices in the field of ZK allowing you to get familiar with the concepts needed to build using ZKPs.
ZK Hack: This is the hub to learn about ZK. They have a Discord with study clubs covering all levels of ZK knowledge, as well as a yearly event where people can solve puzzles and even find jobs in the industry.
Currently, ZKPs are being used in the blockchain industry for several purposes. Two prominent use cases are Decentralised Identification (DID) and shielded token transfers.
There exists a movement of projects claiming to use ZKPs to achieve scalability. Although they use similar proving methods, they do not use Zero Knowledge. In other words, the proofs do not have the privacy-preserving characteristics of ZKPs, but instead use only the succinctness properties.
Zero knowledge proofs were first introduced by Shafi Goldwasser, Silvio Micali, and Charles Rackoff in their 1985 paper, The Knowledge Complexity of Interactive Proof Systems. In this paper, they introduced the concept of an interactive proof system. A system in which a prover and a verifier engage in a series of interactions to verify the prover’s knowledge of a specific piece of information, without revealing the actual value of that information.
Since their emergence, zero knowledge proofs remain an active area of research in the field of cryptography. As a result, many different variations and applications have been developed. Today zero knowledge proofs are used in various contexts including secure transactions, identity verification, and privacy-preserving data analysis.
Our blog, Privacy in Blockchain, started a series of articles covering the ZK sphere in each leading blockchain ecosystem. As per our research, here are some of the teams using Zero Knowledge Proofs:
Namada: This project aims to use the power of ZKPs to offer shielded transactions across all ecosystems including Ethereum, Cosmos, Zcash and others.
Penumbra: Penumbra is a private DEX that uses batch auctions. In other words, this DEX doesn’t reveal any information that could be used to frontrun traders.
Manta: As a Polkadot parachain, Manta is building a privacy as a service solution for the whole ecosystem. We ran an event where Moonbeam apps could leverage Manta’s privacy layer via Polkadot’s XCM.
Aztec: A Privacy based Layer 2 on Ethereum, Aztec is sunsetting Aztec Connect to concentrate resources on developing a fully programmable encrypted ZK-Rollup.
As people become more curious about ZKPs and as the field advances, there will be more questions to answer. We will keep an eye on the forums. As more questions arise, we will add them to the article.