Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement SuperNova #283

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Commits on Jun 8, 2024

  1. feat: implement SuperNova

    This implements [Supernova](https://eprint.iacr.org/2022/1758), allowing:
    - a 'pay-as-you-go' cost structure for folding operations, through the SuperNova folding scheme,
    - a final SNARK that efficiently compresses an instance of this folded proof, through batching techniques.
    
    References:
    - the [blog post](https://blog.lurk-lang.org/posts/arecibo-supernova/#technical-release-note-supernova-protocol-integration-into-nova) goes into our construction,
      and links to two more specialized notes on [the `CompressedSNARK` for Supernova](https://hackmd.io/@adr1anh/BJw1g0aBT) along with our variant of the [public input padding issue](https://hackmd.io/@adr1anh/Sy08YaVBa).
    - the Readme at `src/supernova/Readme.md`
    
    This backports the following Arecibo PRs:
    - argumentcomputer/arecibo#2
    - argumentcomputer/arecibo#3
    - argumentcomputer/arecibo#10
    - argumentcomputer/arecibo#16
    - argumentcomputer/arecibo#23
    - argumentcomputer/arecibo#30
    - argumentcomputer/arecibo#28
    - argumentcomputer/arecibo#41
    - argumentcomputer/arecibo#45
    - argumentcomputer/arecibo#50
    - argumentcomputer/arecibo#56
    - argumentcomputer/arecibo#51
    - argumentcomputer/arecibo#72
    - argumentcomputer/arecibo#92
    - argumentcomputer/arecibo#95
    - argumentcomputer/arecibo#97
    - argumentcomputer/arecibo#101
    - argumentcomputer/arecibo#110
    - argumentcomputer/arecibo#106
    - argumentcomputer/arecibo#112
    - argumentcomputer/arecibo#114
    - argumentcomputer/arecibo#119
    - argumentcomputer/arecibo#120
    - argumentcomputer/arecibo#127
    - argumentcomputer/arecibo#123
    - argumentcomputer/arecibo#131
    - argumentcomputer/arecibo#174
    - argumentcomputer/arecibo#175
    - argumentcomputer/arecibo#182
    
    Co-authored-by: WYATT <[email protected]>
    Co-authored-by: Hanting Zhang <[email protected]>
    Co-authored-by: Ming <[email protected]>
    Co-authored-by: porcuquine <[email protected]>
    Co-authored-by: Samuel Burnham <[email protected]>
    Co-authored-by: Matej Penciak <[email protected]>
    Co-authored-by: Adrian Hamelink <[email protected]>
    8 people committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    f65fee7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5231fbc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    754fdb2 View commit details
    Browse the repository at this point in the history
  4. chore: removing all uneeded public modifiers

    - removing public modifier in  src/spartan/ppsnark.rs
    
    - removing public modifier in  src/spartan/sumcheck/mod.rs
    
    - removing public modifier in src/spartan/mod.rs
    
    - removing public modifier in src/spartan/polys/masked_eq.rs
    
    - removing public modifier in src/supernova/mod.rs
    huitseeker committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    f9970d9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b9b3581 View commit details
    Browse the repository at this point in the history
  6. Fix docs (microsoft#249)

    * Refactor 'CircuitShape' references to 'R1CSWithArity'
    
    - Implemented terminology update: all occurrences of `CircuitShape` have been replaced with `R1CSWithArity`
    - Corrected method return descriptions to reflect changes in terminology
    - Amended related notes and comments to maintain consistency and clarity in the codebase.
    
    Leftover from argumentcomputer/arecibo#235
    
    * Fix Supernova module documentation and code comments
    
    - Update comments for struct `PublicParams` in `mod.rs` to reflect the correct association with `R1CSWithArity`.
    - Alter codeblock tag in `Readme.md` from `ignore` to `text`.
    - Revise mathematical formula in `Readme.md` for the current iteration of $F$ by including brackets around `0` in the base case inputs.
    huitseeker committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    0d6c34a View commit details
    Browse the repository at this point in the history