cip | title | author | discussions-to | status | type | category | created | license |
---|---|---|---|---|---|---|---|---|
63 |
Remove BLS-12377, BLS-12381, CIP-20 and CIP-25 precompiles |
Paul Lange (@palango), Gastón Ponti (@gastonponti) |
Final |
Standards Track |
Ring 0 |
2023-07-03 |
Apache 2.0 |
Remove all precompiles related to the BLS-12377 curve (CIP-30), the BLS-12381 (CIP-31) curve, the CIP-20 and CIP-25.
This CIP proposes to remove all precompiles related to the BLS-12377 curve, the BLS-12381 curve, the CIP-20 and CIP-25.
In the context of moving Celo closer to Ethereum and reducing technical debt these precompile removals offer the opportunity to remove unused code.
The additions to Celo were proposed in the following CIPs:
Both EIP-2539 and EIP-2537 were never accepted into Ethereum and are therefore a good target for deprecation before the move to an L2. CIP-20 and CIP-25, also unused precompiles, are added as part of this deprecation CIP to be closer to Ethereum.
The following precompiles will be removed and no longer be accessible after the Gingerbread hardfork.
Address | Name |
---|---|
0x00000000000000000000000000000000000000F3 |
ed25519Verify |
0x00000000000000000000000000000000000000F2 |
bls12381G1Add |
0x00000000000000000000000000000000000000F1 |
bls12381G1Mul |
0x00000000000000000000000000000000000000F0 |
bls12381G1MultiExp |
0x00000000000000000000000000000000000000EF |
bls12381G2Add |
0x00000000000000000000000000000000000000EE |
bls12381G2Mul |
0x00000000000000000000000000000000000000ED |
bls12381G2MultiExp |
0x00000000000000000000000000000000000000EC |
bls12381Pairing |
0x00000000000000000000000000000000000000EB |
bls12381MapG1 |
0x00000000000000000000000000000000000000EA |
bls12381MapG2 |
0x00000000000000000000000000000000000000E9 |
bls12377G1Add |
0x00000000000000000000000000000000000000E8 |
bls12377G1Mul |
0x00000000000000000000000000000000000000E7 |
bls12377G1MultiExp |
0x00000000000000000000000000000000000000E6 |
bls12377G2Add |
0x00000000000000000000000000000000000000E5 |
bls12377G2Mul |
0x00000000000000000000000000000000000000E4 |
bls12377G2MultiExp |
0x00000000000000000000000000000000000000E3 |
bls12377Pairing |
0x00000000000000000000000000000000000000E2 |
cip20HashFunctions |
In the pursuit of reducing the differences between Celo and Ethereum, which will help us in the transition to being an L2, and as none of these precompiles has ever been invoked (used) by any transaction in all of our networks (at the time of writing this CIP), removing these precompiles is not only safe but is also going to bring our code base closer to Ethereum.
Changes to precompiles impact the execution environment and require a hard fork.
The precompiles must not be accessible at the addresses noted under "Specification" after the hardfork has been activated.
Implementations suggestion are available at celo-org/celo-blockchain#2168 and celo-org/celo-blockchain#2177
No known security considerations.
This work is licensed under the Apache License, Version 2.0.