Skip to content

Proof of concept implementation of sumcheck over fields of small characteristics.

License

Notifications You must be signed in to change notification settings

ingonyama-zk/smallfield-super-sumcheck

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

super-sumcheck: Parallelising Sumcheck Prover

Super-sumcheck is aimed at exploring algorithmic improvements to the sumcheck prover to run it in a fully parallelisable and memory-efficient manner. We implement two algorithms for running sumcheck prover for arbitrary statements in MLE polynomials (read the full description here):

  • Algorithm 1: Collapsing arrays
  • Algorithm 2: Precomputations

Highlights

super-sumcheck enables running sumcheck prover for any "gate" equation in MLE polynomials and hence provides a proof-system and arithmetisation agnostic sumcheck prover backend. The two algorithms fall in different ends of the performance spectrum, algorithm 1 is less-memory intensive but consumes more computation cycles, algorithm 2 is memory intensive but allows offloading lot of work to pre-computation.

Roadmap

This is being actively developed and is not yet ready for production. We intend to follow the following roadmap to take this project ahead:

  • Reference implementation of the sumcheck prover with:
    • Algorithm 1: Collapsing arrays
    • Algorithm 2: Precomputations
  • Use merlin library for computing challenges as per the Fiat-Shamir heuristic
  • Multi-threading in both algorithms
  • Benchmark the two algorithms and analyse space-time trade-offs in them
  • Benchmark this implementation against other sumcheck implementations
  • Implement a commitment scheme for MLE polynomials for final verifier evaluation check

Example

WIP

License

About

Proof of concept implementation of sumcheck over fields of small characteristics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%