Replies: 1 comment
-
The BLS12-377 implementation is native on BW6-761 in the sense that BLS12 base field corresponds to BW6 scalar field and all arithmetic can be done natively. If the underlying curve is not BW6 then we would have to perform non-native operations. It can definitely be done, but not very conveniently in automated manner. We use different types for native and non-native elements ( But if you are only interested in G1 curve operations, then we would definitely take a contribution. For that you would have to define BLS12-377 in https://github.com/Consensys/gnark/blob/master/std/math/emulated/emparams/emparams.go, then define the curve parameters in https://github.com/Consensys/gnark/blob/master/std/algebra/emulated/sw_emulated/params.go (take a,b from https://neuromancer.sk/std/bls/BLS12-377). Actually, I think you should be able to do it without updating gnark - the implementations should be parametric enough that accepts user-provided field and curve params. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am writing a proof that a certain relationship holds involving BLS12-377 elliptic curve group elements. Additionally, I had been hoping to use the BN254 curve with the plonk prover, so that I could use an existing trusted setup, such as the "perpetual powers of tau" or the setup done by zkSync.
However, I have found that gnark throws an error when it parses my circuit, mentioning that I must use BW6-761 because it is the outer curve of BLS12-377.
My two questions:
Many thanks-
Beta Was this translation helpful? Give feedback.
All reactions