privacy-scaling-explorations/sonobe

Meta Issue: Protogalaxy Support

winderica opened this issue ยท 2 comments

Hi there ๐Ÿ‘‹, thanks for this awesome project!

Is there any plan on implementing the in-circuit Protogalaxy verifier and decider? I am interested in picking up these if nobody is working on them. I understand that the major focus of this project is currently on Nova, but it would be much appreciated if I could have the chance to contribute to this project.

Please let me know if you have any thoughts ๐Ÿ˜„


Edit:

So let me use this issue for tracking my progress. As we aim to support multiple folding schemes, it will be beneficial if we can make some code reusable. Therefore, in addition to circuits for Protogalaxy, I am also planning to do some refactoring.

  • Use Transcript and TranscriptVar for all folding schemes (#94)
  • Protogalaxy verifier gadget (#95)
  • Circuit for Protogalaxy-based IVC
    • CycleFold (#120)
    • Connect Protogalaxy verifier with CycleFold (#123)
  • Circuit for Protogalaxy-based PCD
  • Decider circuit
  • Unify the in-circuit verification of CycleFold instances (already in main)

Hi, yes, definitely. Also, you're right with our current focus on Nova ๐Ÿ˜„

The only issue regarding ProtoGalaxy is that we haven't had time to think about it yet, but it should allow different arithmetizations (ie. not only R1CS), since it folds a function and not a concrete arithmetization. Is more a design issue, to fit the flexibility of folding the function into the library in the most flexible/modular way.

Although, the part that we have implemented uses only R1CS, so I guess that we can continue with that for the moment and at some point in the future add the abstraction of the generic function.

So yeah, if you're willing to implement the ProtoGalaxy folding circuit and the decider that's great!

Thanks! I agree with you in that we can focus on R1CS now and support customizable arithmetization in the future. Will open a draft PR once I make some progress!