-
Notifications
You must be signed in to change notification settings - Fork 650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for BLS12-381 curve operations (EIP-2537) #1927
Comments
implementations exist in |
Would |
anyone touching this issue should be aware there are two "BLS" (!) One is a signature scheme and one is a particular elliptic curve. The signature crypto in eth2 uses the BLS signature scheme (that is efficiently aggregatable) on top of the EIP-2537 adds precompiles for elliptic curve operations over As far as I can tell the curve ops are not exposed in the bindings we use (should be here: https://github.com/ChihChengLiang/milagro_bls_binding/blob/master/src/lib.rs#L146) but if poke thru to the underlying library, it looks like they could be. with some possible coordination w/ sigma prime who maintains the rust bindings... |
if we wanted a more direct binding, i believe these are accurate implementations of the precompiles in Rust: https://github.com/matter-labs/eip1962/blob/master/src/public_interface/eip2537/mod.rs i can find a link to the bindings going into Geth as well if we want |
given how lightweight the wrapper looks in |
We historically made Without having any context on the actual code part, this pattern might be appropriate here as well. An |
Yep, we started w/ something in this direction here: https://github.com/ethereum/trinity/blob/master/eth2/_utils/bls/__init__.py That module could definitely be clean up and factored out into a separate library if we think its worthwhile. |
Looks like #1933 has some steps toward BLS support, though that seems to not be in the Berlin roadmap anymore. |
What is wrong?
The EIP defines nine pre-compiles that Py-EVM currently does not support.
How can it be fixed
Need to dig into the EIP to find out how to add support for this.
The text was updated successfully, but these errors were encountered: