fastcrypto
fastcrypto copied to clipboard
Make generic Groth16 implementation
This PR replaces the BLS12-381 Groth16 implementation with a generic implementation that uses the GroupElement
and Pairing
abstractions. This is much simpler and wraps calls to external libraries.
We can also use this for the BN254 Groth16 implementation, but it requires that we first add the BN254 construction to the supported groups.
Benchmarks have demonstrated, that the performance is unchanged.
Can we add regression tests in a different PR (with fixed bytes of vk & proofs that worked with the previous version, including of edge cases) and only afterwards submit this one? I want to make sure we are not breaking the current APIs
Added in #772.