Closed winderica closed 2 months ago
@winderica is this indeed ready for review? If so, i'll go for it!
@CPerezz Yes it is! Let's go ahead 😄
Hey, sorry for being inactive for a while, and thanks for the detailed comments @CPerezz! Unfortunately I have had a lot to handle recently, but I will be back in about a week to address the comments!
@winderica take all the time you need. I can try to keep rebasing your branch such taht you don't have a ton of work in the future.
Depends on #120.
This is an implementation of the IVC scheme based on Protogalaxy, which is compiled from Protogalaxy "the folding scheme" by leveraging CycleFold.
Specifically, this PR implements:
AugmentedFCircuit
built uponAugmentationGadget::prepare_and_fold_{primary, cyclefold}
.ProtoGalaxy
struct that satisfies theFoldingScheme
trait.prove_step
method, for off-loading EC operations to the secondary curve.RelaxedR1CS
trait converted from the originalRelaxedR1CS
struct, which can now check satisfiability of witness-instance pairs for both Nova and ProtoGalaxy.Note that there are still two features missing in ProtoGalaxy-based IVC, but I will try to implement them in the incoming PRs.
This PR wouldn't be possible without the current Nova-based IVC. Thanks a lot for the amazing work from all of you 😇!