mirror of
https://github.com/logos-storage/nim-groth16.git
synced 2026-07-22 16:39:48 +00: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)