Supporting EIP-2537 (BLS12-381 Precompiles) in the Filecoin EVM runtime #1135
snissn
started this conversation in
Enhancements - Technical
Replies: 1 comment
-
Note: @anorth started down the route of adding bls12-381 syscalls to the FVM at one point: https://github.com/filecoin-project/ref-fvm/tree/anorth/bls-syscalls. That branch may be a good starting point. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Problem
Ethereum is adding support for BLS12-381 curve operations via EIP-2537 in the upcoming Pectra upgrade. These precompiles will make it significantly easier to perform BLS signature verification and related cryptographic operations in smart contracts. This includes point addition, multi-scalar multiplication (MSM), pairing checks, and field-to-curve mappings for G1 and G2.
The Filecoin EVM does not currently support these precompiles, which will create divergence with Ethereum once Pectra goes live. As with previous cases like MCOPY or TSTORAGE, this divergence may not be immediately apparent to developers until contracts fail at runtime or during audits.
Impact
As more devs adopt tooling and Solidity versions optimized for Ethereum’s Pectra upgrade, they will naturally begin using BLS precompiles (e.g., for signature aggregation, ZK rollups, or DKG-based applications). Tools and contracts relying on
0x0b–0x11
precompiles for BLS operations will fail on the Filecoin EVM unless these precompiles are also supported.This will also limit Filecoin’s compatibility with emerging L2 frameworks, threshold signature protocols, and new primitives that expect native BLS support — all of which are critical in decentralized storage ecosystems and cross-chain protocols.
Workaround
While it is technically possible to implement BLS12-381 operations in Solidity without precompiles, doing so is extremely inefficient and impractical in most real-world scenarios. These operations involve complex field arithmetic and pairing checks that result in prohibitively high gas costs, making such implementations unsuitable for production use.
Moreover, developers will not be able to reuse or maintain compatibility with codebases designed for EVMs that support these precompiles (such as Ethereum post-Pectra). This creates fragmentation and forces developers to either fork and modify upstream code or avoid targeting the Filecoin EVM entirely for cryptographic use cases.
Solution
We should prioritize adding support for EIP-2537 BLS precompiles in the Filecoin EVM. This includes:
The implementation path is relatively well-scoped thanks to existing EIP specs and reference implementations (Rust, Geth). Adding these precompiles would future-proof Filecoin’s EVM compatibility and improve developer DX for cryptographic applications — especially those leveraging BLS-based multisigs, ZK systems, or DKGs for decentralized coordination.
@aaravm and I are actively working on this and expect to have an initial PR ready by the end of the month.
Beta Was this translation helpful? Give feedback.
All reactions