Specify Groth16 adapted to RelaxedR1CS and fork arkworks Groth16 adapting it into that design
arnaucube opened this issue · 2 comments
@levs57 has suggested modifying Groth16 to adapt it to RelaxedR1CS, which not only would have less overhead than the current approach, but also seems to have benefits regarding the commitment openings of cm(E), cm(W)
.
Not for the milestone https://github.com/privacy-scaling-explorations/folding-schemes/milestone/1 , but for those usecases where Decider's proving time is crucial, @levs57's approach will perform much better than the in-circuit RelaxedR1CS checker approach (but the latter is more modular in terms of being able to use any R1CS-based proving scheme for the Decider without needing to adapt each one, but has the ~3x overhead).
The idea of this issue is to track progress on the specification of Groth16 adapted to RelaxedR1CS and it's implementation, which probably would be a fork of arkworks Groth16 repo, which @levs57 already sketched. Once ready, we would need to fork arkworks Groth16 implementation to addapt it to @levs57's design.
@levs57 Could you post somewhere the sketch of how we can modify Groth16 to support a relaxed R1CS? There was a discussion going on at PSE ZK Summer Program on how Nova on Groth16 would look like. I'm really curious!