Skip to content

Commit 7cf627f

Browse files
refcellemhanemeyer9
authored
Isthmus: EIP-2537 (#553)
* chore: eip-2537 * chore: eip-2537 * fix: doctoc * fix: fill in todo * feat: bls precompile input size limits and specify acceleration (#570) --------- Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com> Co-authored-by: Julian Meyer <julianmeyer2000@gmail.com>
1 parent 3edaaa0 commit 7cf627f

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

specs/protocol/isthmus/exec-engine.md

+18
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
- [Transaction Simulation](#transaction-simulation)
2020
- [Deposit Requests](#deposit-requests)
2121
- [Block Body Withdrawals List](#block-body-withdrawals-list)
22+
- [EVM Changes](#evm-changes)
2223
- [Block Sealing](#block-sealing)
2324
- [Engine API Updates](#engine-api-updates)
2425
- [Update to `ExecutableData`](#update-to-executabledata)
@@ -149,6 +150,23 @@ deposit type requests may always be excluded.
149150

150151
Withdrawals list in the block body is encoded as an empty RLP list.
151152

153+
## EVM Changes
154+
155+
Similar to the `bn256Pairing` precompile in the [granite hardfork](../granite/exec-engine.md),
156+
[EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) introduces a BLS
157+
precompile that short-circuits depending on input size in the EVM.
158+
159+
The input size limits of the BLS precompile contracts are listed below:
160+
161+
- G1 multiple-scalar-multiply: `input_size <= 513760 bytes`
162+
- G2 multiple-scalar-multiply: `input_size <= 488448 bytes`
163+
- Pairing check: `input_size <= 235008 bytes`
164+
165+
The rest of the BLS precompiles are fixed-size operations which have a fixed gas cost.
166+
167+
All of the BLS precompiles should be [accelerated](../../fault-proof/index.md#precompile-accelerators) in fault proof
168+
programs so they call out to the L1 instead of calculating the result inside the program.
169+
152170
## Block Sealing
153171

154172
[EIP-7251](https://eips.ethereum.org/EIPS/eip-7251) introduces new request type `0x02`, the `CONSOLIDATION_REQUEST_TYPE`.

specs/protocol/isthmus/overview.md

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ This document is not finalized and should be considered experimental.
1717
- [Pectra](https://eips.ethereum.org/EIPS/eip-7600) (Execution Layer):
1818
- [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702)
1919
- [Span Batch Updates](./derivation.md#span-batch-updates)
20+
- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537)
2021
- [EIP-2935](https://eips.ethereum.org/EIPS/eip-2935)
2122
- [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002)
2223
- The EIP-7002 predeploy contract and syscall are not adopted as part of the OP Stack.

0 commit comments

Comments
 (0)