Awesome-Folding
A curated list of awesome resources related to zero-knowledge folding schemes. Folding schemes are a revolutionary approach to incrementally verifiable computation (IVC), fundamental to efficient and correct execution of computational steps in Zero-Knowledge Proofs.
Writings (papers, blog posts, etc)
Prequels
Arithmetization
A gentle introduction to Plonk-like arithmetization, lookup arguments and the birth of lookup arguments in the Plonk world.
Spartan
The final SNARK used in Nova (only using MSMs)
IVC and PCD
Halo
The prototype of the delayed proving approach which Nova puts on steroids.
Aggregation schemes
Aggregation schemes show how to extend the aggregation ideas in Halo to any additively-homomorphic PC scheme, and construct PCD from these.
Accumulation schemes
Accumulation schemes are a generalization of both Halo-style aggregation and Nova-style folding schemes that allow analyzing these ideas in a single system.
The papers below show how to use efficient accumulation schemes for certain predicates (e.g., polynomial commitments) to construct efficient PCD schemes.
Classic Nova
Classic works on the Nova proof system, including seminal papers and accompanying presentations.
Nova Extensions (without high-degree gates)
Extensions to the Nova proof system that explore PCS in terms of linear codes, folding, and other concepts.
HyperNova / ProtoStar : The next generation (with high-degree gates)
-
Customizable constraint systems for succinct arguments
This paper introduces customizable constraint system (CCS), a generalization of R1CS that can simultaneously capture R1CS, Plonkish, and AIR without overheads.
-
HyperNova: Recursive arguments for customizable constraint systems
This paper introduces HyperNova, a recursive argument for proving incremental computations whose steps are expressed with CCS. The prover’s cost at each step is dominated by a single multi-scalar multiplication (MSM) of size equal to the number of variables in the constraint system, which is optimal when using an MSM-based commitment scheme.
-
KiloNova: Non-Uniform PCD with Zero-Knowledge Property from Generic Folding Schemes
This paper build a non-uniform ZK-PCD scheme (KiloNova) from the generic folding scheme and improve its performance with some optimization techniques, such as circuit aggregation and decoupling.
-
Proof-Carrying Data from Multi-folding Schemes
This paper generalizes HyperNova to support folding multiple instances of CCS and multiple instance of LCCS into 1 LCCS, in contrast to the original work which folds 1 CCS and 1 LCCS into 1 LCCS.
-
ProtoStar: Generic Efficient Accumulation/Folding for Special Sound Protocols
We provide a generic, efficient accumulation scheme for any (2k-1)-move special-sound protocol with a verifier that checks l degree-d equations. The accumulation verifier only performs k+2 elliptic curve multiplications and k+d+O(1) field/hash operations.
-
ProtoGalaxy: Efficient ProtoStar-style folding of multiple instances
Building on ideas from ProtoStar, we construct a folding scheme where the recursive verifier's "marginal work", beyond linearly combining witness commitments, consists only of a logarithmic number of field operations and a constant number of hashes. Moreover, our folding scheme performs well when folding multiple instances at one step.
Deep Space Nine (New commitment schemes, new lookup & proof arguments)
Code (software repositories)
Reference implementations
-
microsoft/nova
-
lurk-lab/arecibo: This repository is a fork of the original. It's an incubator for experimenting with more advanced variants of the original software and working out the kinks in them
Teaching / experimental implementations
Code Explorations
Code implementations and explorations related to the Nova proof system, including benchmarks, specifications, and experimental versions.
Other resources (podcasts, etc)
Podcast episodes
Talks & Lectures
Zuzalu talks
Articles
Forums
Applications