As stated in the opening line of Nova paper, Nova is a new approach to realize Incrementally Verifiable Computation (IVC). So let’s begin to understand the IVC.
First, let's define the Incremental Computation. It involves breaking down a large, complex computation into smaller, manageable steps. In this approach, a fixed function
What happens when verifiability is added to Incremental Computation? Incremental Verifiable Computation (IVC) combines incremental computation with a verification layer. It's not just computing states
In IVC, the system verifies the transition from a previous state
Here, we explore the essential components that make this verification possible.
At the heart of IVC lies the Proof of Correctness. For each step, denoted by
In IVC, the correctness of each step forms a sequential chain. Each proof
Culminating the series of verifications is the final proof
Now that you understand IVC, let's review the recursive proofs in zero-knowledge proofs.
This is the diagram of a recursive two-levels SNARK which consists in an inner and an outer proof system. For example, suppose we want to combine a fast
Inner Proof System:
- Public input:
$x$ - Witness:
$w$ At this level, the SNARK prover$P_1$ is tasked with demonstrating knowledge of a witness$w$ that satisfies the computation$C(x, w) = 0$ and generates an initial proof$\Pi_1$ .
Outer Proof System:
- Public input: Verifying parameters
$vp$ and$x$ - Witness:
$\Pi_1$
In the outer layer, a different SNARK prover
The process effectively demonstrates not only the validity of the initial computation
This is the concept of the recursion, unlike IVC, which is characterized by its step-wise computation and verification process. So next, let's think about SNARK-based IVC naively.
The diagram shows a Naive SNARK-Based IVC. At each step
There is an augmented circuit that integrates both
In the final verification step, the SNARK verifier
Problem of Naive SNARK-Based IVC
If the naive SNARK adopts a general pairing-based approach, this method significantly increases recursion overhead and extends the overall proving time. In a pairing-based approach, the internal verifier
Recursion overhead
The recursion overhead refers to the additional steps required that the prover must prove in addition to proving the function
For Example, zkPairing and circom-pairing are the works done by the 0xParc, describing an experimental implementation and benchmarking for verifying pairings in Circom circuit.
From their benchmarking, for example, the Optimal Ate pairing metric cites a Proving time of 52 seconds and a Proof verification time of 1 second. From the perspective of Naive SNARK-Based IVC, this implies that each step will take at least 52 seconds for Proving time and 1 second for Proof verification time. As the number of IVC steps increases to 100 or even 1000, this would lead to substantial time consumption and overhead. Therefore, this approach may not be the most efficient for implementing IVC.
So the next topic is what would be the outcome of adopting FRI commitments instead of polynomial commitments and pairings in ZKP schemes? Such schemes, utilizing FRI commitments, are known as zkSTARKs or the FRI-Family. zkSTARKs are known for their lack of a trusted setup requirement and their quantum resistance, a characteristic owing to the use of hash functions in Merkle tree commitments.
Another feature is the ease of recursive proofs. For instance, in Plonky2, despite the heavy computational demand due to Merkle Proofs constructed with hash functions, Plonk's custom gates enable the streamlined execution of recursive proofs in poly-log.
Individual proofs are independent, making them suitable for parallelization. Some zkVM projects prefer it for its fast recursive proofs and ease of parallelization.
However, a disadvantage is the expansion in proof size attributed to FRI's Merkle Proofs. And while general zkSNARKs typically leverage 256-bit BN256 elliptic curve cryptography for security, zkSTARKs opt for a 64-bit Goldilocks field, supplemented by a 128-bit extension field, to enhance CPU performance. This choice of a smaller finite field, though, may raise concerns regarding the level of security guaranteed by the Schwartz-Zippel lemma.
Since Halo2 has also been actively used recently, I would like to mention about how it works. In Halo 2, the expensive part of the verification is deferred to something called an accumulator, so that instead of verifying SNARK at each step of the IVC, it would only need to be checked once at the end.
Specifically, Accumulator can take two IPA (Inner Product Argument) proofs and compress them into a single IPA proof. This compressed proof maintains the same validity as the original two proofs while being accumulated at each step.
At each step
The augmented circuit integrates both
The final process involves the SNARK verifier
Accumulation compress two SNARK proofs, such as the Inner Product Argument (IPA), into one effectively. This method reduces the need for pairing at each step, thereby enhancing the efficiency of the overall verification process.
While the accumulation approach in Halo2, which compresses commitments like the Inner Product Argument (IPA) into a single one, effectively addresses some inefficiencies, it still necessitates generating SNARK proofs at each IVC step.
Unlike the traditional accumulation method, Folding scheme can fold the two instances of arithmetization they are committed. In Nova, it can fold the two R1CS instances into one.
In this picture,
Here are some of Nova's features.
- Adoption of Folding Schemes, making two NP(R1CS) instances into one.
- The verifier circuit is constant in size, dominated by two group scalar multiplications
- The prover's work is primarily composed of two multi-exponentiations.
- Does not require FFTs and Trusted Setup.
- Nova is 100 times faster than plonky2.
Since the invention of Nova Folding, there has been an evolution in the Folding Scheme landscape. The following is a brief introduction of their features.
- Sangria: Adapts Nova's Folding scheme for PLONK circuits.
- SuperNova: Generalizes Nova to allow non uniform functions at each step.
- HyperNova: R1CS, PLONKish, and AIR can be represented as Customizable Constraint Systems (CCS) and do folding CCS. More efficient than Nova and Sangria.
- ProtoStar: Extends Nova and Sangria's efficiency in recursive circuits, supports Plonkish circuits, and enables non-uniform IVC.
- ProtoGalaxy: Enables efficient handling of multiple instances with minimal verifier effort, based on the ProtoStar model.
- CycleFold: Realizes IVC with a minimal elliptic curve approach, reducing complexity and enhancing the efficiency of recursive SNARK arguments.
- KiloNova: Utilize generic folding schemes, delivers a non-uniform PCD system that optimizes multi-party computations with zero-knowledge efficiency.
- LatticeFold: The first lattice-based folding protocol to provide post-quantum resistance and have the same performance as Hypernova.
- Advances in the Efficiency of Succinct Proofs - Ying Tong
- ZKP MOOC Lecture 10: Recursive SNARKs
- Nova: Recursive Zero-Knowledge Arguments from Folding Schemes
- From Folding Hype to Multivariate Setting Rescue. A 2023 lookback | CPerezz | PROGCRYPTO
- An incomplete guide to Folding: Nova, Sangria, SuperNova, HyperNova, Protostar
- zkStudyClub: Supernova (Srinath Setty - MS Research)
- CCS & HyperNova with Srinath - Folding Schemes FTW
- Nova: Recursive Zero-Knowledge Arguments from Folding Schemes - Srinath Setty
- (Workshop) [Super] Nova [Scotia]: Unpacking Nova
- zkPairing
- ZK7: Latest developments in Halo2 by Ying Tong Lai
- The Halo2 Book
- Scalable, transparent, and post-quantum secure computational integrity
- Introducing Plonky2