/awesome-folding

A curated list of zero-knowledge folding schemes

Creative Commons Zero v1.0 UniversalCC0-1.0

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)

Code (software repositories)

Reference implementations

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

  • Nova-Scotia
    • This repository provides necessary middleware to take generated output of the Circom compiler (R1CS constraints and generated witnesses) and use them with Nova as a prover.
  • Lurk
  • Nova-SHA256
    • This repository provides a SHA-256 implementation utilizing Nova to repeatedly apply the SHA-256 compression function at each step.
    • The implementation utilizes SHA-256 from the bellperson library