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

Enhancement: Introducing Dynamic FRI Folding Schedules #212

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

0xkanekiken
Copy link
Contributor

@0xkanekiken 0xkanekiken commented Aug 28, 2023

This PR addresses a part of #39 introduces a significant enhancement to the FRI layer-building process, allows more flexibility and control over the folding process during proof generation. The core idea is to define a custom schedule, essentially a sequence of folding factors, that will be applied in subsequent FRI rounds. This dynamic approach can coexist with the traditional constant folding method and is abstracted away behind an enum FoldingSchedule.

  1. Introduction of Dynamic FRI Folding Schedules:

    • a custom FoldingSchedule::Dynamic could be defined with a vector of folding factors. These factors will be applied in the order provided during the FRI folding process.
    • The prover supports both the traditional FoldingSchedule::Constant and the new dynamic schedule, ensuring backward compatibility.
  2. Streamlined FRI Layer Building:

    • Unified logic for handling both constant and dynamic schedules
    • Update FriOptions struct, Fri prover to handle both the schedules
    • Broke the monolithic verify_generic method into verify_layer which verify each fold and verify_remainder to handle the FRI remainder verification

TODO:

  • Update documentation of updated methods and modules
  • Add extensive unittests for dynamic folding schedule

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants