Skip to content

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

Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
…ule enum

Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
…edule

Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
Signed-off-by: 0xKanekiKen <100861945+0xKanekiKen@users.noreply.github.com>
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