Balazs Komuves e4fdbccca6
concatenating all the remaining MSMs into one (that's always a bit faster)
currently we have 4 of them:
- 1 for the "rho term"
- 1 for the unified C1 + "projection terms"
- 2 for the cross-terms

i hope the cross-terms can be also reduced to just 1 later
2026-06-16 14:49:40 +02:00
..

"Semi-dynamic" Groth16 proofs

This is loosely based on the Dynark paper:

  • "Dynark: Making Groth16 Dynamic" by Tianyu Zhang, Yupeng Ouyang and Yupeng Zhang

See also this write-up (mostly following the paper).

Here some details are different from the paper though, and our implementation is noticeably more efficient in practice.

Different versions

We provide several slightly different versions with different tradeoffs

  • dynamic/v1: This is a version mostly following the Dynark paper (TODO: sparse convolution algorithm)
  • dyanmic/v2: This introduces some of our optimizations:
    • the projection term updates become essentially free
    • we reorder the circuit so that the changes are in a subgroup (TODO)