From 2f0a8bed002f527f6cec450edecb89887896ac87 Mon Sep 17 00:00:00 2001 From: CPerezz <37264926+CPerezz@users.noreply.github.com> Date: Thu, 6 Aug 2026 11:10:21 +0200 Subject: [PATCH 01/53] Update EIP-8297: store delegation indicators in the account header Merged by EIP-Bot. --- EIPS/eip-8297.md | 97 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 21 deletions(-) diff --git a/EIPS/eip-8297.md b/EIPS/eip-8297.md index 71aafd1b5c7e90..a3790fa84696c9 100644 --- a/EIPS/eip-8297.md +++ b/EIPS/eip-8297.md @@ -259,14 +259,15 @@ keys mutually prefix-free (see "Tree embedding"). All state is embedded into the single key/value space. Data accessed together is co-located under one shared key prefix ("stem") to reduce branch openings. The account header holds an account's basic data, code -hash, and first 64 storage slots under keys sharing one header stem. Code -is not in the header; it lives in `CODE_ZONE`, content-addressed (see -"Code"). +hash or delegation, and first 64 storage slots under keys sharing one header +stem. Code is not in the header; it lives in `CODE_ZONE`, content-addressed +(see "Code"). | Parameter | Value | | ----------------------- | ----- | | BASIC_DATA_LEAF_KEY | 0 | | CODE_HASH_LEAF_KEY | 1 | +| DELEGATION_LEAF_KEY | 2 | | HEADER_STORAGE_OFFSET | 64 | | HEADER_STORAGE_SLOTS | 64 | | STEM_SUBTREE_WIDTH | 256 | @@ -347,16 +348,40 @@ account with no code holds the Keccak hash of empty bytecode, unaffected by this EIP's choice of merkelization hash (see "Backwards Compatibility"). The header sub-indices in use are `BASIC_DATA_LEAF_KEY`, `CODE_HASH_LEAF_KEY`, -and `HEADER_STORAGE_OFFSET`..`HEADER_STORAGE_OFFSET + HEADER_STORAGE_SLOTS - 1`. +`DELEGATION_LEAF_KEY`, and +`HEADER_STORAGE_OFFSET`..`HEADER_STORAGE_OFFSET + HEADER_STORAGE_SLOTS - 1`. No key defined by this EIP resolves to any other sub-index. +### Delegation + +An account whose code is an [EIP-7702](./eip-7702.md) delegation indicator, the +23 bytes `0xef0100 || target`, holds it in its header stem rather than as code: + +```python +def get_tree_key_for_delegation(address: Address32): + return get_tree_key_for_header(address, DELEGATION_LEAF_KEY) +``` + +The value is the indicator followed by nine zero bytes, and `code_size` is 23. +Such an account has no `CODE_ZONE` leaves and no `code_hash` leaf, since this +leaf determines both the code and its hash: a code read takes the first +`code_size` bytes and `EXTCODEHASH` hashes them. Being delegated and holding +contract code are mutually exclusive, so every account that exists holds +exactly one of the `CODE_HASH_LEAF_KEY` and `DELEGATION_LEAF_KEY` leaves. An +authorization to the zero address clears the delegation, replacing this leaf +with a `code_hash` leaf holding the hash of empty bytecode and zeroing +`code_size`. + +An indicator cannot be deployed as contract code and none predates the ban +([EIP-3541](./eip-3541.md)), so an account holds one only by delegation. + ### Code Every code chunk lives in `CODE_ZONE`, content-addressed by `code_hash` so contracts with identical bytecode share leaves. An aligned range of `STEM_SUBTREE_WIDTH` chunks sharing one `tree_index` is a code group; its -chunks share a stem and differ only in the sub-index byte. No code is keyed -by address. +chunks share a stem and differ only in the sub-index byte. No code chunk is +keyed by address. ```python def get_tree_key_for_code_chunk(code_hash: bytes32, chunk_id: int): @@ -473,9 +498,7 @@ Deleting an account ([EIP-161](./eip-161.md) state clearing, or [EIP-6780](./eip-6780.md)) MUST remove its header leaves and its storage leaves. Its code is content-addressed and may be shared with other accounts, so its `CODE_ZONE` leaves MUST be removed only if no account in the -resulting state has the same `code_hash`, and MUST be kept otherwise. The -same applies when an account's `code_hash` changes rather than the account -being deleted. +resulting state has the same `code_hash`, and MUST be kept otherwise. The MPT checked `storage_root` to decide whether an address has non-empty storage (i.e., the that condition [EIP-7610](./eip-7610.md) checks before contract @@ -536,15 +559,37 @@ identical bytecode share leaves. Most deployed contracts repeat a small number o templates, so this removes a large amount of duplicate code from the state. For the same reason, a block witness contains at most one copy of a shared chunk, no matter how many contracts touch it. Sharing is also why account deletion checks -before removing a chunk (see "Zero values and deletion"). That check is cheap in -practice: the accounts a block deletes are those [EIP-161](./eip-161.md) clears, -which have no code at all, and those `SELFDESTRUCT` removes in their creation -transaction, whose code the same transaction wrote. +before removing a chunk (see "Zero values and deletion"). + +That check is decidable from the transaction alone. A code leaf is present +exactly while some account has that contract code, and [EIP-161](./eip-161.md) +clearing reaches only accounts with no code, so an account with code is deleted +only by `SELFDESTRUCT` in the transaction that created it. A leaf that predates +the transaction is therefore held by an account the transaction cannot delete +and stays; a leaf the transaction inserted is held only by accounts the +transaction wrote that code to, and goes when none of them remain. Neither case +reads state older than the transaction, so no reference count over the state is +needed. + +An account can replace a delegation indicator but never contract code, which +is why indicators are not kept as code (see "Delegation"). Whether another +account still delegates to the same target is answerable neither from the +transaction nor from a witness, since a shared leaf is byte-identical whether +one account holds it or a million; it would need a reference count over the +whole state, kept correct across restart, snap sync and reorgs. A later change +that lets a live account replace code in `CODE_ZONE` would have to say how the +check stays local. + +An indicator takes its own sub-index rather than sharing the code-hash leaf the +account never needs at the same time, because telling the two apart by their +leading bytes would let an attacker grind code whose hash begins `0xef0100` and +have the contract read as a delegation. Keeping a prefix of the code in the account header instead would avoid that check, but it would key that prefix by address, so the templates above would each store one copy per deployment: the duplication this zone exists to -remove. +remove. That reasoning does not extend to a delegation indicator, which is 23 +bytes and replaces the code-hash leaf the account would hold anyway. ### SNARK friendliness and post-quantum security @@ -648,11 +693,11 @@ ever created. Per-account and per-bucket expiry is a natural operation on the zone topology. The storage bucket keyed by `key_hash(address)` roots one account's storage in the common case. Record its hash and prune below it. -The account header's stem expires the account's core data and hot -storage in one step. Content-addressed code needs -reference counting or deferral to a state sweep, since its leaves may be -shared. Resurrection re-attaches a subtree consistent with the recorded -commitment. The mechanism itself is left to a separate EIP. +The account header's stem expires the account's core data, hot storage and +delegation in one step. Content-addressed code needs reference counting or +deferral to a state sweep, since its leaves may be shared and a sweep has no +transaction to reason from. Resurrection re-attaches a subtree consistent +with the recorded commitment. The mechanism itself is left to a separate EIP. ## Backwards Compatibility @@ -668,8 +713,9 @@ numbers through `SLOAD` and `SSTORE` and never see tree keys. Key derivation run inside the client, below the EVM, exactly as the MPT already hashes slot keys and addresses. No contract, Solidity, or Yul code changes. -`EXTCODEHASH` is unaffected since the `code_hash` leaf stores the Keccak hash of the -account's code regardless of the tree's own merkelization hash. +`EXTCODEHASH` is unaffected. The account's code hash is a Keccak hash +regardless of the tree's own merkelization hash, held in the `code_hash` leaf +or, for a delegated account, computed from the delegation leaf. ## Test Cases @@ -684,6 +730,15 @@ key = 0x00 || H(A) || 0x00 length = 1 + 32 + 1 = 34 bytes ``` +Delegation of address `A` to target `T`: + +``` +sub_idx = DELEGATION_LEAF_KEY = 2 (0x02) +key = 0x00 || H(A) || 0x02 +length = 34 bytes +value = 0xef0100 || T || 0x00 * 9 +``` + Storage slot `storage_key = 5` of address `A` (in the header, since 5 < 64): ``` From dc1e76c2e238ad2f6caaf7cde6d4cfdf970d6961 Mon Sep 17 00:00:00 2001 From: CPerezz <37264926+CPerezz@users.noreply.github.com> Date: Thu, 6 Aug 2026 11:16:37 +0200 Subject: [PATCH 02/53] Update EIP-8347: delegation indicators are header leaves Merged by EIP-Bot. --- EIPS/eip-8347.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/EIPS/eip-8347.md b/EIPS/eip-8347.md index c9fce407b38238..6884670b48e397 100644 --- a/EIPS/eip-8347.md +++ b/EIPS/eip-8347.md @@ -109,8 +109,8 @@ The converter is a deterministic function from MPT state to PBT state. Given the 1. Scan the source (MPT) leaves, recovering each leaf's full hashed path. A leaf node holds only the tail of that path, so the walk accumulates the rest from the branch indices and extension segments above it. The path is `keccak256(address)` in the account trie and `keccak256(slotKey)` in a storage trie, where `slotKey` is the 32-byte big-endian slot number. 2. Index the preimages by `keccak256(preimage)`, and require that this index and the set of leaf paths from step 1 match **exactly**, in both directions. A leaf path with no preimage means the set is incomplete. A preimage matching no leaf path means the set is not the one committed by `ANCHOR_BLOCK`'s `stateRoot`. The converter MUST reject either case. Per-leaf hash equality is not a check on its own, since a preimage is only ever found by hashing it. What is enforced is the exact match of the two sets. -3. Derive PBT keys per [EIP-8297](./eip-8297.md) using the preimages. Most of an account's state lands under its header stem in `ACCOUNT_ZONE`: basic data, `code_hash`, and storage slots 0 through 63 at sub-indices `HEADER_STORAGE_OFFSET`..`HEADER_STORAGE_OFFSET + 63`. Only slots 64 and above take storage-zone keys. -4. For each account with code, fetch the bytecode from the code store using the account's `code_hash`, chunk it per [EIP-8297](./eip-8297.md), and emit the resulting code leaves in `CODE_ZONE`, content-addressed by `code_hash`, so accounts sharing bytecode share them: a converter MUST emit each code leaf exactly once, since a duplicate key would break byte-canonicality. A chunk whose 32-byte value is all zero, that is 31 zero code bytes carrying no PUSHDATA, MUST NOT be emitted, since [EIP-8297](./eip-8297.md) requires a zero-valued key to be absent. +3. Derive PBT keys per [EIP-8297](./eip-8297.md) using the preimages. Most of an account's state lands under its header stem in `ACCOUNT_ZONE`: basic data, `code_hash` or a delegation, and storage slots 0 through 63 at sub-indices `HEADER_STORAGE_OFFSET`..`HEADER_STORAGE_OFFSET + 63`. Only slots 64 and above take storage-zone keys. +4. For each account with code, fetch the bytecode from the code store using the account's `code_hash`, chunk it per [EIP-8297](./eip-8297.md), and emit the resulting code leaves in `CODE_ZONE`, content-addressed by `code_hash`, so accounts sharing bytecode share them: a converter MUST emit each code leaf exactly once, since a duplicate key would break byte-canonicality. A chunk whose 32-byte value is all zero, that is 31 zero code bytes carrying no PUSHDATA, MUST NOT be emitted, since [EIP-8297](./eip-8297.md) requires a zero-valued key to be absent. An account whose code is a delegation indicator instead takes a single header leaf at `DELEGATION_LEAF_KEY`, and emits neither code leaves nor a `code_hash` leaf. 5. Sort leaves by PBT key order (an external merge-sort for mainnet-scale state). 6. Construct the tree bottom-up in a single sequential pass. @@ -160,11 +160,11 @@ The leading **zone byte** of `key` fixes its length, so a decoder knows what it | Zone byte | Zone | Key length, zone byte included | | --- | --- | --- | -| `0x00` | account header (basic data, `code_hash`, storage slots 0-63) | 34 | +| `0x00` | account header (basic data, `code_hash` or delegation, storage slots 0-63) | 34 | | `0x01` | code, content-addressed chunks | 34 | | `0xFF` | storage, slots 64 and above only | 66 | -An account or code key is `zone[1] | stem[32] | subindex[1]`, and a storage key is `zone[1] | stem[64] | subindex[1]`, per [EIP-8297](./eip-8297.md). A decoder MUST also reject any key in the `0x02`-`0xFE` range, which [EIP-8297](./eip-8297.md) reserves and no anchor-state leaf can occupy. +An account or code key is `zone[1] | stem[32] | subindex[1]`, and a storage key is `zone[1] | stem[64] | subindex[1]`, per [EIP-8297](./eip-8297.md). A decoder MUST also reject any key whose zone byte is in the `0x02`-`0xFE` range, which [EIP-8297](./eip-8297.md) reserves and no anchor-state leaf can occupy. The trailing byte of every key is the **sub-index**. Two records belong to the same **stem** if and only if their keys are equal in all bytes except the sub-index. In other words, `key[:-1]` is identical. Because the PBT snapshot is sorted in PBT-key order, all records sharing a stem are contiguous. @@ -184,9 +184,9 @@ Neither is a root of trust; a node runs the [dual-check](#verification-dual-chec Any node MUST be able to verify a downloaded PBT snapshot without trusting the distribution source. This includes a fresh node with no prior state. Because the snapshot carries only leaves and no intermediate nodes, verification is also the step in which each node **derives the full tree for itself**. To verify, the node performs both checks: 1. **Internal PBT consistency.** Rebuild the PBT from the PBT snapshot leaves: derive keys per [EIP-8297](./eip-8297.md), compute every intermediate node by hashing bottom-up, and verify that the resulting root matches the claimed PBT root. The intermediate nodes are a product of this step, not part of the distributed artifact. -2. **Consensus anchoring.** Re-hash the PBT snapshot leaves under the **MPT schema** using the distributed preimages and verify the result against block `ANCHOR_BLOCK`'s header `stateRoot`. That covers every field the MPT commits: nonce, balance, storage, and `code_hash`. +2. **Consensus anchoring.** Re-hash the PBT snapshot leaves under the **MPT schema** using the distributed preimages and verify the result against block `ANCHOR_BLOCK`'s header `stateRoot`. That covers every field the MPT commits: nonce, balance, storage, and `code_hash`. A delegated account carries its code hash in its delegation leaf rather than a `code_hash` leaf, so the re-hash recomputes it from that leaf. - The MPT holds no code, so the re-hash alone leaves the code leaves and `code_size` unchecked. They are anchored instead to the `code_hash` it does cover. For each distinct `code_hash`, reassemble the bytecode from the 31-byte slices of that code's chunk leaves in chunk order, taking the chunk count from `code_size` and reading an absent chunk as 31 zero bytes, truncate the result to `code_size`, and require its `keccak256` to equal that `code_hash`. Then re-chunk the recovered bytecode per [EIP-8297](./eip-8297.md) and require its non-zero chunks to equal the artifact's code leaves byte for byte, which pins each chunk's leading PUSHDATA count as well as its contents and its placement in `CODE_ZONE`. A wrong `code_size` yields different bytes, so the same preimage pins it. `version` is the one remaining field the MPT does not commit; [EIP-8297](./eip-8297.md) sets it to zero on every header write, so every basic-data leaf MUST carry `version == 0`. + The MPT holds no code, so the re-hash alone leaves the code leaves and `code_size` unchecked. They are anchored instead to the `code_hash` it does cover. For each distinct `code_hash`, reassemble the bytecode from the 31-byte slices of that code's chunk leaves in chunk order, taking the chunk count from `code_size` and reading an absent chunk as 31 zero bytes, truncate the result to `code_size`, and require its `keccak256` to equal that `code_hash`. Then re-chunk the recovered bytecode per [EIP-8297](./eip-8297.md) and require its non-zero chunks to equal the artifact's code leaves byte for byte, which pins each chunk's leading PUSHDATA count as well as its contents and its placement in `CODE_ZONE`. A wrong `code_size` yields different bytes, so the same preimage pins it. An account whose MPT code is a delegation indicator MUST instead carry that indicator followed by nine zero bytes in a `DELEGATION_LEAF_KEY` leaf, with `code_size == 23`, no `code_hash` leaf and no chunk leaves; the consensus-anchoring re-hash derives its `codeHash` from that leaf, which pins the leaf's contents and `code_size` together. `version` is the one remaining field the MPT does not commit; [EIP-8297](./eip-8297.md) sets it to zero on every header write, so every basic-data leaf MUST carry `version == 0`. A PBT snapshot that fails either check MUST be rejected, and the node MUST re-obtain or re-convert. @@ -197,7 +197,7 @@ Without the code limb of check 2, a snapshot carrying corrupted or wholly absent State transition from the anchor to the tip is performed by replaying Block-Level Access Lists ([EIP-7928](./eip-7928.md)) **without re-execution**. For each block after `ANCHOR_BLOCK`, per-entry translation rules apply the recorded writes to the PBT: - Balance and nonce changes are applied to the account header's basic-data leaf, and storage writes are applied as PBT leaf writes. Code changes and deletions are applied as described under [replay deletion semantics](#replay-deletion-semantics). -- A balance or nonce change for an address that holds no basic-data leaf creates the account, and replay MUST write its `code_hash` leaf as well: the Keccak hash of empty bytecode in the ordinary case of a transfer to a fresh address, or the hash of the deployed code where the same block also records a code change for it. [EIP-7928](./eip-7928.md) reports a plain transfer as a balance change alone, so nothing else in the BAL implies that leaf, while a direct conversion emits one for every account the MPT commits, since the MPT commits `codeHash` for codeless accounts too. Replay that wrote only the basic-data leaf would therefore diverge from a conversion at the same block. +- A balance or nonce change for an address that holds no basic-data leaf creates the account, and replay MUST write its `code_hash` leaf as well: the Keccak hash of empty bytecode in the ordinary case of a transfer to a fresh address, or the hash of the deployed code where the same block also records a code change for it; where that code change is a delegation indicator, replay writes the delegation leaf instead. [EIP-7928](./eip-7928.md) reports a plain transfer as a balance change alone, so nothing else in the BAL implies that leaf, while a direct conversion emits one for every non-delegated account the MPT commits, since the MPT commits `codeHash` for codeless accounts too. Replay that wrote only the basic-data leaf would therefore diverge from a conversion at the same block. - Replay MAY be batched over a range of blocks, coalescing repeated writes to the same key so that each key is written once with its final value. Only the end state of the replayed range is needed, so writing intermediate values is wasted work. Batching MUST keep the replay rate above steady-state block production, so that a converted PBT snapshot converges to the tip and then tracks it. #### Replay deletion semantics @@ -207,7 +207,7 @@ Replay MUST preserve one invariant: the PBT obtained by replaying from `ANCHOR_B Deletion itself is defined by [EIP-8297](./eip-8297.md): a key whose value is 32 zero bytes MUST NOT be present, writing zero to a key removes it, and deleting an account removes its header and storage leaves, together with any of its content-addressed `CODE_ZONE` leaves that no remaining account's `code_hash` addresses. Those rules govern replay before `PBT_ACTIVATION_FORK` and execution from it alike, so nothing about deletion changes at activation. What replay adds is how each deletion is recognized in a BAL, which carries no deletion marker and MUST therefore be read from recorded post-values: - **Storage.** A recorded write of zero MUST be applied as a deletion of that key, wherever the slot lives: the account's header stem for slots 0 through 63, its storage bucket above that. Deleting a header-stem storage leaf does not delete the account. -- **Code.** A code change MUST write the chunk leaves of the new code to `CODE_ZONE` and, where the account had previous code, MUST apply [EIP-8297](./eip-8297.md)'s deletion rule to it: the previous code's `CODE_ZONE` leaves are removed only if no account in the resulting state has the same `code_hash`, and kept otherwise. Code leaves are content-addressed and possibly shared, so a leaf that is already present is rewritten with the identical value, a no-op. In practice the removal limb fires almost only for [EIP-7702](./eip-7702.md) delegation indicators: an indicator is 23 bytes, occupying a single `CODE_ZONE` chunk leaf shared by every account delegating to the same target, and replacing or clearing a delegation removes that leaf exactly when no other delegation to the target remains, while updating the `code_hash` and basic-data leaves accordingly. The other path that removes deployed code is `SELFDESTRUCT`, which [EIP-6780](./eip-6780.md) confines to the account's creation transaction, and [EIP-7928](./eip-7928.md) records an account destroyed within a transaction without nonce or code changes, so replay never inserted that code's chunks in the first place. +- **Code.** A code change MUST write the chunk leaves of the new code to `CODE_ZONE`, or, where that code is an [EIP-7702](./eip-7702.md) delegation indicator, to the account's `DELEGATION_LEAF_KEY` leaf, which [EIP-8297](./eip-8297.md) places in the header stem rather than in `CODE_ZONE`; clearing a delegation MUST remove that leaf. Setting a delegation MUST also remove the account's `code_hash` leaf and clearing one MUST write it back, since [EIP-8297](./eip-8297.md) gives an account exactly one of the two; the basic-data leaf follows the new code in every case. Code leaves are content-addressed and possibly shared, so a leaf that is already present is rewritten with the identical value, a no-op. Replay never removes one: a delegation is not a code leaf, and the only other path that removes deployed code is `SELFDESTRUCT`, which [EIP-6780](./eip-6780.md) confines to the account's creation transaction, and [EIP-7928](./eip-7928.md) records an account destroyed within a transaction without nonce or code changes, so replay never inserted that code's chunks in the first place. - **Accounts.** If, after a block's writes are applied, an account's basic data would hold `nonce == 0`, `balance == 0`, and `code_size == 0`, replay MUST delete the account: its header stem together with any leaves under the shared prefix `STORAGE_ZONE || key_hash(address)`. The trigger requires `code_size == 0`, so the account addresses no code leaves and the `CODE_ZONE` limb of [EIP-8297](./eip-8297.md)'s account deletion has nothing to remove. The trigger is exact in both directions, since [EIP-7523](./eip-7523.md) leaves no empty account in the MPT and a non-empty account is never absent from it. #### Reorg handling From 1b63195831b9b6edbe4b2bb0115b078a10afed96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Thu, 6 Aug 2026 11:55:15 +0100 Subject: [PATCH 03/53] Update EIP-8081: Propose EIP-8243 for inclusion Merged by EIP-Bot. --- EIPS/eip-8081.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-8081.md b/EIPS/eip-8081.md index dfb910609b7ff6..771da1b9e9ad3d 100644 --- a/EIPS/eip-8081.md +++ b/EIPS/eip-8081.md @@ -58,6 +58,7 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined * [EIP-8200](./eip-8200.md): EVMification * [EIP-8205](./eip-8205.md): Withdrawal credentials preregistration * [EIP-8237](./eip-8237.md): Independent CL/EL Sync +* [EIP-8243](./eip-8243.md): Batching Attestations at Source * [EIP-8250](./eip-8250.md): Keyed Nonces for Frame Transactions * [EIP-8253](./eip-8253.md): Bump nonce of zero-nonce storage accounts * [EIP-8268](./eip-8268.md): Storage Roots in Block Access Lists From 6d574460e3a424ce8386bcacd64e9546d6fb4950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maria=20In=C3=AAs=20Silva?= Date: Thu, 6 Aug 2026 14:01:33 +0200 Subject: [PATCH 04/53] Add EIP: CPSB Recalibration for New Gas Limit Merged by EIP-Bot. --- EIPS/eip-8368.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 EIPS/eip-8368.md diff --git a/EIPS/eip-8368.md b/EIPS/eip-8368.md new file mode 100644 index 00000000000000..d04c7ef833d128 --- /dev/null +++ b/EIPS/eip-8368.md @@ -0,0 +1,46 @@ +--- +eip: 8368 +title: CPSB Recalibration for New Gas Limit +description: Re-derives the cost per state byte (CPSB) parameter introduced in EIP-8037 for a new reference block gas limit +author: Maria Silva (@misilva73) +discussions-to: https://ethereum-magicians.org/t/eip-8368-cpsb-recalibration-for-new-gas-limit/29293 +status: Draft +type: Standards Track +category: Core +created: 2026-08-05 +requires: 8037 +--- + +## Abstract + +This proposal updates cost per state byte (`CPSB`), the unit gas cost per new state byte introduced in [EIP-8037](./eip-8037.md), by re-deriving it for a new reference block gas limit. All other parameters, mechanisms, and semantics defined in [EIP-8037](./eip-8037.md) are unaffected and remain unchanged. + +This is a placeholder EIP. The new reference block gas limit, the re-derived `CPSB` value, and the accompanying rationale are still to be determined. + +## Motivation + +[EIP-8037](./eip-8037.md) derives `CPSB` from a reference block gas limit of `150M` gas units, noting that "if a future block gas limit increase materially changes the expected state growth rate, `CPSB` can be re-derived in a subsequent EIP." As the block gas limit increases beyond that reference point, `CPSB` needs to be recalibrated to keep state growth on target. + +## Specification + +TBD. The `CPSB` value below will be re-derived using the same methodology as [EIP-8037](./eip-8037.md), with the reference block gas limit updated to a value still to be determined. + +| **Parameter** | **Value** | +|:---:|:---:| +| `CPSB` | TBD | + +## Rationale + +TBD + +## Backwards Compatibility + +This EIP updates a parameter defined by [EIP-8037](./eip-8037.md) and inherits its backwards compatibility considerations. + +## Security Considerations + +Needs discussion. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From 2c6da5e9c71d4df50556e217e265917d13c4ca78 Mon Sep 17 00:00:00 2001 From: kevaundray Date: Thu, 6 Aug 2026 13:43:29 +0100 Subject: [PATCH 05/53] Update EIP-8297: Add a small note on reserved fields in the header Merged by EIP-Bot. --- EIPS/eip-8297.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-8297.md b/EIPS/eip-8297.md index a3790fa84696c9..0a198dcbb76f2c 100644 --- a/EIPS/eip-8297.md +++ b/EIPS/eip-8297.md @@ -350,7 +350,8 @@ this EIP's choice of merkelization hash (see "Backwards Compatibility"). The header sub-indices in use are `BASIC_DATA_LEAF_KEY`, `CODE_HASH_LEAF_KEY`, `DELEGATION_LEAF_KEY`, and `HEADER_STORAGE_OFFSET`..`HEADER_STORAGE_OFFSET + HEADER_STORAGE_SLOTS - 1`. -No key defined by this EIP resolves to any other sub-index. +No key defined by this EIP resolves to any other sub-index; the remaining +sub-indices are reserved for future header fields (see "Storage layout"). ### Delegation @@ -552,6 +553,17 @@ Binding the group-spreading digest to the address as well as `tree_index` restricts the grinding analyzed in "Security Considerations" to the attacker's own bucket. +Within the header stem, `HEADER_STORAGE_OFFSET` sits on a power-of-two +boundary: with `HEADER_STORAGE_SLOTS = 64`, the header slots are exactly +the sub-indices whose two leading bits are `01`, so the whole range hangs +off a single branch and a witness touching several header slots shares one +path down to it. The sub-indices between `CODE_HASH_LEAF_KEY` and +`HEADER_STORAGE_OFFSET` are reserved for future header fields. The +reservation is free, since absent keys occupy no nodes, and a field +allocated there shares the leading `00` bits with the basic data and code +hash leaves that every account access already reads, placing it on the +branch a witness for those leaves already opens. + ### Content-addressed code Keying code by `code_hash` rather than by account lets all contracts with From e18e618c4214bab35c755e7bbd00d7961816e251 Mon Sep 17 00:00:00 2001 From: Cayman Date: Thu, 6 Aug 2026 21:31:14 -0400 Subject: [PATCH 06/53] Update EIP-8081: Propose EIP-8333 for inclusion Merged by EIP-Bot. --- EIPS/eip-8081.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-8081.md b/EIPS/eip-8081.md index 771da1b9e9ad3d..4eb07ee8741cc6 100644 --- a/EIPS/eip-8081.md +++ b/EIPS/eip-8081.md @@ -66,6 +66,7 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined * [EIP-8279](./eip-8279.md): Block Access List Byte Floor * [EIP-8298](./eip-8298.md): SETCODEFROM Code Reuse Instruction * [EIP-8304](./eip-8304.md): Trustless log and transaction index +* [EIP-8333](./eip-8333.md): Align Checkpoint with Epoch Boundary Block ### Activation From 96507525affbe67a41d9b90ee6a7ebd45ee2a421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Wahrst=C3=A4tter?= <51536394+nerolation@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:58:57 +0200 Subject: [PATCH 07/53] Update EIP-8131: Highlight block-size cap upfront Merged by EIP-Bot. --- EIPS/eip-8131.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-8131.md b/EIPS/eip-8131.md index 758f39761a3381..2196dd7f42309a 100644 --- a/EIPS/eip-8131.md +++ b/EIPS/eip-8131.md @@ -1,7 +1,7 @@ --- eip: 8131 title: Unified Transaction Content Floor -description: Flat 64 gas per content byte at the floor, covering calldata, access-list entries, authorizations, and blob versioned hashes. +description: Flat 64 gas per content byte at the floor, covering all user-controlled transaction fields and capping worst-case block size. author: Toni Wahrstätter (@nerolation) discussions-to: https://ethereum-magicians.org/t/eip-9999-add-auth-data-to-eip-7623-floor/12345 status: Draft @@ -13,11 +13,11 @@ requires: 2028, 4844, 7623, 7702, 7976, 7981 ## Abstract -Charge every user-controlled byte in a transaction (calldata, access-list entries, [EIP-7702](./eip-7702.md) auths, [EIP-4844](./eip-4844.md) blob hashes) at a flat 64 gas at the floor. One rule replaces [EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md) and [EIP-7981](./eip-7981.md) and closes the auth and blob hash floor gaps. Worst-case user-controlled tx content per block is bounded by `block_gas_limit / 64 ≈ 0.89 MB`. Fewer than 4% of mainnet transactions hit the new floor. +Charge every user-controlled byte in a transaction (calldata, access-list entries, [EIP-7702](./eip-7702.md) auths, [EIP-4844](./eip-4844.md) blob hashes) at a flat 64 gas at the floor. One rule replaces [EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md) and [EIP-7981](./eip-7981.md) and closes the auth and blob hash floor gaps. Worst-case user-controlled tx content per block is bounded by `block_gas_limit / 64 ≈ 0.89 MB`, a hard cap that keeps worst-case blocks small enough to propagate safely as the gas limit rises. Fewer than 4% of mainnet transactions hit the new floor. ## Motivation -[EIP-7623](./eip-7623.md) introduced a floor cost on calldata bytes to cap worst-case block size. [EIP-7976](./eip-7976.md) raised that floor to a uniform 64 gas per calldata byte, zero and non-zero alike (by treating every byte as 4 floor tokens at 16 gas each). [EIP-7981](./eip-7981.md) extended the same 64 gas/B rate to access-list bytes via a flat data-cost surcharge of 1,280 gas per address and 2,048 gas per storage key. The principle is consistent across both: every user-controlled content byte priced at 64 gas at the floor. +Worst-case block size constrains scaling: the gas limit can only be raised as far as the largest block an attacker can build still propagates reliably. [EIP-7623](./eip-7623.md) introduced a floor cost on calldata bytes to cap worst-case block size. [EIP-7976](./eip-7976.md) raised that floor to a uniform 64 gas per calldata byte, zero and non-zero alike (by treating every byte as 4 floor tokens at 16 gas each). [EIP-7981](./eip-7981.md) extended the same 64 gas/B rate to access-list bytes via a flat data-cost surcharge of 1,280 gas per address and 2,048 gas per storage key. The principle is consistent across both: every user-controlled content byte priced at 64 gas at the floor. [EIP-7702](./eip-7702.md) authorization tuples (up to 108 B each) and [EIP-4844](./eip-4844.md) blob versioned hashes (32 B each) were added without matching floor terms and still pay nothing at the floor. From 13b14adce21c2022cc96a0b1409c3a7abd04bc52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Wahrst=C3=A4tter?= <51536394+nerolation@users.noreply.github.com> Date: Fri, 7 Aug 2026 09:09:38 +0200 Subject: [PATCH 08/53] Update EIP-8146: Highlight sidecar benefits upfront Merged by EIP-Bot. --- EIPS/eip-8146.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-8146.md b/EIPS/eip-8146.md index a05c5a4f464abb..3a38372aa28030 100644 --- a/EIPS/eip-8146.md +++ b/EIPS/eip-8146.md @@ -1,7 +1,7 @@ --- eip: 8146 title: Block Access List Sidecars -description: Decouple block access list propagation from execution payload envelopes +description: Propagate block access lists as sidecars, keeping payload envelopes small and giving execution clients a prefetch head start author: Toni Wahrstätter (@nerolation), Raúl Kripalani (@raulk) discussions-to: https://ethereum-magicians.org/t/eip-8146-block-access-list-sidecars/27757 status: Draft @@ -13,13 +13,20 @@ requires: 7732, 7928 ## Abstract -This EIP removes the block access list (BAL) from the `ExecutionPayloadEnvelope` and propagates it as an independent sidecar on a dedicated gossip topic. Builders commit to the BAL exactly once, by including `keccak256(rlp(BAL))` (the same 32-byte value already defined as `block_access_list_hash` in the EL block header by [EIP-7928](./eip-7928.md)) in their `ExecutionPayloadBid`. Sidecar verification uses this commitment; the consensus layer treats the BAL as opaque bytes and never needs to RLP-decode it. No separate sidecar signature is required. The Payload Timeliness Committee (PTC) enforces BAL availability at the attestation deadline. +This EIP removes the block access list (BAL) from the `ExecutionPayloadEnvelope` and propagates it as an independent sidecar on a dedicated gossip topic. This keeps a large object (~70 KiB average, up to 1 MiB) off the latency-critical propagation path and lets the BAL arrive early, so execution layer clients can prefetch state and precompute the post-state root before the payload arrives. This shortens the slot's critical path, creating headroom for gas limit increases, and helps FOCIL ([EIP-7805](./eip-7805.md)) inclusion list builders avoid listing transactions that the pending block invalidates. Builders commit to the BAL exactly once, by including `keccak256(rlp(BAL))` (the same 32-byte value already defined as `block_access_list_hash` in the EL block header by [EIP-7928](./eip-7928.md)) in their `ExecutionPayloadBid`. Sidecar verification uses this commitment; the consensus layer treats the BAL as opaque bytes and never needs to RLP-decode it. No separate sidecar signature is required. The Payload Timeliness Committee (PTC) enforces BAL availability at least one second before the execution payload deadline, guaranteeing one second of useful work on the BAL even in the worst case. ## Motivation [EIP-7928](./eip-7928.md) adds block access lists to the `ExecutionPayload`. Under [EIP-7732](./eip-7732.md), the execution payload travels inside a `SignedExecutionPayloadEnvelope` that the builder broadcasts after the beacon block. Including the BAL (~70 KiB average, up to 1 MiB) in the envelope increases its size and propagation latency on the critical path. -Separating the BAL into a sidecar reduces envelope size, improving propagation. The BAL remains required for execution validation; the PTC enforces availability so that the BAL is present before the payload processing deadline. +Separating the BAL into a sidecar has four benefits: + +- **No large object on the critical path**: the envelope stays small and propagates faster; the BAL travels on its own topic, off the latency-critical path. +- **A validation head start**: the sidecar can be published early because it exposes no unbundling risk (see [BAL publication timing](#bal-publication-timing)), so execution layer clients prefetch the declared state and can begin post-state root computation while the envelope is still in flight, shortening payload validation. +- **Better FOCIL inclusion lists**: FOCIL ([EIP-7805](./eip-7805.md)) inclusion list builders must build their list before they can receive or execute the block of that same slot, risking invalid transactions in the list and degrading the mechanism's quality. An early BAL exposes the block's touched accounts and post-values, letting builders filter invalidated transactions without executing the payload. +- **Slot-time headroom**: faster propagation and validation free up time in the slot, headroom that gas limit increases depend on. + +The BAL remains required for execution validation; the PTC enforces availability so that the BAL is present at least one second before the execution payload deadline. ## Specification From 4484909deb60e8266152f4b6eed2d79990af072b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Wahrst=C3=A4tter?= <51536394+nerolation@users.noreply.github.com> Date: Fri, 7 Aug 2026 09:17:35 +0200 Subject: [PATCH 09/53] Update EIP-8279: Highlight block-size cap upfront Merged by EIP-Bot. --- EIPS/eip-8279.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-8279.md b/EIPS/eip-8279.md index 4cdda7e9c7bf04..e26b06936b3fac 100644 --- a/EIPS/eip-8279.md +++ b/EIPS/eip-8279.md @@ -1,7 +1,7 @@ --- eip: 8279 title: Block Access List Byte Floor -description: Meter EIP-7928 Block Access List bytes at runtime and fold them into the EIP-7623 transaction floor. +description: Meter EIP-7928 Block Access List bytes at runtime and fold them into the EIP-7623 transaction floor, capping worst-case block size. author: Toni Wahrstätter (@nerolation) discussions-to: https://ethereum-magicians.org/t/eip-8279-block-access-list-byte-floor/28662 status: Draft @@ -13,11 +13,11 @@ requires: 7623, 7702, 7928, 7976, 7981, 8131 ## Abstract -Meter the bytes each opcode adds to the [EIP-7928](./eip-7928.md) Block Access List in an explicit per-transaction counter, and fold that count, at 64 gas/byte, into the transaction's floor accumulator — checked at runtime before the BAL grows. Today an attacker can pack ~1.55 MB into a 60M-gas block: 75% of gas on cold `SLOAD`s (32 BAL bytes per 2,100 gas) + 25% on calldata at 16 gas/byte. On top of [EIP-8131](./eip-8131.md)'s tx-content floor (same rate), block content is capped at `block_gas_limit / 64 ≈ 0.89 MB` (~42% reduction). Neither EIP alone closes the bypass: 8131 does not price BAL bytes; 8279 reuses 8131's floor. Typical transactions are unaffected: the runtime BAL floor never binds in isolation. +Meter the bytes each opcode adds to the [EIP-7928](./eip-7928.md) Block Access List in an explicit per-transaction counter, and fold that count, at 64 gas/byte, into the transaction's floor accumulator — checked at runtime before the BAL grows. Today an attacker can pack ~1.55 MB into a 60M-gas block: 75% of gas on cold `SLOAD`s (32 BAL bytes per 2,100 gas) + 25% on calldata at 16 gas/byte. On top of [EIP-8131](./eip-8131.md)'s tx-content floor (same rate), block content is capped at `block_gas_limit / 64 ≈ 0.89 MB` (~42% reduction), restoring the worst-case block-size bound that safe gas limit increases depend on. Neither EIP alone closes the bypass: 8131 does not price BAL bytes; 8279 reuses 8131's floor. Typical transactions are unaffected: the runtime BAL floor never binds in isolation. ## Motivation -[EIP-7623](./eip-7623.md) caps worst-case block size by charging at least 64 gas per non-zero calldata byte. [EIP-7981](./eip-7981.md) extended that to access-list entries, and [EIP-8131](./eip-8131.md) generalises the floor to a uniform per-byte rule over all tx-content fields, including [EIP-7702](./eip-7702.md) authorization tuples and [EIP-4844](./eip-4844.md) blob versioned hashes. [EIP-7928](./eip-7928.md) introduces a new source of block bytes, the BAL, populated by runtime opcodes. None of those static floors cover it. +Worst-case block size constrains scaling: the gas limit can only be raised as far as the largest possible block still propagates reliably. [EIP-7623](./eip-7623.md) caps worst-case block size by charging at least 64 gas per non-zero calldata byte. [EIP-7981](./eip-7981.md) extended that to access-list entries, and [EIP-8131](./eip-8131.md) generalises the floor to a uniform per-byte rule over all tx-content fields, including [EIP-7702](./eip-7702.md) authorization tuples and [EIP-4844](./eip-4844.md) blob versioned hashes. [EIP-7928](./eip-7928.md) introduces a new source of block bytes, the BAL, populated by runtime opcodes. None of those static floors cover it. The cheapest BAL contributor is a cold `SLOAD`: 32 bytes for 2,100 gas. Combined with all-non-zero calldata, an attacker pushes intrinsic gas above the calldata floor, pays intrinsic, and gets calldata at 16 gas/byte while loading the rest of the block via `SLOAD` keys. From 112318dcfe13191c5ddf759516841b1e8595a23e Mon Sep 17 00:00:00 2001 From: anderselowsson <98593347+anderselowsson@users.noreply.github.com> Date: Fri, 7 Aug 2026 12:07:56 +0300 Subject: [PATCH 10/53] Add EIP: Normalized state gas limit Merged by EIP-Bot. --- EIPS/eip-8372.md | 110 +++++++++++++++++++++++++++++++++++ assets/eip-8372/figure-1.png | Bin 0 -> 214364 bytes assets/eip-8372/figure-2.png | Bin 0 -> 219833 bytes 3 files changed, 110 insertions(+) create mode 100644 EIPS/eip-8372.md create mode 100644 assets/eip-8372/figure-1.png create mode 100644 assets/eip-8372/figure-2.png diff --git a/EIPS/eip-8372.md b/EIPS/eip-8372.md new file mode 100644 index 00000000000000..52e3540b555792 --- /dev/null +++ b/EIPS/eip-8372.md @@ -0,0 +1,110 @@ +--- +eip: 8372 +title: Normalized state gas limit +description: Scales and normalizes the state-gas limit to better balance state-gas and execution-gas utilization. +author: Anders Elowsson (@anderselowsson) +discussions-to: https://ethereum-magicians.org/t/eip-8372-normalized-state-gas-limit/29332 +status: Draft +type: Standards Track +category: Core +created: 2026-08-06 +requires: 8037 +--- + +## Abstract + +This EIP modifies [EIP-8037](./eip-8037.md) by assigning state gas a scaled raw limit and normalizing state-gas usage before computing block-level `gas_used`. At activation, cost per state byte (`CPSB`) and the limit scale are set so the state-byte price can reflect estimated demand while the selected state-growth target continues to correspond to 50% normalized state-gas utilization. No new transaction or block-header fields are introduced. + +## Motivation + +EIP-8037 gives execution gas and state gas the same block limit and uses the larger cumulative gas value as block-level `gas_used`. Its `CPSB` therefore determines how many state bytes correspond to the 50% state-gas target. + +Ethereum users are not guaranteed, in aggregate, to spend half of their gas budget on state creation. At the cost per state byte (`CPSB`) selected by EIP-8037, state demand may be lower or higher than the level that lets state gas and execution gas both approach their common 50% target. Figure 1 illustrates the resulting failure modes. Relatively low state demand produces less state than intended, while relatively high state demand makes state gas the bottleneck and suppresses execution-gas consumption. + +![Figure 1. The two possible equilibrium failure modes.](../assets/eip-8372/figure-1.png) + +**Figure 1.** Failure modes of EIP-8037. If demand for state creation is lower than anticipated, too little state is created. If it is higher than anticipated, state gas becomes the bottleneck and too little execution gas is consumed. + +Ideally, the state-byte price and the relative state-gas limit would adapt continuously to demand. This is the longer-term direction of [EIP-7999](./eip-7999.md), where resources have separate prices and limits. For simplicity, this EIP instead performs a one-time calibration at the hardfork boundary. Developers select a target annual state-growth rate and an expected future block gas limit, derive a baseline `CPSB` that maps this growth target to the 50% state-gas target, and then use demand elasticities observed during the Glamsterdam hardfork and gradual post-Glamsterdam gas-limit increases to select the actual `CPSB` and matching state-gas limit scale. The selected constants remain fixed after activation. + +## Specification + +### Parameters + +The EIP-8037 parameter table is updated as follows: + +| Parameter | Value | +|---|---:| +| `CPSB` | `TBD` | +| `STATE_GAS_LIMIT_SCALE` | `TBD` | +| `STATE_GAS_LIMIT_SCALE_DENOMINATOR` | `100` | + +The `CPSB` and `STATE_GAS_LIMIT_SCALE` parameters must be positive integers. The `STATE_GAS_LIMIT_SCALE` parameter specifies the raw state-gas limit as a percentage of the block gas limit. + +### Transaction validation + +The EIP-8037 definition of `state_gas_available` is updated to: + +```python +state_gas_limit = block_env.block_gas_limit * STATE_GAS_LIMIT_SCALE // STATE_GAS_LIMIT_SCALE_DENOMINATOR +state_gas_available = state_gas_limit - block_output.block_state_gas_used +``` + +### Block-level gas accounting + +The EIP-8037 block-level `gas_used` computation and validity condition are updated to: + +```python +state_gas_limit = block.gas_limit * STATE_GAS_LIMIT_SCALE // STATE_GAS_LIMIT_SCALE_DENOMINATOR +normalized_block_state_gas_used = (block_output.block_state_gas_used * STATE_GAS_LIMIT_SCALE_DENOMINATOR) // STATE_GAS_LIMIT_SCALE +gas_used = max(block_output.block_execution_gas_used, normalized_block_state_gas_used) +assert block_output.block_state_gas_used <= state_gas_limit, 'invalid block: too much state gas used' +assert gas_used <= block.gas_limit, 'invalid block: too much gas used' +``` + +The `block_output.block_state_gas_used` counter remains denominated in raw state gas. No new block header field is introduced. + +## Rationale + +### Calibration methodology + +EIP-8037 uses one common base fee for execution gas and state gas. A mismatch between the state-byte price and user demand therefore affects more than state growth: it determines which dimension reaches the common target first and can leave the other dimension underutilized. + +This EIP makes one fixed best-effort calibration at activation. The objective is to select a `CPSB` that is expected to induce the desired amount of state creation, and to set the raw state-gas limit so that this amount of state creation occupies approximately 50% of that limit. If the demand estimate is accurate, state gas and execution gas can both approach their respective targets. + +This can be viewed as a manual, one-time analogue of [EIP-8075](./eip-8075.md): EIP-8075 adapts the state-byte price and relative state-gas limit with demand, whereas this EIP selects fixed values at activation. + +The calibration starts by determining the `target_state_growth_per_year` and `expected_block_gas_limit`, then deriving: +`baseline_cpsb = expected_block_gas_limit * blocks_per_year // (2 * target_state_growth_per_year)`. + +Both `blocks_per_year` and `baseline_cpsb` are here simply analytical values rather than additional consensus parameters. The `baseline_cpsb` value maps the selected annual state-growth target to 50% of the block gas limit when the raw state-gas limit equals the block gas limit. Thus, the `baseline_cpsb` is equal to `CPSB` only if demand at that price is expected to produce the target state growth. + +Figure 2 illustrates the three possible calibrations after comparing expected demand at `baseline_cpsb` with the target. If demand is expected to match the target, no scaling is needed. If expected demand is lower, both `CPSB` and the raw state-gas limit are reduced. If expected demand is higher, both are increased. These are alternative fixed settings selected from demand estimated before activation, not dynamic adjustments performed after activation. + +![Figure 2. The three possible state-gas calibrations.](../assets/eip-8372/figure-2.png) + +**Figure 2.** The hardfork may retain, contract, or expand the raw state-gas limit according to the state demand estimated before activation. The `CPSB` is changed proportionally so that the targeted state-byte capacity is preserved after normalization. + +The next step is to use observed demand elasticities to select the actual `CPSB` so that expected state growth is close to `target_state_growth_per_year`. Then select the matching limit scale according to: + +```python +STATE_GAS_LIMIT_SCALE = CPSB * STATE_GAS_LIMIT_SCALE_DENOMINATOR // baseline_cpsb +``` + +Scaling `CPSB` and the raw state-gas limit proportionally preserves the normalized state gas assigned to the targeted number of state bytes. It therefore changes the price needed to induce the desired state-byte consumption without changing the corresponding normalized blockspace allocation. The denominator of `100` provides one-percentage-point calibration steps, which are sufficiently granular relative to the uncertainty in demand estimates. + +Demand elasticity can be estimated from how state-byte consumption responds to the new `CPSB` of Glamsterdam and shifts in the demand for state creation during the gradual gas-limit increases after Glamsterdam. Application-specific analysis as well as analysis of past changes can supplement these observations. + +## Backwards Compatibility + +This EIP changes consensus-critical block validation and requires a scheduled network upgrade. After activation, clients that do not implement the scaled state-gas limit and normalization rules may disagree on transaction inclusion, block validity, or the block header `gas_used` value. + +Blocks before activation are unaffected. Transaction formats, the EIP-8037 reservoir model, transaction-level gas accounting, and receipt semantics remain unchanged. Block builders, execution clients, and gas-estimation implementations must use the new `CPSB`, raw state-gas limit, and normalized block-level accounting after activation. + +## Security Considerations + +The primary risk is parameter miscalibration, which may shift the system from one failure mode to the other and cannot be corrected without a subsequent hardfork. The selected parameters should therefore be stress-tested across plausible demand elasticities. Because the raw state-gas limit and `CPSB` scale proportionally, the maximum state-byte capacity remains approximately invariant across calibrations, up to integer rounding. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-8372/figure-1.png b/assets/eip-8372/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9011bdcd79c312e462d92380d19c11adf6968891 GIT binary patch literal 214364 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%0AmPnz;cH2Gg2VHsk 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 literal 0 HcmV?d00001 diff --git a/assets/eip-8372/figure-2.png b/assets/eip-8372/figure-2.png new file mode 100644 index 0000000000000000000000000000000000000000..0a785d54c3151b14c506809d4bb3c1a586dc1745 GIT binary patch literal 219833 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

K{IVWo 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 z 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%0AM*!#8xDzkx%7lPEKn-q*30$zwk=@zreydu3w~E- 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�%*2n7dV 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

pWdWamd3D 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ό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%0D}_~ds3DvMYs1?YMA_&-R9B&!eOBfYrEcs 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

f0Xw?0|*-Hiy}6X}v@2Ydz2O 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 literal 0 HcmV?d00001 diff --git a/assets/eip-8363/yield-curve.svg b/assets/eip-8363/yield-curve.svg new file mode 100644 index 00000000000000..31183bc86dba73 --- /dev/null +++ b/assets/eip-8363/yield-curve.svg @@ -0,0 +1,1599 @@ + + + + + + + + 2026-08-03T12:26:20.811102 + image/svg+xml + + + Matplotlib v3.11.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 72c7fe56093b471a06f4ec857ce7a9d3c0ddd587 Mon Sep 17 00:00:00 2001 From: Pooja Ranjan <29681685+poojaranjan@users.noreply.github.com> Date: Tue, 11 Aug 2026 12:53:31 -0400 Subject: [PATCH 30/53] Update EIP-8136: Move to Review Merged by EIP-Bot. --- EIPS/eip-8136.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/EIPS/eip-8136.md b/EIPS/eip-8136.md index abe460c75c7aea..e973ab63e4a672 100644 --- a/EIPS/eip-8136.md +++ b/EIPS/eip-8136.md @@ -4,7 +4,7 @@ title: Cell-Level Deltas for Data Column Broadcast description: Optimization for disseminating only previously unseen cells to the network for PeerDAS. author: Marco Munizaga (@MarcoPolo) , Daniel Knopik (@dknopik) , Sukun Tarachandani (@sukunrt) discussions-to: https://ethereum-magicians.org/t/eip-8136-cell-level-deltas-for-data-column-broadcast/27675 -status: Draft +status: Review type: Standards Track category: Networking created: 2025-01-23 @@ -13,7 +13,7 @@ requires: 7594 ## Abstract -Cell-Level Deltas for Data Column Broadcast optimizes PeerDAS (EIP-7594) by +Cell-Level Deltas for Data Column Broadcast optimizes PeerDAS ([EIP-7594](./eip-7594.md)) by allowing more efficient transfers of blob data columns across the network. Instead of having to exchange full data columns, peers exchange only the cells they need within a column. This becomes especially useful when the majority of @@ -38,15 +38,10 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S Cell-Level Deltas uses Gossipsub's Partial Messages Extension to exchange cell bitmaps and request/provide cells. - - -*Editor's Note*: Update the libp2p spec link to a proper commit once the PR is merged. In an effort to maintain a single source of truth, the specification is defined -in the ethereum/consensus-specs repo. - +in the [ethereum/consensus-specs](https://github.com/ethereum/consensus-specs/tree/b3b06d939c3f7301d218bca7adc39eed5806d553/./) repo. -*Editor's Note*: Update the Consensus Spec link to a proper commit once the PR is merged. ## Rationale From 054078969965674643d7cf4e22460c438d09dd07 Mon Sep 17 00:00:00 2001 From: Chris Hunter Date: Tue, 11 Aug 2026 13:12:36 -0400 Subject: [PATCH 31/53] Update EIP-8130: align with Keystore contract, transaction validity window, slim spec Merged by EIP-Bot. --- EIPS/eip-8130.md | 526 +++++++++++++++++++---------------------------- 1 file changed, 214 insertions(+), 312 deletions(-) diff --git a/EIPS/eip-8130.md b/EIPS/eip-8130.md index 0f342ab9a721b5..ce64c4c59fec91 100644 --- a/EIPS/eip-8130.md +++ b/EIPS/eip-8130.md @@ -8,7 +8,7 @@ status: Draft type: Standards Track category: Core created: 2025-10-14 -requires: 170, 2718 +requires: 155, 170, 712, 1271, 1559, 2028, 2718, 2929, 4337, 6780, 7702, 7708, 7819 --- ## Abstract @@ -23,44 +23,46 @@ This proposal separates authentication from account logic. Each transaction expl New signature algorithms are introduced through authenticator contracts and standardized through the canonical authenticator set. +Portability is also a top concern: the keystore lets accounts manage their authenticators and maintain cross-chain portability. + ## Specification ### Overview -An account authorizes one or more **actors** which are credentials permitted to act on its behalf. Each actor is bound to an **authenticator**, an onchain contract that checks a signature and returns the actor's identity (`actorId`). An account's actors, their authenticators, and their permissions are held in the **Account Configuration Contract** at `ACCOUNT_CONFIG_ADDRESS`. +An account manages its authentication configuration via the keystore, a contract that maps an account to its configured authenticators and stores their authorizations. An **actor** on the account is one that has an authorization in the keystore. Each actor is bound to an **authenticator**, an onchain contract that checks a signature and returns the actor's identity (`actorId`). A new [EIP-2718](./eip-2718.md) transaction type (`AA_TX_TYPE`) names the authenticator that authenticates it. Because the authenticator is declared explicitly, a node can tell exactly what computation a transaction requires, and reject unknown authenticators before executing any code. Validation reads the account's configuration, runs the named authenticator, and checks the resolved actor's permissions; execution then dispatches the transaction's calls. +The 8130 transaction type is not required for the accounts to work, and they are fully portable to other EVM-based chains. On chains that don't support the 8130 transaction type, they must use an alternative transport mechanism such as [ERC-4337](./eip-4337.md). See [Portability](#portability). + +This EIP specifies the protocol surface: the transaction type, node validation and execution rules, intrinsic gas, and the authenticator model. The **Keystore** and the canonical authenticator/account contracts — including exact storage packing, typehashes, event ABIs, and function bodies — live in the canonical contracts repository (the `base` organization's EIP-8130 repository on GitHub, `src/Keystore.sol`), which is authoritative for all contract internals. Where this document gives a byte layout or digest, it is a normative summary; the repository is the source of truth, and any implementation MUST match it (either by calling the deployed contracts or by reproducing their behavior with static/precomputed gas values). + The specification is organized around four pieces: - **Actors and Authenticators**: the authentication and authorization model (see [Authenticators](#authenticators)). -- **Account Configuration**: onchain management of account and its actors (see [Account Configuration](#account-configuration)). +- **Account Configuration**: onchain management of account and its actors (see [Keystore and Account Configuration](#keystore-and-account-configuration)). - **AA Transaction Type**: the wire format, signature payloads, and gas accounting (see [AA Transaction Type](#aa-transaction-type)). - **Account Changes**: how accounts are created and how actors are added, revoked, or delegated (see [Account Changes](#account-changes)). -Accounts are portable across EVM chains; see [Portability](#portability). - #### Account Types -This proposal supports three paths for accounts to use AA transactions: +8130 supports all account types, existing and newly created. | Account Type | How It Works | Key Recovery | |--------------|--------------|--------------| | **EOAs** | EOAs send AA transactions using their existing secp256k1 key via native ecrecover. If the account has no code, the protocol auto-delegates to `DEFAULT_ACCOUNT_ADDRESS` (see [Block Execution](#block-execution)). Accounts MAY override with a delegation entry in `account_changes` or a standard [EIP-7702](./eip-7702.md) transaction | Wallet-defined; EOA recoverable via standard transactions | -| **Existing Smart Contracts** | Already-deployed accounts (e.g., ERC-4337 wallets) register actors via `importAccount()` on the Account Configuration Contract | Wallet-defined | +| **Existing Smart Contracts** | Already-deployed accounts (e.g., [ERC-4337](./eip-4337.md) wallets) register actors via `importAccount()` on the Keystore contract | Wallet-defined | | **New Accounts (No EOA)** | Created via a create entry in `account_changes` with CREATE2 address derivation; runtime bytecode placed at address, actors + authenticators configured, `calls` handles initialization | Wallet-defined | ### Authenticators -Each actor is associated with an authenticator, a contract that performs signature authentication. In the protocol's terms, the authenticator *authenticates* the actor (it returns the actor's `actorId`); scope and policy then *authorize* what that authenticated actor may do. The authenticator address is stored in `actor_config` (see [Account Configuration](#account-configuration)). All authenticators implement `IAuthenticator.authenticate(hash, data)`. After the authenticator authenticates the signature, the protocol validates the returned `actorId` against `actor_config` and authorizes the actor by checking its scope against the authorization context; the policy gate (`POLICY`) is enforced later, during execution. +Each actor is associated with an authenticator, a contract that performs signature authentication. In the protocol's terms, the authenticator *authenticates* the actor (it returns the actor's `actorId`); scope and policy on the keystore then *authorize* what that authenticated actor may do. The authenticator address is stored in `actor_config` (see [Keystore and Account Configuration](#keystore-and-account-configuration)). All authenticators implement `IAuthenticator.authenticate(hash, data)`. After the authenticator authenticates the signature, the protocol validates the returned `actorId` against `actor_config` and authorizes the actor by checking its scope against the authorization context. Authenticators are executed via STATICCALL. Authenticator addresses MUST NOT be delegated accounts; reject if the code at the authenticator address starts with the delegation indicator (`0xef0100`). -Chains choose how authenticator execution is priced. A chain MAY meter authenticator execution as ordinary EVM execution (see [Mempool Acceptance](#mempool-acceptance) for rules), or it MAY enshrine canonical authenticators and charge a fixed, standard gas cost per enshrined authenticator instead of metering. When an authenticator is enshrined, its execution MUST produce identical results to the corresponding authenticator contract. - -`K1_AUTHENTICATOR` (`address(1)`) is a protocol-reserved address for native secp256k1 authentication. When the protocol encounters this address as an authenticator in auth data, it performs ecrecover directly rather than making a STATICCALL. The `data` portion is interpreted as raw ECDSA `(r || s || v)`, and the returned `actorId` is `bytes32(bytes20(recovered_address))`. The same identity serves both the implicit default EOA and any explicitly registered k1 actor; the `actor_config` slot alone distinguishes a full-owner EOA from a scoped key, so actors can be explicitly registered with `K1_AUTHENTICATOR` to use native ecrecover with a custom scope, without requiring a deployed authenticator contract. `address(0)` is considered empty. +Chains may choose how authenticator execution is priced. A chain MAY call directly into the EVM and meter as ordinary EVM execution (see [Mempool Acceptance](#mempool-acceptance) for rules), or it MAY enshrine the canonical authenticators and charge a fixed, standard gas cost per enshrined authenticator instead of metering. When an authenticator is enshrined, its execution MUST produce identical results to the corresponding authenticator contract. -Any contract implementing `IAuthenticator` can be permissionlessly deployed and registered as an actor's authenticator. However, registration does not make an authenticator usable on the 8130 path: only canonical authenticators in the node allowlist are accepted for block-level AA authentication (see [Canonical Authenticator Set](#canonical-authenticator-set)). Non-canonical authenticators remain fully usable within EVM execution; for example, an account can authenticate an actor against an arbitrary `IAuthenticator` via a config change call, enabling use cases such as wallet-defined recovery methods. Such actors simply cannot authenticate transactions directly over the 8130 path and they operate through ordinary EVM execution. +Any contract implementing `IAuthenticator` can be permissionlessly deployed and registered as an actor's authenticator. However, registration does not make an authenticator usable on the 8130 transaction path: only canonical authenticators in the node allowlist are accepted for block-level AA authentication (see [Canonical Authenticator Set](#canonical-authenticator-set)). Non-canonical authenticators remain fully usable within EVM execution; for example, an account can authenticate an actor against an arbitrary `IAuthenticator` via a config change call, enabling use cases such as wallet-defined recovery methods. #### Canonical Authenticator Set @@ -79,39 +81,21 @@ Nodes MUST include all canonical authenticators in their allowlist and SHOULD NO #### Delegate Authenticator -The delegate authenticator lets one account act on behalf of another. An account **A** registers a *delegate actor* that points at another account **B**; thereafter any key that can authenticate as **B** may authenticate as **A**, bounded by the scope **A** grants that delegate actor. - -**Registration.** **A** authorizes an actor with `authenticator = DELEGATE_AUTHENTICATOR` and `actorId = bytes32(bytes20(B))`. That actor's `scope` in **A**'s config governs what **B** may do for **A** under the normal [Actor Scope](#actor-scope) rules. - -**Wire format.** When authenticating through the delegate authenticator, the auth blob's `data` (the bytes following the 20-byte authenticator address, per [Signature Format](#signature-format)) is: - -``` -data = delegated_account (20 bytes) // B - || nested_auth // authenticator (20 bytes) || data, a normal auth blob for B -``` - -**Constraints**: +The delegate authenticator lets one account act on behalf of another: account **A** registers a delegate actor with `actorId = bytes32(bytes20(B))`, after which any key that can authenticate as account **B** may authenticate as **A**, bounded by the scope **A** grants that actor. Delegation MUST NOT chain (depth-1: the nested authenticator MUST NOT itself be the delegate authenticator) and the nested authenticator MUST be canonical, keeping total validation work bounded. The remaining details are defined in the canonical repository. -- **No nesting (depth-1):** the nested authenticator MUST NOT be the delegate authenticator; delegation cannot chain. -- **Nested authenticator MUST be canonical:** nodes apply the authenticator allowlist to the nested authenticator just as to the outer one, keeping total work bounded and enshrinable. -- **Admin on the nested actor:** the nested check is **B** vouching via a signature, and signing authority is the admin predicate (`scope == 0x00`), so the nested actor in **B** MUST be admin. +### Keystore and Account Configuration -### Account Configuration +Each account can authorize a set of actors through the Keystore contract at `KEYSTORE_ADDRESS`. This contract handles actor authorization, account creation, change sequencing, and account lock, and delegates signature authentication to onchain [Authenticators](#authenticators). Its full ABI, storage packing, typehashes, and events are defined in the canonical repository (`src/Keystore.sol`); this section specifies only the protocol-visible behavior and the state a node reads directly. -Each account can authorize a set of actors through the Account Configuration Contract at `ACCOUNT_CONFIG_ADDRESS`. This contract handles actor authorization, account creation, change sequencing, and delegates signature authentication to onchain [Authenticators](#authenticators). +Actors are identified by their `actorId`, a 32-byte identifier derived by the authenticator from public key material. Each authenticator defines its own actorId derivation algorithm (see [Canonical Authenticator Set](#canonical-authenticator-set)). Actors can be modified via calls within EVM execution by calling the authenticated change function ([`applySignedAccountChanges`](#account-config-change-paths)). -Actors are identified by their `actorId`, a 32-byte identifier derived by the authenticator from public key material. Each authenticator defines its own actorId derivation algorithm (see [Canonical Authenticator Set](#canonical-authenticator-set)). Actors can be modified via calls within EVM execution by calling the authenticated config change functions. +Actor enumeration is performed off-chain via `ActorAuthorized` and `ActorRevoked` event logs. #### Storage Layout -Each actor occupies a single `actor_config` slot containing the authenticator address, scope byte, and optional expiry. When `scope` includes `POLICY` (`0x02`), the actor also carries a signed policy commitment and a manager address in the separate policy slots `policy_commitment`/`policy_manager` (see [Actor Policies](#actor-policies)). Actors are revoked by deleting the `actor_config` slot. The self-actor (`actorId == bytes32(bytes20(account))`) is the one exception; its layout and rules are collected in [Self-Actor](#self-actor). +Each actor occupies a single `actor_config` slot containing the authenticator address, an optional expiry, and the scope bitmask. The protocol reads this slot directly during validation, so its packing is normative: `authenticator(20) ‖ expiry(6) ‖ scope(2) ‖ reserved(4)`, where `expiry` is a `uint48` Unix timestamp in **seconds** (`0` = no expiry; the actor is invalid once `block.timestamp > expiry`) and `scope` is the `uint16` permission bitmask (`0x0000` = unrestricted, also the admin predicate; see [Actor Scope](#actor-scope)). The exact slot derivation and byte offsets are defined in the canonical repository (`src/Keystore.sol`). -| Field | Bytes | Description | -|-------|-------|-------------| -| `authenticator` | 0–19 | Authenticator contract address | -| `scope` | 20 | Permission bitmask (`0x00` = unrestricted; also the admin predicate, see [Actor Scope](#actor-scope)) | -| `expiry` | 21–26 | `uint48` Unix timestamp (seconds); the actor is invalid once `block.timestamp > expiry`. `0` = no expiry | -| reserved | 27–31 | MUST be zero on write (native and EVM paths). Implicit version discriminator: new-format configs with nonzero reserved fail to apply through legacy deployments rather than applying with restrictions dropped | +When `scope` includes `POLICY` (`0x02`), the actor also carries a signed policy commitment and a manager address in the separate policy slots `policy_commitment`/`policy_manager` (see [Actor Policies](#actor-policies)). Actors are revoked by deleting the `actor_config` slot. The self-actor (`actorId == bytes32(bytes20(account))`) is the one exception: it is held inline in the packed account-state slot and resolved per [Validation](#validation). When `scope & POLICY != 0`, the actor's policy is held in two additional slots: @@ -120,64 +104,44 @@ policy_commitment(account, actorId) → bytes32 // set when POLICY is set policy_manager(account, actorId) → address // set when POLICY is set ``` -These slots are read only during execution (see [Actor Policies](#actor-policies)); validity is still decided by the single `actor_config` SLOAD. - -#### Self-Actor - -The **self-actor** is the actor whose `actorId == bytes32(bytes20(account))`. All self-actor rules — referenced from Storage Layout, Validation, `account_changes_cost`, Execution, `importAccount`, and Security Considerations — are collected here: - -- **Two mutually exclusive forms.** The self-actor exists in exactly one of two forms at a time, and registering one clears the other: - 1. **Inline secp256k1 self (default EOA).** Held **inline in the packed account-state slot** (`default_eoa_scope`/`default_eoa_expiry` plus the `DEFAULT_EOA_REVOKED` flag; see [Account Lock](#account-lock)), so the account's own key resolves in a single SLOAD, including the scoped-self case. Authenticated via native ecrecover, never an external authenticator contract. - 2. **Non-secp256k1 self authenticator.** Held in the `actor_config(self)` slot (e.g. an authenticator that returns the self-actorId). Registering it **sets** `DEFAULT_EOA_REVOKED`, disabling the inline k1 self. -- **Implicit EOA authorization.** A native secp256k1 signature recovering to the account authenticates as the self-actor whenever `DEFAULT_EOA_REVOKED` is not set, resolved from the inline default-EOA config. For a fresh account that inline config is all-zero: `scope == 0x00`, `expiry == 0` (non-expiring admin). This lets every existing EOA send AA transactions immediately without prior registration. (Scoping restriction: [Implicit EOA Rule Scoping](#security-considerations).) -- **Scoped/disabled inline self.** Registering the self with `K1_AUTHENTICATOR` (`address(1)`) sets a custom `scope`/`expiry` while retaining native ecrecover: it writes the inline default-EOA fields (a non-zero `scope` downgrades the key) and leaves `DEFAULT_EOA_REVOKED` clear. Setting `DEFAULT_EOA_REVOKED` disables the inline secp256k1 self in its entirety. -- **Revocation.** Revoking the self-actor writes the account-state slot (`DEFAULT_EOA_REVOKED`) and leaves the `actor_config(self)` slot empty and reusable. -- **Defaults.** `createAccount` and `importAccount` set `DEFAULT_EOA_REVOKED` by default, so a newly created or imported account does not leave a native secp256k1 owner live unless one is among `initial_actors` (a quantum-safe default). +These slots are read only during execution (see [Actor Policies](#actor-policies)); validity is decided by the single `actor_config` SLOAD giving cheap, predictable validation and invalidation. #### Actor Scope -The scope byte in `actor_config` is a permission bitmask of **grants**. A value of `0x00` means unrestricted (all contexts) and is also the account's **admin** predicate: any check in this specification that requires an "admin" actor is exactly `scope == 0x00`. Any non-zero value grants only the contexts whose bits are set. Reads are fail-closed: a context is authorized only when `scope == 0x00` or the corresponding grant bit is present. Unknown bits grant nothing. All future scope bits MUST be pure grants. An actor whose scope sets only unknown bits is stored verbatim but authorizes no context — a permanently inert actor until a protocol change defines those bits. +The scope field in `actor_config` is a `uint16` permission bitmask of **grants**. A value of `0x00` means unrestricted (all contexts) and is also the account's **admin** predicate: any check in this specification that requires an "admin" actor is exactly `scope == 0x00`. Any non-zero value grants only the contexts whose bits are set. Reads are fail-closed: a context is authorized only when `scope == 0x00` or the corresponding grant bit is present. Unknown bits grant nothing. All future scope bits MUST be pure grants. An actor whose scope sets only unknown bits is stored verbatim but authorizes no context in the protocol. | Bit | Value | Name | Context | |-----|-------|------|---------| -| 0 | `0x01` | SENDER | Ungated initiation: `sender_auth`; may originate transactions to any `call.to`. Carries operational authority (unless combined with `POLICY`) — also satisfies `verifySignature()` (ERC-1271 signing); see below | +| 0 | `0x01` | SENDER | Ungated initiation: `sender_auth`; may originate transactions to any `call.to`. Carries operational authority (unless combined with `POLICY`), which also governs account-level signing ([ERC-1271](./eip-1271.md)); see [Signature Verification](#signature-verification) | | 1 | `0x02` | POLICY | Gated initiation: `sender_auth`; may originate transactions only to the actor's `policy_manager` (see [Actor Policies](#actor-policies)) | | 2 | `0x04` | NONCE | Permits a restricted actor to use sequenced `nonce_key`s for sender-context transactions (see [Actor Nonce Scope](#actor-nonce-scope)) | | 3 | `0x08` | SELF_PAYER | Self-pay gas: authorizes paying the account's own gas when `payer == sender` | | 4 | `0x10` | SPONSOR_PAYER | Sponsor gas: authorizes acting as `payer_auth` for a different sender (`payer != sender`) | -| 5–7 | | (spare) | Reserved for future pure grants | - -**Operational authority.** An actor is *operational* when it can originate calls to any target: `operational := admin (scope == 0x00) || (SENDER && !POLICY)`. ERC-1271 signing (`verifySignature()`) is **not** a grant; it is authorized for any operational actor. Signing is an *encoding* of authority, not a separate capability: an operational key can already call `approve`/`transfer` directly, so letting it produce a `Permit` or order signature grants nothing it did not already have (`approve ≡ permit`). Conversely a `POLICY` actor is never operational and MUST NOT sign raw hashes — a signature acts off the policy gate, so a gated key that could sign would escape its gate. A sign-only restriction would be illusory anyway (a hash-blind signer can still sign a Permit2 drain), so signing gets no bit; scoped signing is expressed at the account layer via an approved-hash / approve-typed-data pattern driven by a `POLICY` key (see [Actor Policies](#actor-policies)). +| 5–15 | | (spare) | Reserved for future pure grants | -**Admin.** Config-change authority (`authorizeActor`, `revokeActor`, `applySignedActorChanges`, delegation) is exactly the admin predicate `scope == 0x00`: the same unrestricted root every other check already special-cases. Accounts are born with a scope-0 root (the implicit EOA, or an unrestricted actor named at create/import); everything below that root is granted. See [Why Admin Is Scope Zero](#why-admin-is-scope-zero). +**Admin.** Config-change authority (`authorizeActor`, `revokeActor`, `applySignedAccountChanges`, delegation) is exactly the admin predicate `scope == 0x00`: the same unrestricted root every other check already special-cases. Accounts are born with a scope-0 root (the implicit EOA, or an unrestricted actor named at create/import); everything below that root is granted. **Initiation grants.** `SENDER` and `POLICY` compose: `SENDER` allows initiation to any `call.to`, `POLICY` allows gated initiation to the actor's `policy_manager`. An actor may hold either or both; whenever `POLICY` is set the call is gated to the `manager` regardless of `SENDER`, so the gate always binds a policy-bearing actor. When both are set, `SENDER` conveys no additional authority; wallets SHOULD NOT set `SENDER | POLICY`. `POLICY | SELF_PAYER` and `POLICY | NONCE` compose likewise. `POLICY | SPONSOR_PAYER` also composes: the actor's initiation is gated to its `manager`, but its sponsor authority is **not** gated and it may underwrite third-party gas off its policy gate. `authorizeActor` stores any scope combination verbatim; combination semantics are checked at the point of use. -**Verbatim reporting.** `getActorConfig` and `authenticateActor` MUST return stored scope bytes unmodified — no normalization or masking of unrecognized bits. +Scope authorization is applied only after an authenticator authenticates the signature and returns an `actorId`: the protocol loads that actor's `scope` and checks it against the context being authorized. For `sender_auth`, require `scope == 0x00 || (scope & SENDER) != 0 || (scope & POLICY) != 0`; when `POLICY` is set the actor is gated to its `manager` regardless of `SENDER` (see [Actor Policies](#actor-policies)). For self-pay (payer account == sender account) require SELF_PAYER on the actor that authorizes payment, and for sponsorship (payer account ≠ sender) require SPONSOR_PAYER on the `payer_auth`-resolved actor (the respective bit, or unrestricted). For 2D nonce usage require NONCE and for config change `auth` require admin (`scope == 0x00`). -Scope authorization is applied only after an authenticator authenticates the signature and returns an `actorId`: the protocol loads that actor's `scope` and checks it against the context being authorized. For `sender_auth`, require `scope == 0x00 || (scope & SENDER) != 0 || (scope & POLICY) != 0`; when `POLICY` is set the actor is gated to its `manager` regardless of `SENDER` (see [Actor Policies](#actor-policies)). For self-pay (payer account == sender account) require SELF_PAYER on the actor that authorizes payment, and for sponsorship (payer account ≠ sender) require SPONSOR_PAYER on the `payer_auth`-resolved actor (the respective bit, or unrestricted); for `verifySignature()` require **operational** (`scope == 0x00`, or `SENDER` and not `POLICY`); for config change `auth` require admin (`scope == 0x00`). +See [Validation](#validation) for the full flow. -The protocol validates signatures by reading `actor_config` directly and delegating authentication to [Authenticators](#authenticators); see [Validation](#validation) for the full flow. Actor enumeration is performed off-chain via `ActorAuthorized` and `ActorRevoked` event logs. - -#### Actor Nonce Scope - -`NONCE` (`0x04`) grants a restricted actor access to ordered (sequenced) `nonce_key`s for **sender-context** transactions. +#### Actor Expiry -| Actor | `nonce_key` allowed | -|-------|----------------------| -| Admin (`scope == 0x00`) | Any `nonce_key`, including `NONCE_KEY_MAX` (nonceless), freely | -| Restricted, `NONCE` unset | `nonce_key == NONCE_KEY_MAX` only (nonceless) | -| Restricted, `NONCE` set | Any `nonce_key`, including `NONCE_KEY_MAX` — the full 2D key space | +The protocol enforces one rule: an actor is **live** at `now` (the inclusion block timestamp) iff `expiry == 0 || now <= expiry` (see [Storage Layout](#storage-layout)), evaluated at inclusion. It checks only the acting key's own `expiry` and never walks authorizer lineage, so a live admin's authorization survives that admin's own later expiry or revocation; removal requires an explicit `revokeActor`. -This makes nonceless (`NONCE_KEY_MAX`) the default for every restricted (non-admin) actor: a freshly authorized session key can send transactions without touching a nonce channel. An actor that needs an ordered, replay-protected sequence (e.g. a high-throughput automation key) opts in with `NONCE` and may then use any `nonce_key` in the full 2D space. +Note for wallets: `expiry` is set only by a config change (initial actors are always non-expiring), and SHOULD be placed only on non-admin actors, where a lapsed key simply stops working. Using it on an admin (`scope == 0x00`) can break valid change chains for cross-chain actor-change replay and account sync, so an admin SHOULD NOT expire unless the wallet owner deliberately plans for it and keeps a non-expiring owner in place. -`NONCE` constraints apply to **sender-context** transactions only. `payer_auth` consumes no payer-side sequence and is unaffected. The check (reject a sequenced `nonce_key` from a restricted actor lacking `NONCE`) is enforced by the protocol; see [Validation](#validation). +#### Epoch System -#### Actor Expiry +To enable uncoordinated session-key, subscription, and JIT actor additions there is an epoch system. The local change channel carries an **epoch** (`local_epoch`) alongside its sequence counter (`local_sequence`); together they form the signed local word `local_epoch(high 32) || local_sequence(low 32)` (see [Config Change Authorization](#config-change-authorization)). The epoch is a blunt cancellation control for the account's own outstanding **local** signatures, distinct from actor expiry: -The protocol enforces one rule: an actor is **live** at `now` (the inclusion block timestamp) iff `expiry == 0 || now <= expiry` (see [Storage Layout](#storage-layout)), evaluated at inclusion. It checks only the acting key's own `expiry` and never walks authorizer lineage, so a live admin's authorization survives that admin's own later expiry or revocation; removal requires an explicit `revokeActor`. +- `IncrementLocalEpoch` (an account change carried on either channel) increments `local_epoch` and resets `local_sequence` to `0`. Every local batch signed at the prior epoch — sequenced or unsequenced/JIT — no longer matches the current `local_epoch` and is rejected with `StaleEpoch`; it can never land. +- The epoch does **not** revoke live actors or touch `actor_config`. An actor authorized in a landed batch stays authorized across an epoch bump; only *unlanded local signatures* are invalidated. Removing an actor is still an explicit `RevokeActor`. +- Multichain batches are unaffected: they carry no epoch and are ordered solely by the monotonic multichain counter. -Note for wallets: `expiry` is set only by a config change (initial actors are always non-expiring), and SHOULD be placed only on non-admin actors, where a lapsed key simply stops working. Using it on an admin (`scope == 0x00`) can break valid change chains for cross-chain actor-change replay and account sync, so an admin SHOULD NOT expire unless the wallet owner deliberately plans for it and keeps a non-expiring owner in place. +This is what makes the unsequenced/JIT mode (`UNSEQUENCED`) safe to hand out: an unsequenced batch is intentionally replayable within its epoch, and the account durably retires it by bumping the epoch — typically batching the reducing `RevokeActor`/`AuthorizeActor` with `IncrementLocalEpoch` in one signed batch. See [Why a Local Epoch?](#why-a-local-epoch). #### Actor Policies @@ -190,20 +154,19 @@ Actor policies gate a key to a single `manager` contract that enforces applicati | unset | (no gate) | empty | | set | the actor's `manager` (`address(0)` = no productive target) | `manager` (20) ‖ `commitment` (32) | -A policy-bearing actor may call exactly one target: its configured `manager`. The contract at that target reads the actor's `commitment` (via [`getPolicy`](#iaccountconfiguration)), validates presented parameters against it, enforces *what* the call may do, and carries out the approved action. The protocol's only responsibility is the single-target gate. +A policy-bearing actor may call exactly one target: its configured `manager`. The contract at that target reads the actor's `commitment` (via [`getPolicy`](#ikeystore)), validates presented parameters against it, enforces *what* the call may do, and carries out the approved action. The protocol's only responsibility is the single-target gate. A key that should be enforced by the account's own code rather than a separate contract sets `manager = account`. Because protocol dispatch originates the call from the account itself (`msg.sender == account`), this is only meaningful with policy-aware wallet code; code that implicitly trusts self-calls (e.g. a standard `executeBatch`) turns such a key into an unrestricted one (see [Security Considerations](#security-considerations)). -**Scope.** `POLICY` is the gated initiation grant. How it composes with `SENDER` is defined in [Actor Scope](#actor-scope). It MAY combine with `SELF_PAYER` so a session key can self-pay gas (bounded by balance and `expiry`). It MAY also combine with `NONCE` so a policy key can use a sequenced `nonce_key`. A `POLICY` key is not operational and cannot sign ERC-1271 (a signature would act off its gate; see [Actor Scope](#actor-scope)); scoped signing SHOULD use an account-level approved-hash / approve-typed-data pattern (Safe `approveHash` precedent) driven by the `POLICY` key. +**Scope.** `POLICY` is the gated initiation grant. How it composes with `SENDER` is defined in [Actor Scope](#actor-scope). It MAY combine with `SELF_PAYER` so a session key can self-pay gas (bounded by balance and `expiry`). It MAY also combine with `NONCE` so a policy key can use a sequenced `nonce_key`. **Reference flow** (non-normative). One construction of a session-key policy: -1. **Authorize.** The account authorizes the key with `POLICY` (optionally `| SELF_PAYER` and/or `| NONCE`), the `manager`, and a `commitment`. The key's call authority is only the gate to its `manager`. -2. **Install (once).** The `params` are installed at the `manager`, permissionlessly, gated by the signed commitment. -3. **Use (each call).** The protocol gate routes the key's call to the `manager`; the manager enforces installed `params` and drives the account. -4. **Retire.** `revokeActor` zeroes the commitment; `expiry` rejects further authentication. +1. **Authorize.** The account authorizes the key with `POLICY`, the `manager`, and a `commitment`. The key's call authority is only the gate to its `manager`. +2. **Use (each call).** The protocol gate routes the key's call to the `manager`; the manager enforces installed `params` and drives the account by checking the policy commitment. +3. **Retire.** `revokeActor` zeroes the commitment or `expiry` rejects further authentication. -**Example** (non-normative). A subscription session key limited to **5 USDC per 30-day period** with a two-target allowlist. Authorized with `POLICY` (nonceless by default, and without `SELF_PAYER` if a sponsor pays gas). Over-budget transfers, wrong targets, expiry, or revoke all fail. +**Example** (non-normative). A subscription session key limited to **5 USDC per 30-day period** with a two-target allowlist. Authorized with `POLICY`. Over-budget transfers, wrong targets, expiry, or revoke all fail. **The commitment is signed, opaque, and protocol-stored.** One signature fully describes the key's manager and policy and travels with the portable actor-change path. @@ -223,11 +186,21 @@ The transaction carries two nonce fields: `nonce_key` (`uint256`) selects the no | `1` through `NONCE_KEY_MAX - 1` | User-defined | Parallel transaction channels defined by wallets | | `NONCE_KEY_MAX` | Nonce-free | No nonce state read or incremented | +##### Actor Nonce Scope + +`NONCE` (`0x04`) grants a restricted actor access to sequenced `nonce_key`s for **sender-context** transactions; it does not apply to `payer_auth`. The protocol enforces this during validation (see [Validation](#validation)): + +| Actor | `nonce_key` allowed | +|-------|----------------------| +| Admin (`scope == 0x00`) | Any `nonce_key`, including `NONCE_KEY_MAX` | +| Restricted, `NONCE` unset | `NONCE_KEY_MAX` (nonce-free) only | +| Restricted, `NONCE` set | Any `nonce_key`, the full 2D space | + ##### Nonce-Free Mode (`NONCE_KEY_MAX`) -When `nonce_key == NONCE_KEY_MAX`, the protocol does not read or increment the nonce counter. `nonce_sequence` MUST be `0`. Replay protection relies on `expiry`, which MUST be non-zero, together with `replay_id` deduplication state distinct from the nonce counter. That state is a fixed-capacity **circular buffer** and is **consensus state**, not per-node bookkeeping: a `seen` map (`replay_id → expiry`) holds live entries, and a ring of `replay_id`s in insertion order lets the oldest entry be evicted once expired. Per transaction the protocol reads `seen[replay_id]` and rejects if a still-live entry exists; reads the ring slot at the current pointer; if that slot is occupied, reads that entry's expiry and, when expired, clears its `seen` entry (rejecting only if the buffer is full of still-live entries); then writes the new `replay_id` into the ring slot, sets `seen[replay_id] = expiry`, and advances the pointer. Because the `seen[replay_id]` liveness check and the full-buffer rejection both decide block validity, the buffer capacity MUST be a **protocol constant or explicit chain parameter** (`REPLAY_BUFFER_CAPACITY`), identical for every node on the chain — a per-node capacity would split consensus. It MUST be at least `peak accepted nonce-free throughput × NONCE_FREE_EXPIRY_WINDOW`, so an entry always expires before its ring slot is reused. Because entries are ephemeral and the buffer is fixed-size, there is no permanent state growth. See `nonce_key_cost` in [Intrinsic Gas](#intrinsic-gas). +When `nonce_key == NONCE_KEY_MAX`, the protocol neither reads nor increments a nonce counter; `nonce_sequence` MUST be `0` and `valid_before` MUST be non-zero. Replay protection uses `replay_id` deduplication held in a fixed-capacity **circular buffer** that is **consensus state**, not per-node bookkeeping: a `seen` map (`replay_id → valid_before`) of live entries plus a ring that evicts the oldest entry once elapsed, so a still-live `replay_id` is rejected and a buffer full of still-live entries rejects the transaction. Because both checks decide block validity, the capacity is a **protocol constant or explicit chain parameter** (`REPLAY_BUFFER_CAPACITY`), identical for every node on the chain, and MUST be at least `peak accepted nonce-free throughput × NONCE_FREE_EXPIRY_WINDOW` so an entry always elapses before its ring slot is reused. Entries are ephemeral, so there is no permanent state growth. See `nonce_key_cost` in [Intrinsic Gas](#intrinsic-gas). -The maximum `expiry` window accepted for nonce-free transactions is likewise an explicit chain parameter (`NONCE_FREE_EXPIRY_WINDOW`), not a per-node choice, and MUST be sized together with `REPLAY_BUFFER_CAPACITY` so `peak accepted nonce-free throughput × NONCE_FREE_EXPIRY_WINDOW` stays within capacity. Replay protection is handled by the **replay identifier** defined below. +The maximum validity window (`valid_before − now`) accepted for nonce-free transactions is likewise an explicit chain parameter (`NONCE_FREE_EXPIRY_WINDOW`), not a per-node choice, and MUST be sized together with `REPLAY_BUFFER_CAPACITY` so `peak accepted nonce-free throughput × NONCE_FREE_EXPIRY_WINDOW` stays within capacity. Replay protection is handled by the **replay identifier** defined below. ###### Replay Identifier @@ -237,7 +210,7 @@ Nonce-free (`NONCE_KEY_MAX`) transactions have no nonce slot to key deduplicatio REPLAY_ID_TYPE = 0x7901 replay_id = keccak256(REPLAY_ID_TYPE || rlp([ - chain_id, resolved_sender, expiry, + chain_id, resolved_sender, valid_after, valid_before, account_changes, calls, metadata, payer ])) @@ -267,83 +240,35 @@ In both modes a replacement MUST increase `max_priority_fee_per_gas` by at least #### Account Lock -Account lock state is stored in a single packed 32-byte account-state slot that also holds the change sequences, an account-flags byte, and the inline default-EOA (self-actor) config: +Account lock state is stored in a single packed 32-byte account-state slot that also holds the change channels, an account-flags byte, and the inline default-EOA config. The protocol may read this slot's raw layout directly for mempool rate-limit tiering, so its field order and widths are normative: -| Field | Description | -|-------|-------------| -| `multichain_sequence` | Change-sequence counter for `chain_id 0` (`uint64`) | -| `local_sequence` | Change-sequence counter for the local chain (`uint64`); `> 0` doubles as the initialized flag | -| `flags` | Account flags byte: bit 0 (`DEFAULT_EOA_REVOKED`) disables the secp256k1 self-actor; bit 1 (`LOCKED`) freezes actor configuration; bit 2 (`UNLOCK_INITIATED`) selects how the `lock_union` field is interpreted | -| `lock_union` | `uint40` union field. While `UNLOCK_INITIATED` is clear it holds `unlock_delay` (seconds, `uint16` range): the notice required before config can change, which nodes read for rate-limit tiering. While `UNLOCK_INITIATED` is set it holds `unlocks_at` (the timestamp at which unlock takes effect) | -| `default_eoa_scope` | Inline self-actor `scope` (`uint8`; `0x00` = full owner) | -| `default_eoa_expiry` | Inline self-actor `expiry` (`uint48` Unix seconds; `0` = no expiry) | -| reserved | Remaining bytes in the packed slot; MUST be zero | - -The packed slot is exactly 32 bytes, so the inline self-actor config and lock state cost no extra SLOAD/SSTORE beyond the account-state access already performed for the change-sequence fields. - -When `LOCKED`, all actor-config changes and delegation are rejected on both paths (config entries in `account_changes` and `applySignedActorChanges()`). The only operation permitted while locked is `unlock` below. The stored `unlock_delay` is bounded to the `uint16` range (~18.2h max): lock exists for mempool permissioning, and a short ceiling prevents an account from self-bricking config rotations. +When `LOCKED`, all authority changes (authorize/revoke actor) and delegation are rejected on both paths (config entries in `account_changes` and `applySignedAccountChanges`). Only two changes remain permitted while locked: `Unlock` (which begins the timed release) and `IncrementLocalEpoch` (which cancels outstanding local signatures without touching actor authority — see [Epoch System](#epoch-system)). Lock and unlock are themselves the only lock-state transitions, carried as standalone changes (below). The stored `unlock_delay` is bounded to the `uint16` range (~18.2h max): lock exists for mempool permissioning, and a short ceiling prevents an account from self-bricking config rotations. ##### Lock Operations -Lock state changes only through `applySignedLockChanges`, a dedicated admin-authorized entry point accessible in the EVM only. - -``` -LOCK_CHANGE_TYPEHASH = keccak256( - "SignedLockChange(address account,uint256 chainId,uint8 op," - "uint16 unlockDelay,uint64 sequence)") -// op: 1 = lock, 2 = unlock - -applySignedLockChanges(address account, uint8 op, - uint16 unlockDelay, bytes calldata auth) -``` - -Lock operates using the local account channel. The digest binds `chainId = block.chainid` and `sequence = local_sequence` (the **current** counter value); the contract rejects a mismatch and, on success, increments `local_sequence` — the same sign-current-then-increment convention as transaction nonces and local config changes (which share this counter). `auth` is a standard `authenticator \|\| data` blob (see [Signature Format](#signature-format)) validated as **admin** (`scope == 0x00`) against `account`. Anyone may relay; authorization comes from the signature. +Lock and unlock are **local-only** account changes carried in a signed batch through the single [`applySignedAccountChanges`](#account-config-change-paths) entry point; there is no separate lock function. Each is admin-authorized (`scope == 0x00`), binds `chainId = block.chainid`, and is consumed against the local channel like any sequenced local change. `Lock` and `Unlock` MUST each be the **sole** change in their batch, so a lock transition can never interleave with actor changes in the same signed batch. Anyone may relay; authorization comes from the signature. The signed digest and typehashes are defined in the canonical repository. **Lifecycle** — `lock`, then `unlock`, with no other actions in between: -1. **Lock** (`op = 1`): only from the unlocked state. Sets `LOCKED` and stores `unlock_delay = unlockDelay`. Rejected if already locked; the delay cannot be changed while locked. -2. **Unlock** (`op = 2`): only from `LOCKED` with no pending unlock; `unlockDelay` MUST be `0`. Sets `UNLOCK_INITIATED` and `unlocks_at = block.timestamp + unlock_delay` (from the stored delay). +1. **Lock**: only from the unlocked state. Sets `LOCKED` and stores `unlock_delay`. Rejected if already locked (a zero delay is rejected); the delay cannot be changed while locked. Emits `AccountLocked`. +2. **Unlock**: only from `LOCKED` with no pending unlock. Sets `UNLOCK_INITIATED` and `unlocks_at = block.timestamp + unlock_delay` (from the stored delay). Emits `AccountUnlockInitiated`. 3. **Effective unlock**: once `block.timestamp >= unlocks_at`, the account is unlocked and config changes resume; the flags and `lock_union` are lazily cleared by the next op. Locking again requires a fresh `lock`. #### Account Import -`importAccount(address account, uint256 chainId, InitialActor[] calldata initialActors, bytes calldata signature)` is a one-time call that registers an already-deployed account into the Account Configuration Contract with an initial actor set. `chainId` is the replay domain of the import signature, mirroring `applySignedActorChanges`: `0` = multichain (valid on every chain); otherwise it MUST equal `block.chainid`. The call is rejected when: +`importAccount(address account, uint256 chainId, InitialActor[] calldata initialActors, bytes calldata signature)` is a one-time call that registers an already-deployed account into the Keystore contract with an initial actor set. `chainId` is the replay domain of the import signature, mirroring `applySignedAccountChanges`: `0` = multichain (valid on every chain); otherwise it MUST equal `block.chainid`. The call is rejected when: - `chainId` is neither `0` nor the current chain. - The account already has 8130 state: **either** change-sequence channel is non-zero. Import is a one-time bootstrap, so it requires both the local and multichain channels empty. A locked account is always caught here: a `lock` is a signed local config change, so it has advanced `local_sequence` and the account is considered initialized (see [Account Lock](#account-lock)). +- The account has no bytecode (there is no contract to run the ERC-1271 signature check against), or its ERC-1271 check does not return the magic value. -The `signature` is validated against the account via [ERC-1271](./eip-1271.md) `isValidSignature(digest, signature)`, binding the initial actor set to the account's existing authorization logic. `digest` is a typed `ActorInitialization` struct hash: +The `signature` is validated against the account via [ERC-1271](./eip-1271.md) over a typed ([EIP-712](./eip-712.md)-style) `ActorInitialization` digest that omits the EIP-712 domain separator (anti-phishing) and binds the account's own actorId (`bytes32(bytes20(account))`, so it cannot be replayed against another account), `chainId` (matching the `applySignedAccountChanges` replay domain), and each initial actor with `expiry = 0` (imported actors are always non-expiring; an actor-provided expiry MUST NOT be accepted). `policyData` follows `authorizeActor`'s rule and, unlike create, `manager = account` is expressible here. On success `importAccount` sets `DEFAULT_EOA_REVOKED` (parity with `createAccount`); to keep using the native key past import, include the self-actorId as a `K1_AUTHENTICATOR` entry in `initialActors`. Exact typehashes and digest construction are defined in the canonical repository (`src/Keystore.sol`). -``` -ACTORCONFIG_TYPEHASH = - keccak256("ActorConfig(address authenticator,uint8 scope,uint48 expiry)") - -ACTOR_TYPEHASH = - keccak256("Actor(bytes32 actorId,ActorConfig config,bytes policyData)" - "ActorConfig(address authenticator,uint8 scope,uint48 expiry)") - -ACTOR_INITIALIZATION_TYPEHASH = - keccak256("ActorInitialization(bytes32 salt,uint256 chainId,Actor[] initialActors)" - "Actor(bytes32 actorId,ActorConfig config,bytes policyData)" - "ActorConfig(address authenticator,uint8 scope,uint48 expiry)") - -// Per-actor. Imported actors carry scope and policyData like create; expiry is always 0 -// (expiry is added post-import via config changes). policyData follows authorizeActor's rule: -// manager (20) || commitment (32) when POLICY is set, empty otherwise, and is hashed for real: -configHash_i = keccak256(abi.encode(ACTORCONFIG_TYPEHASH, authenticator_i, scope_i, 0)) -actorHash_i = keccak256(abi.encode(ACTOR_TYPEHASH, actorId_i, configHash_i, keccak256(policyData_i))) - -digest = keccak256(abi.encode( - ACTOR_INITIALIZATION_TYPEHASH, - bytes32(bytes20(account)), // salt, bound to the account address - chainId, - keccak256(abi.encodePacked(actorHash_0, ..., actorHash_n)) -)) -``` +#### Account Establishment -This digest is a typed (EIP-712-style) struct hash that intentionally omits the EIP-712 domain separator, which prevents phishing via standard wallet signing flows. The `salt` field is bound to the account address, and `chainId` binds the replay domain (matching `applySignedActorChanges`). This typed style is distinct from the packed style used for [Address Derivation](#address-derivation); that split is intentional. Imported actors are always non-expiring: implementations MUST hash `expiry = 0` into every `configHash_i` (as shown), and MUST NOT accept an actor-provided expiry at import. `policyData` is validated with `authorizeActor`'s frozen rule (well-formed `manager ‖ commitment` when `POLICY` is set, empty otherwise), written to `policy_manager`/`policy_commitment`, and hashed into `actorHash_i`; unlike create, `manager = account` is expressible here. +Both `createAccount` and `importAccount` set the `CONTRACT_ESTABLISHED` flag (`flags` bit 0) in the packed account-state slot, regardless of the account's code shape (fresh deployment, plain contract, or [EIP-7702](./eip-7702.md) delegate). The flag is permanent, has no effect on authentication, and marks the account as **keystore-established rather than backed by a proven address-bound key**. -On success, `importAccount` sets the `DEFAULT_EOA_REVOKED` flag (parity with `createAccount`), disabling the implicit native-secp256k1 owner. An owner who wants to keep using that key past import includes the self-actorId as a `K1_AUTHENTICATOR` entry in `initialActors` (lossless: still a full owner, now resolved through its inline default-EOA config, which clears the flag for the self). +It exists because 8130 state can outlive code: an account established and `SELFDESTRUCT`ed in the same transaction ([EIP-6780](./eip-6780.md)) is left with empty code but retains its 8130 state. Consumers (and protocol logic that makes code-delegation decisions) therefore MUST NOT treat "empty code (or a delegate) plus 8130 state" as proof of a known EOA key; they check `CONTRACT_ESTABLISHED` instead. A future genuinely key-backed native path MAY deliberately leave the bit clear. The flag does not infer an address-bound key from code shape — delegate imports remain fully supported. #### Delegation Indicator @@ -351,7 +276,17 @@ The delegation indicator is the [EIP-7702](./eip-7702.md) mechanism for pointing An account is delegated when its code is exactly `0xef0100 || target`, where `target` is a 20-byte address. Delegated accounts MAY originate transactions, and all code-executing operations targeting a delegated account MUST load code from `target` instead of the indicator. -`DEFAULT_ACCOUNT_ADDRESS` SHOULD implement [ERC-1271](./eip-1271.md) by delegating to the Account Configuration Contract's `verifySignature()`, and SHOULD implement token receiver hooks (ERC-721, ERC-1155) to safely receive assets. +### Signature Verification + +The Keystore exposes one raw primitive, `authenticateActor(account, hash, auth)`, which maps a hash and signature to a verified `(actorId, scope)`. Wallet-originated flows — transactions, account changes, and other protocol paths — authenticate directly against it over their own digest. + +Applications that instead request a signature (Sign-In with Ethereum, `Permit`, order flow) use `validateSignature(account, hash, auth)`. This wraps `authenticateActor` with an identity binding that makes the signature replay-safe: `replaySafeHash(account, chainId, hash) = keccak256(SIGNED_MESSAGE_TYPEHASH, account, chainId, hash)` binds the signature to a specific account and chain (`chainId = 0` binds all chains). The `auth` blob is `sigType(1) ‖ authenticator(20) ‖ data`, where `sigType` selects the **Local** (`0x01`) or **Multichain** (`0x02`) domain. + +Because both methods return `(actorId, scope)` rather than a bare boolean, a consumer can attribute a signature to a specific key and make a granular authorization decision — the "who signed" and capability set that plain ERC-1271 discards, surfaced only when a consumer needs it. + +This supersedes ERC-1271 while remaining backwards compatible: an 8130 account implements `isValidSignature(hash, signature)` on top of `validateSignature`, returning the magic value when the resolved actor is operational and treating any revert as invalid. The recommended wrapper is `Scopes.isOperator` (admin, or `SENDER` without `POLICY`; see [Actor Scope](#actor-scope)); the canonical `DefaultAccount` in the contract repository ships this wrapper. + +**Precompiles and native signature verification.** A precompile calling back into the EVM is both undesirable and unimplemented at the time of writing, so ERC-1271 — which verifies by calling the account's `isValidSignature` — is unavailable for native or precompile-based checks. 8130 removes that dependency: the canonical authenticator set is small and enshrinable (see [Canonical Authenticator Set](#canonical-authenticator-set)) and authority lives in a flat `actor_config` slot, so `validateSignature` can run entirely in native code and be exposed as a precompile, producing identical results to EVM execution on non-8130 chains. Future applications may depend on this, as it replaces both `ecrecover` and ERC-1271 cleanly across all chain types. ### AA Transaction Type @@ -363,7 +298,8 @@ AA_TX_TYPE || rlp([ sender, // Sender address (20 bytes) | empty for EOA signature nonce_key, // uint256: nonce channel selector nonce_sequence, // uint64: sequence number - expiry, // Unix timestamp (seconds) + valid_after, // uint64: Unix timestamp (milliseconds); 0 = no lower bound + valid_before, // uint64: Unix timestamp (milliseconds); 0 = no expiry max_priority_fee_per_gas, max_fee_per_gas, gas_limit, @@ -386,7 +322,8 @@ call = rlp([to, data]) // to: address, data: bytes | `sender` | Sending account address. **Required** (non-empty) for configured actor signatures. **Empty** for EOA signatures; address recovered via ecrecover. The presence or absence of `sender` is the sole distinguisher between EOA and configured actor signatures. | | `nonce_key` | `uint256` nonce channel selector. `0` for standard sequential ordering, `1` through `NONCE_KEY_MAX - 1` for parallel channels, `NONCE_KEY_MAX` for nonce-free mode. | | `nonce_sequence` | `uint64` expected sequence number within `nonce_key`. Must match current sequence for `(sender, nonce_key)`. Incremented after inclusion regardless of execution outcome. Must be `0` when `nonce_key == NONCE_KEY_MAX`. | -| `expiry` | `uint64` Unix timestamp (seconds since epoch); encoded as a canonical minimal-length RLP integer. Transaction invalid when `block.timestamp > expiry`. A value of `0` means no expiry. Must be non-zero when `nonce_key == NONCE_KEY_MAX`. | +| `valid_after` | `uint64` Unix timestamp in **milliseconds**; encoded as a canonical minimal-length RLP integer. Transaction invalid when `block.timestamp * 1000 < valid_after`. A value of `0` means no lower bound. Note: many mempools will not hold a not-yet-active transaction and MAY reject one whose `valid_after` is in the future, so it is best used for near-term activation rather than long-dated scheduling. | +| `valid_before` | `uint64` Unix timestamp in **milliseconds**; encoded as a canonical minimal-length RLP integer. Transaction invalid when `block.timestamp * 1000 > valid_before`. A value of `0` means no expiry. Must be non-zero when `nonce_key == NONCE_KEY_MAX`. | | `max_priority_fee_per_gas` | Priority fee per gas unit ([EIP-1559](./eip-1559.md)) | | `max_fee_per_gas` | Maximum fee per gas unit ([EIP-1559](./eip-1559.md)) | | `gas_limit` | Maximum gas budget for sender-intrinsic gas (intrinsic gas excluding payer authentication) and call execution (see [Intrinsic Gas](#intrinsic-gas)). Payer authentication is metered separately and does not draw from `gas_limit` | @@ -397,10 +334,14 @@ call = rlp([to, data]) // to: address, data: bytes | `sender_auth` | See [Signature Format](#signature-format) | | `payer_auth` | Payer authorization. **Empty**: self-pay. **Non-empty**: `authenticator \|\| data`, same format as `sender_auth`. See [Payer Modes](#payer-modes) | +**Millisecond window.** The transaction window (`valid_after`/`valid_before`) is denominated in milliseconds, while on-chain actor and lock expiries are seconds; this split is deliberate and there is no second-denominated variant of these fields. Because `block.timestamp` has second granularity, the **effective** activation/expiry resolution equals the chain's block-timestamp resolution (1 second on most chains today); the millisecond field exists for off-chain clock compatibility (e.g. `Date.now()`, sequencer clocks) and forward-compatibility with sub-second block times, not for finer resolution than the chain itself provides. Can easily be scaled on ingress. + #### Intrinsic Gas **Intrinsic gas** follows the standard Ethereum meaning: the total cost to include the transaction. As in standard transactions it accounts for signature authentication, here both the sender's authentication (`sender_auth_cost`) and the payer's (`payer_auth_cost`) are included. +8130 admits two implementation strategies, and a chain MUST fix which one it uses under consensus because the gas schedule has to agree across all nodes: (1) a **pure-EVM** implementation, where the protocol drives account creation, changes, and validation by calling the Keystore contract in the EVM and meters that as ordinary execution; or (2) a **native** implementation, where the canonical authenticator set (and the Keystore reads it depends on) is native code on the 8130 transaction path, priced with fixed component values rather than metered EVM execution. Both produce identical results (see [Portability](#portability)); they differ only in how authentication work is priced (see [Authenticators](#authenticators)). + The specific per-component gas *values* in this section are a **recommended schedule** that reflects the EVM access and data-availability costs ([EIP-2929](./eip-2929.md) / [EIP-2028](./eip-2028.md)) at the time of writing. They are a reference, not protocol constants: just as a chain may choose how it prices authenticator execution (see [Authenticators](#authenticators)), a chain MAY adopt a different intrinsic-gas schedule, for example to track a future EVM repricing or a local cost model. The formula's structure (its components and what each one accounts for) is the normative part; the absolute numbers below are the recommended values for a chain that mirrors current EVM costs. ``` @@ -434,7 +375,7 @@ execution_gas_available = gas_limit - sender_intrinsic_gas | `tx_payload_cost` | Standard per-byte cost over the entire RLP-serialized transaction: 16 gas per non-zero byte, 4 gas per zero byte, consistent with [EIP-2028](./eip-2028.md). Ensures all transaction fields (`account_changes`, `sender_auth`, `calls`, `metadata`, etc.) are charged for data availability | | `nonce_key_cost` | `NONCE_KEY_MAX`: 13,000 gas (ring-buffer replay state: 2 cold SLOADs + 1 warm SLOAD + 3 warm SSTORE resets; the ring pointer's SLOAD/SSTORE are amortized across the block). Otherwise: 22,100 gas for first use of a `nonce_key` (cold SLOAD + SSTORE set), 5,000 gas for existing keys (cold SLOAD + warm SSTORE reset) | | `bytecode_cost` | 0 if no create entry in `account_changes`. Otherwise: 32,000 (deployment base) + code deposit cost (200 gas per deployed byte). Byte costs for `code` are covered by `tx_payload_cost`; the create entry's initial-actor slot writes are covered by `account_changes_cost` | -| `account_changes_cost` | Per applied create entry: one `actor_config` slot write per initial actor (22,100 gas each: cold SLOAD + SSTORE set). When an initial actor sets `POLICY`, its `policy_manager` and `policy_commitment` slots are also written (22,100 gas each), so a POLICY initial actor is 3 slot-sets (~66,300 gas) versus 1 (~22,100) for a non-policy actor; the extra `policyData` bytes are charged through `tx_payload_cost`. Expiry is not expressible at create. Per applied config change entry: auth authentication cost (same model as `sender_auth_cost`) + storage write costs for each mutated actor slot (`actor_config`; plus `policy_commitment` and `policy_manager` when `(scope & POLICY) != 0`). A config change that authorizes or revokes the **self-actor** mutates the packed account-state slot rather than an `actor_config` slot (the inline default-EOA `scope`/`expiry` and the `DEFAULT_EOA_REVOKED` bit) and, for the mutual-exclusion check between the inline secp256k1 self and a non-k1 self, additionally accesses the reserved `actor_config(self)` slot: +2,100 (cold SLOAD) for a `K1_AUTHENTICATOR` self change, or the normal `actor_config` write plus the account-state slot write for a non-secp256k1 self change. Per applied delegation entry: delegation indicator deposit (4,600 gas, 200 × 23 bytes). Per skipped config change entry (already applied): 2,100 (SLOAD to check sequence). 0 if no create, config change, or delegation entries in `account_changes` | +| `account_changes_cost` | Per applied **create** entry: one `actor_config` slot write per initial actor (22,100 gas each: cold SLOAD + SSTORE set); a `POLICY` actor also writes its `policy_manager`/`policy_commitment` slots (~3 slot-sets, ~66,300 gas). Per applied **config change** entry: auth authentication cost (same model as `sender_auth_cost`) plus the storage writes for each mutated slot (`actor_config`, plus policy slots when `POLICY` is set); self-actor changes mutate the packed account-state slot instead. Per applied **delegation** entry: 4,600 gas (indicator deposit, 200 × 23 bytes). Per **skipped** config-change entry: 2,100 gas (sequence SLOAD). `0` when there is no create, config-change, or delegation entry. Expiry is not expressible at create; `policyData` bytes are charged through `tx_payload_cost` | | `auto_delegation_cost` | Delegation indicator deposit: 4,600 gas (200 × 23 bytes for the `0xef0100 \|\| address` indicator) when a code-less `sender` is auto-delegated to `DEFAULT_ACCOUNT_ADDRESS` (Block Execution step 4). 0 otherwise. | #### Signature Format @@ -467,7 +408,7 @@ Sender and payer use different type bytes for domain separation, preventing sign ``` keccak256(AA_TX_TYPE || rlp([ - chain_id, sender, nonce_key, nonce_sequence, expiry, + chain_id, sender, nonce_key, nonce_sequence, valid_after, valid_before, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, account_changes, calls, metadata, payer @@ -478,7 +419,7 @@ keccak256(AA_TX_TYPE || rlp([ ``` keccak256(AA_PAYER_TYPE || rlp([ - chain_id, sender, nonce_key, nonce_sequence, expiry, + chain_id, sender, nonce_key, nonce_sequence, valid_after, valid_before, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, account_changes, calls, metadata, payer @@ -506,7 +447,6 @@ Gas payment and sponsorship are controlled by two independent fields: | `sender` address | `authenticator (20) \|\| data` | `sender` | Self-pay via a dedicated gas key: payer account == sender. Reads the `payer_auth`-resolved actor on the account, which MUST have SELF_PAYER scope (lets a SELF_PAYER-only key fund another sender key's transactions on the same account) | | other address | `authenticator (20) \|\| data` | `payer` field | Sponsored (payer != sender): any authenticator. Reads payer's `actor_config`, validates against `payer` address, and requires SPONSOR_PAYER scope | - ### Transaction Metadata The `metadata` field is optional opaque bytes for attaching attribution or annotation data to a transaction, for example builder/app attribution, a payment reference or memo, or a commitment to off-chain data. Legacy transactions carry such data as a "data suffix" appended to `tx.input`; because [calls](#call-phases) replace the single input blob, `metadata` provides the equivalent home. @@ -520,10 +460,10 @@ The `account_changes` field is an array of typed entries for account creation an | Type | Name | Description | |------|------|-------------| | `0x00` | Create | Deploy a new account with initial actors (must be first, at most one) | -| `0x01` | Config change | Actor management: authorizeActor, revokeActor | +| `0x01` | Config change | Signed account-change batch: authorize/revoke actors, increment local epoch, lock/unlock | | `0x02` | Delegation | Set code delegation via the delegation indicator (at most one per transaction) | -Create and delegation entries are authorized by the transaction's `sender_auth` and there is no separate authorization field. The initial `actorId`s for create entries are salt-committed to the derived address. Delegation requires the sender to be the account's implicit EOA actor and admin (`scope == 0x00`). Config change entries carry their own `auth` and use a sequence counter for deterministic cross-chain ordering. Nodes SHOULD enforce a configurable per-transaction limit on the number of config change entries (mempool rule). +Create and delegation entries are authorized by the transaction's `sender_auth` and there is no separate authorization field. The initial `actorId`s for create entries are salt-committed to the derived address. Delegation requires the sender to be the account's implicit EOA actor and admin (`scope == 0x00`). Config change entries carry their own admin `auth` and a `channel`/`sequence` for deterministic ordering and cross-chain replay (see [Config Change Authorization](#config-change-authorization)). Nodes SHOULD enforce a configurable per-transaction limit on the number of config change entries (mempool rule). #### Create Entry @@ -538,27 +478,27 @@ rlp([ ]) ``` -Each initial actor carries an `actorId`, `authenticator`, `scope` (`uint8`; `0x00` = unrestricted admin), and `policyData` (empty, or `manager ‖ commitment` when `POLICY` is set), all committed to the derived address (see [Address Derivation](#address-derivation)) so the counterfactual address binds each initial actor's authority. Two things are **not** expressible here: `expiry`, and a self-referential `manager = account` (the account address is not yet known at commitment time). Both are added post-creation with a config change entry, which MAY accompany the create entry in the same `account_changes` array for atomic setup and, running after creation, resolves `manager = account` to a concrete address. For example, a subaccount is created with an admin actor (a delegate to the primary account, `scope = 0x00`) and a restricted app key (`SENDER | SELF_PAYER`, or `POLICY` with an external `manager` inline, or `manager = account` via an accompanying config change). +Each initial actor carries an `actorId`, `authenticator`, `scope` (`uint16`; `0x0000` = unrestricted admin), and `policyData` (empty, or `manager ‖ commitment` when `POLICY` is set), all committed to the derived address (see [Address Derivation](#address-derivation)) so the counterfactual address binds each initial actor's authority. Two things are **not** expressible here: `expiry`, and a self-referential `manager = account` (the account address is not yet known at commitment time). Both are added post-creation with a config change entry, which MAY accompany the create entry in the same `account_changes` array for atomic setup and, running after creation, resolves `manager = account` to a concrete address. For example, a subaccount is created with an admin actor (a delegate to the primary account, `scope = 0x00`) and a restricted app key (`SENDER | SELF_PAYER`, or `POLICY` with an external `manager` inline, or `manager = account` via an accompanying config change). ##### Address Derivation -Addresses are derived using the CREATE2 address formula with the Account Configuration Contract (`ACCOUNT_CONFIG_ADDRESS`) as the deployer. The `initial_actors` MUST be provided already sorted by `actorId` in strictly ascending order. Requiring a single canonical ordering keeps address derivation deterministic (a given set of actors always produces the same address), and the strict ordering also rejects duplicate `actorId`s: +Addresses are derived using the CREATE2 address formula with the Keystore contract (`KEYSTORE_ADDRESS`) as the deployer. The `initial_actors` MUST be provided already sorted by `actorId` in strictly ascending order. Requiring a single canonical ordering keeps address derivation deterministic (a given set of actors always produces the same address), and the strict ordering also rejects duplicate `actorId`s: ``` // initial_actors MUST already be sorted by actorId (strictly ascending); reject otherwise -actors_commitment = keccak256( - actorId_0 || authenticator_0 || scope_0 || policyData_0 || - ... - actorId_n || authenticator_n || scope_n || policyData_n -) +// Hash each actor to a fixed-width leaf, then hash the ordered list of leaves +leaf_i = keccak256(actorId_i || authenticator_i || scope_i || policyData_i) +actors_commitment = keccak256(leaf_0 || leaf_1 || ... || leaf_n) effective_salt = keccak256(user_salt || actors_commitment) deployment_code = DEPLOYMENT_HEADER(len(code)) || code -address = keccak256(0xff || ACCOUNT_CONFIG_ADDRESS || effective_salt || keccak256(deployment_code))[12:] +address = keccak256(0xff || KEYSTORE_ADDRESS || effective_salt || keccak256(deployment_code))[12:] ``` -The per-actor contribution is `actorId || authenticator || scope || policyData`: the 32-byte `actorId`, 20-byte `authenticator`, 1-byte `scope`, and the `policyData` bytes (empty when `POLICY` is unset, or exactly 52 bytes — `manager (20) ‖ commitment (32)` — when `POLICY` is set). The per-actor length is fully determined by `scope`, so the concatenation remains unambiguous. Expiry does not participate. The required strictly-ascending `actorId` ordering makes the commitment canonical. +This is the same hash-the-leaves-then-hash-the-list scheme used for the signed batch and import digests. Each actor's leaf commits `actorId || authenticator || scope || policyData`: the 32-byte `actorId`, 20-byte `authenticator`, 2-byte `scope`, and the `policyData` bytes (empty when `POLICY` is unset, or exactly 52 bytes — `manager (20) ‖ commitment (32)` — when `POLICY` is set). Fixed-width 32-byte leaves make the commitment unambiguous by construction and linear in the actor count. Expiry does not participate (always `0` at create). The required strictly-ascending `actorId` ordering makes the commitment canonical. + +Off-chain address prediction (`computeAddress`) MUST apply the **same** initial-actor validation as create — non-empty set, strictly ascending (non-zero, non-duplicate) `actorId`s, each `authenticator >= K1_AUTHENTICATOR`, and `policyData` length matching `scope` (52 bytes when `POLICY` is set, empty otherwise) — so a predicted address always corresponds to an actor set that create will accept. Otherwise an address could be derived and prefunded for a set a later create would reject, stranding the funds. `DEPLOYMENT_HEADER(n)` is a fixed 14-byte EVM loader that returns the trailing code (see [Appendix: Deployment Header](#appendix-deployment-header) for the full opcode sequence). On non-8130 chains, `createAccount()` constructs `deployment_code` and passes it as init_code to CREATE2. On 8130 chains, the protocol constructs the same `deployment_code` for address derivation but places `code` directly. Callers only provide `code`, the header is never user-facing. @@ -573,76 +513,72 @@ When a create entry is present in `account_changes`: 5. Compute `actors_commitment` per [Address Derivation](#address-derivation) 6. Compute `effective_salt = keccak256(user_salt || actors_commitment)` 7. Compute `deployment_code = DEPLOYMENT_HEADER(len(code)) || code` -8. Compute `expected = keccak256(0xff || ACCOUNT_CONFIG_ADDRESS || effective_salt || keccak256(deployment_code))[12:]` +8. Compute `expected = keccak256(0xff || KEYSTORE_ADDRESS || effective_salt || keccak256(deployment_code))[12:]` 9. Require `sender == expected` 10. Require the destination matches CREATE2 freshness: `code_size(sender) == 0` and `nonce(sender) == 0` (matching the conditions under which CREATE2 would be permitted to deploy) 11. Validate `sender_auth` against one of `initial_actors` (actorId resolved from auth must match an entry's actorId and the auth authenticator must match that entry's authenticator) #### Config Change Entry -Config change entries manage the account's actors. Each entry includes a `chain_id` field where `0` means valid on any chain, allowing replay across chains to synchronize actor state. +A config change entry carries a signed **account-change batch** — the same `SignedAccountChanges` structure applied by the Keystore's single [`applySignedAccountChanges`](#account-config-change-paths) entry point. The batch binds a replay `channel` and a `sequence`, and applies its ordered list of changes atomically (any rejected change reverts the whole batch). ##### Config Change Format ``` rlp([ 0x01, // type: config change - chain_id, // integer (EIP-155); 0 = valid on any chain. Hashed as uint256 in the signed digest - sequence, // uint64: monotonic ordering - actor_changes, // Array of actor changes - auth // Signature from an actor valid at this sequence + channel, // uint8: 0 = Local (binds block.chainid), 1 = Multichain (binds chain_id 0) + sequence, // uint64: Local = local_epoch(high 32) || local_sequence(low 32) + // Multichain = a plain monotonic counter + changes, // Array of account changes + auth // Admin (scope == 0x00) signature over the batch digest ]) -actor_change = rlp([ - change_type, // uint8: operation type (see below) - actorId, // bytes32: actor identifier - data // bytes: operation-specific, ABI-encoded (see below) +change = rlp([ + change_type, // uint8: 0 AuthorizeActor, 1 RevokeActor, 2 IncrementLocalEpoch, 3 Lock, 4 Unlock + payload // bytes: operation-specific, ABI-encoded (see below) ]) ``` -The operation-specific `data` is an opaque `bytes` blob carried in the RLP envelope but encoded with the contract ABI, so the same blob is decoded identically whether the change is applied natively or via `applySignedActorChanges()` on the Account Configuration Contract. It is also the value hashed (as `keccak256(data)`) in the [Config Change Signature Payload](#config-change-signature-payload). +The operation-specific `payload` is an opaque `bytes` blob carried in the RLP envelope but encoded with the contract ABI, so the same blob is decoded identically whether the change is applied natively or via `applySignedAccountChanges` on the Keystore contract. It is also the value hashed (as `keccak256(payload)`) in the [Config Change Signature Payload](#config-change-signature-payload). -**Operation types**: +**Change types**: -| change_type | Name | `data` | Description | -|-------------|------|--------|-------------| -| `0x01` | `authorizeActor` | `abi.encode(ActorConfig config, bytes policyData)` (see [`ActorConfig`](#iaccountconfiguration)) | Authorize a new actor. Writes `actor_config` with `authenticator`, `scope`, and `expiry` (`0` = no expiry) verbatim (unknown scope bits stored as-is). If `POLICY` is set, requires `policyData = manager ‖ commitment` (exactly 52 bytes; neither field need be nonzero) and writes those slots; otherwise requires empty `policyData` and clears policy slots. Writes the packed `actor_config` word with its reserved bytes zeroed (they are not a caller input; see [Storage Layout](#storage-layout)). Does **not** enforce scope-combination exclusivity (that is use-time / protocol). Emits `ActorAuthorized` whose `actorData` is 32 bytes (`authenticator ‖ scope ‖ expiry ‖ reserved`) when `POLICY` is unset, or 84 bytes (appending `manager ‖ commitment`) when `POLICY` is set. | -| `0x02` | `revokeActor` | empty (`0x`) | Revoke an existing actor. Deletes `actor_config` (and `policy_commitment`/`policy_manager`). For the implicit EOA actor (`actorId == bytes32(bytes20(account))`), instead sets the account's `DEFAULT_EOA_REVOKED` flag bit (no `actor_config` write) to prevent implicit re-authorization. Emits `ActorRevoked`. | +| change_type | Name | `payload` | Description | +|-------------|------|-----------|-------------| +| `0` | `AuthorizeActor` | `abi.encode(bytes32 actorId, ActorConfig config, bytes policyData)` (see [`ActorConfig`](#ikeystore)) | Upsert an actor. Writes `actor_config` with `authenticator`, `expiry` (`0` = no expiry; an already-lapsed non-zero expiry is rejected only on the unsequenced/JIT path, otherwise the grant installs **inert** — see [Config Change Authorization](#config-change-authorization)), and `scope` verbatim (unknown scope bits stored as-is), reserved bytes zeroed. If `POLICY` is set, requires `policyData = manager ‖ commitment` (exactly 52 bytes) and writes those slots; otherwise requires empty `policyData` and clears policy slots. Does **not** enforce scope-combination exclusivity (that is use-time / protocol). Emits `ActorAuthorized` whose `actorData` is 32 bytes (`authenticator ‖ expiry ‖ scope ‖ reserved`) when `POLICY` is unset, or 84 bytes (appending `manager ‖ commitment`) when `POLICY` is set. | +| `1` | `RevokeActor` | `abi.encode(bytes32 actorId)` | Revoke an actor. Deletes `actor_config` (and `policy_commitment`/`policy_manager`). For the implicit EOA actor (`actorId == bytes32(bytes20(account))`), instead sets `DEFAULT_EOA_REVOKED` (no `actor_config` write). Emits `ActorRevoked`. | +| `2` | `IncrementLocalEpoch` | empty | **Either channel.** Increments `local_epoch` and resets `local_sequence` to `0`, invalidating every unlanded local signature (sequenced and unsequenced) at the prior epoch. Always targets the local epoch, even when carried in a Multichain batch. Consumes no sequence itself. See [Epoch System](#epoch-system). | +| `3` | `Lock` | `abi.encode(uint16 unlockDelay)` | **Local only, standalone.** Locks the account. See [Account Lock](#account-lock). | +| `4` | `Unlock` | empty | **Local only, standalone.** Initiates unlock. See [Account Lock](#account-lock). | #### Config Change Authorization -Each config change entry represents a set of operations authorized at a specific sequence number. The `auth` must be valid against the account's actor configuration *at the point after all previous entries in the list have been applied*. The authorizing actor must be **admin**: `scope == 0x00` (see [Actor Scope](#actor-scope)). - -The sequence number is scoped by `chain_id`: `0` uses the multichain sequence channel (valid on any chain), while a specific `chain_id` uses that chain's local channel. +Each batch is authorized by a single **admin** signature (`scope == 0x00`; flat authorization, see [Actor Scope](#actor-scope)) over the batch digest. The `auth` follows the same [Signature Format](#signature-format) as `sender_auth` (`authenticator || data`) and, when a batch is applied inside a list, must be valid against the account's actor state *after all previous entries have been applied*. Anyone may relay; authorization comes from the signature. -The change-sequence channels double as the initialized flag. Creation and import set the local channel to `1`, and any applied config change bumps whichever channel it used (local for a chain-specific `chain_id`, multichain for `chain_id 0`). Otherwise only the implicit EOA is on the account. +The `channel` selects the replay domain and how `sequence` is interpreted: -##### Config Change Signature Payload +- **Multichain** (`chain_id 0`): a plain monotonic `uint64` counter, valid on any chain, for synchronizing actor state across chains. Each applied batch consumes the counter (`sequence` MUST equal the current value, then it increments). There is no epoch and no unsequenced mode on this channel, though a Multichain batch MAY still carry an `IncrementLocalEpoch` change that bumps the account's local epoch. +- **Local** (`block.chainid`): `sequence` is the packed word `local_epoch(high 32) || local_sequence(low 32)`. The batch is rejected with `StaleEpoch` unless its high half equals the current `local_epoch`. The low half selects one of two modes: + - **Sequenced** (low half `< UNSEQUENCED`): the low half MUST equal the current `local_sequence`; on success `local_sequence` increments. This is the ordered, replay-once mode. + - **Unsequenced / JIT** (low half `== UNSEQUENCED`, i.e. `uint32` max): consumes no counter and does not increment `local_sequence`. It is permissive — any change may ride an unsequenced batch — and remains replayable until the epoch moves. Because it consumes no counter, ordering between two unsequenced batches is undefined. Retiring an unsequenced (JIT) authorization durably is done by bumping the epoch (`IncrementLocalEpoch`), typically batched with the reducing change. See [Epoch System](#epoch-system). -Entry signatures use ABI-encoded type hashing. Operations within an entry are individually ABI-encoded and hashed into an array digest: - -``` -TYPEHASH = keccak256("SignedActorChanges(address account,uint256 chainId,uint64 sequence,ActorChange[] actorChanges)ActorChange(uint8 changeType,bytes32 actorId,bytes data)") -ACTORCHANGE_TYPEHASH = keccak256("ActorChange(uint8 changeType,bytes32 actorId,bytes data)") +**Expiry on `AuthorizeActor` is channel/mode-aware.** The fail-fast — reject a non-zero `expiry` that is not strictly in the future — applies **only to the unsequenced/JIT path**, because a JIT grant is replayable and its expiry is what bounds that replay: once lapsed it must never re-land. A **single-consume** batch (any Multichain batch, or a **Sequenced** local batch) cannot be replayed, so an already-lapsed grant is not rejected; it installs **inert** — the `actor_config` slot is written (the actor is present and revocable) but the actor is not live, since authentication yields expired per [Actor Expiry](#actor-expiry) — and still consumes its sequence. Multichain relies on this: a chain catching up must replay a historical expiring grant's slot (e.g. a periodically-renewed operator) in order to reach the current live grant, so reverting on the stale slot would strand its counter. A zero `expiry` is the "no expiry" sentinel and is always accepted. -actorChangeHashes = [keccak256(abi.encode(ACTORCHANGE_TYPEHASH, changeType, actorId, keccak256(data))) for each actorChange] -actorChangesHash = keccak256(abi.encodePacked(actorChangeHashes)) +The combined local word (`local_epoch || local_sequence`) doubles as the initialized flag: creation and import set `local_sequence = 1`, so an all-zero word means uninitialized (only the implicit EOA is on the account). -digest = keccak256(abi.encode(TYPEHASH, account, chainId, sequence, actorChangesHash)) -``` - -Domain separation from transaction signatures (`AA_TX_TYPE`, `AA_PAYER_TYPE`) is structural; transaction hashes use `keccak256(type_byte || rlp([...]))`, which cannot produce the same prefix as `abi.encode(TYPEHASH, ...)`. +##### Config Change Signature Payload -The `auth` follows the same [Signature Format](#signature-format) as `sender_auth` (`authenticator || data`), validated against the account's actor state at that point in the sequence. +The batch digest is a typed (ABI-encoded, EIP-712-style) struct hash binding `account`, the resolved `chainId` (`0` for Multichain, else `block.chainid`), the `sequence` word, and the ordered `changes` (each change hashed over its `change_type` and `keccak256(payload)`). Domain separation from transaction signatures (`AA_TX_TYPE`, `AA_PAYER_TYPE`) is structural: transaction hashes use `keccak256(type_byte || rlp([...]))`, which cannot collide with the ABI-encoded struct hash. The exact typehash strings and digest construction are defined in the canonical repository (`src/Keystore.sol`). ##### Account Config Change Paths -The same signed actor change can be applied through two paths: +The same signed batch (`SignedAccountChanges`) can be applied through two paths: -- **`account_changes` (tx field)**: processed by the protocol before code deployment on 8130 chains. -- **`applySignedActorChanges()` (EVM)**: applied during EVM execution on any chain, including non-8130 chains and ERC-4337 deployments. +- **`account_changes` (tx field)**: consumed by the protocol before code deployment on 8130 chains. +- **`applySignedAccountChanges` (EVM)**: applied during EVM execution on any chain, including non-8130 chains and ERC-4337 deployments. -Both paths carry the same signed actor changes, share the same `change_sequence` counters, and are equally portable (`chain_id 0` for cross-chain or a specific `chain_id` for chain-local). They differ only in transport: the protocol consumes the signed change directly on 8130 chains, while everywhere else the EVM function does. `applySignedActorChanges()` parses the authenticator address from `auth`, calls the authenticator to get the `actorId`, and checks `actor_config`. `authorizeActor` writes `actor_config` and, when `POLICY` is set, the `policy_commitment` and `policy_manager` slots; `revokeActor` clears them all. Anyone can call these functions; authorization comes from the signed operation, not the caller. `authorizeActor`/`revokeActor` and delegation are blocked when the account is locked; lock/unlock use the dedicated `applySignedLockChanges` entry point (see [Account Lock](#account-lock)). +Both paths carry the same batch, share the same channels and counters, and are equally portable (Multichain for cross-chain, Local for chain-local). They differ only in transport. `applySignedAccountChanges` parses the authenticator from `auth`, resolves the admin `actorId`, verifies the batch digest, and applies each change in order per the [change-type table](#config-change-format). Anyone may call it; authorization comes from the signed batch, not the caller. Authority changes and delegation are blocked while the account is locked; only `Unlock` and `IncrementLocalEpoch` may be applied to a locked account (see [Account Lock](#account-lock)). #### Delegation Entry @@ -672,7 +608,7 @@ For 8130 transactions, successful delegation updates emit a protocol-injected `D `account_changes` entries are processed in order before call execution: -1. **Create entry** (if present): Register `initial_actors` in Account Config storage for `sender`, for each `[actorId, authenticator, scope, policyData]` tuple writing `actor_config` with the given `authenticator` and `scope` verbatim and `expiry = 0` (expiry is not expressible at create). When `scope & POLICY != 0`, also write `policy_manager`/`policy_commitment` from `policyData` (`manager ‖ commitment`); when unset there are no policy slots. A tuple naming the self-actorId (`actorId == bytes32(bytes20(sender))`) with `K1_AUTHENTICATOR` writes its `scope` into the inline default-EOA fields instead (`expiry = 0`). Mark the account initialized by setting its local change-sequence channel to `1` (see [Config Change Authorization](#config-change-authorization)). Initialize lock state to safe defaults: `LOCKED`/`UNLOCK_INITIATED` flags clear, `lock_union = 0`. Set the `DEFAULT_EOA_REVOKED` flag so a freshly created account does not leave a native secp256k1 owner live unless one is among `initial_actors`. Place `code` at `sender`. +1. **Create entry** (if present): apply the create entry (see [Create Entry](#create-entry)) — place `code` at `sender`, register `initial_actors` in Keystore storage, mark the account initialized (local channel = `1`), initialize lock state to safe defaults, and set `DEFAULT_EOA_REVOKED` unless a self-actor is among `initial_actors`. 2. **Config change entries** (if any): Apply operations in entry order. Reject transaction if account is locked. 3. **Delegation entries** (if any): Require admin EOA-actor delegation authority (see [Delegation Entry](#delegation-entry)). Reject if account is locked. For each entry, set `code(sender) = 0xef0100 || target` (or clear if `target` is `address(0)`). Reject if account has non-delegation bytecode. @@ -695,7 +631,7 @@ Calls carry no ETH value. ETH transfers are initiated by the account's wallet by ##### Call Phases -`calls` is a two-level structure: an ordered array of **phases**, where each phase is an ordered array of individual calls (`[[call, ...], [call, ...]]`). This gives two levels of atomicity where calls grouped within a phase are all-or-nothing, while phases commit independently in sequence (see [Why Call Phases?](#why-call-phases)). +`calls` is a two-level structure: an ordered array of **phases**, where each phase is an ordered array of individual calls (`[[call, ...], [call, ...]]`) — **sequentially-committed atomic call groups**. This gives two levels of atomicity where calls grouped within a phase are all-or-nothing, while phases commit independently in sequence. Phases execute in order from a single gas pool (`gas_limit`). Within each phase, calls execute in order and are **atomic** so if any call in a phase reverts, all state changes for that phase are discarded and remaining phases are **skipped**. Completed phases **persist** and their state changes are committed and survive later phase reverts. @@ -723,7 +659,7 @@ The Transaction Context precompile at `TX_CONTEXT_ADDRESS` provides read-only ac | `getTransactionPayer()` | `address`, gas payer (`sender` for self-pay, payer for sponsored) | Execution only | | `getTransactionSenderActorId()` | `bytes32`, authenticated actor's actorId | Execution only | -If the wallet needs the authenticator address or scope, it calls `getActorConfig(account, actorId)` on the Account Configuration Contract. A policy target reached as a `call.to` identifies which key it is acting for by combining `getTransactionSender()` and the authenticated `getTransactionSenderActorId()` from this precompile, then reads the actor's gate target and signed `commitment` via `getPolicy(account, actorId)` in one call and validates the presented policy parameters against the commitment. The commitment lives in Account Configuration storage (where it is written and revoked), not the precompile, keeping the precompile to immutable transaction context. +If the wallet needs the authenticator address or scope, it calls `getActorConfig(account, actorId)` on the Keystore contract. A policy target reached as a `call.to` identifies which key it is acting for by combining `getTransactionSender()` and the authenticated `getTransactionSenderActorId()` from this precompile, then reads the actor's gate target and signed `commitment` via `getActor(account, actorId)` in one call and validates the presented policy parameters against the commitment. The commitment lives in Keystore storage (where it is written and revoked), not the precompile, keeping the precompile to immutable transaction context. **Non-8130 chains**: No code at `TX_CONTEXT_ADDRESS`; STATICCALL returns zero/default values. @@ -733,8 +669,8 @@ The system is split into storage and authentication layers with different portab | Component | 8130 chains | Non-8130 chains | |-----------|-------------|-----------------| -| **Account Configuration Contract** | Protocol reads storage directly for validation; EVM interface available | Standard contract (ERC-4337 compatible factory) | -| **Authenticator Contracts** | Protocol calls authenticators via STATICCALL | Same onchain contracts callable by account config contract and wallets | +| **Keystore contract** | Protocol reads storage directly for validation; EVM interface available | Standard contract (ERC-4337 compatible factory) | +| **Authenticator Contracts** | Protocol calls authenticators via STATICCALL | Same onchain contracts callable by the Keystore contract and wallets | | **Code Delegation** | Delegation entry in `account_changes` (EOA-only authorization in this version) | Standard [EIP-7702](./eip-7702.md) transactions (ECDSA authority) | | **Transaction Context** | Precompile at `TX_CONTEXT_ADDRESS`; protocol populates, authenticators read | No code at address; STATICCALL returns zero/default values | | **Nonce Manager** | Precompile at `NONCE_MANAGER_ADDRESS` | Not applicable; nonce management by existing systems (e.g., ERC-4337 EntryPoint) | @@ -749,16 +685,16 @@ All contracts are deployed at deterministic CREATE2 addresses across chains. 2. Resolve sender: if `sender` set, use it; if empty, ecrecover from `sender_auth` 3. Determine effective actor state: a. If create entry present in `account_changes`: verify address derivation, `code_size(sender) == 0`, use `initial_actors` - b. Else: read from Account Config storage + b. Else: read from Keystore storage 4. If config change or delegation entries present in `account_changes`: reject if account is locked (see [Account Lock](#account-lock)). For config change entries: simulate applying operations in sequence, skip already-applied entries. For delegation entries: verify `code_size(sender) == 0` or existing delegation designator. 5. Validate `sender_auth` against resulting actor state (see [Validation](#validation)) and check scope per [Actor Scope](#actor-scope): SENDER (or `POLICY`) for the sender context, and admin or `NONCE` when `nonce_key != NONCE_KEY_MAX`. Payer scope (SELF_PAYER / SPONSOR_PAYER) is checked in step 6, not here — the sender actor is not required to carry a payer bit. If delegation entries are present, the resolved actor must additionally hold admin EOA-actor delegation authority (see [Delegation Entry](#delegation-entry)). 6. Resolve payer from `payer` and `payer_auth`: - `payer` empty and `payer_auth` empty: self-pay. Payer is `sender`; the resolved sender actor's SELF_PAYER scope authorizes payment. Reject if balance insufficient. - `payer` = `sender` (explicit) with `payer_auth`: self-pay via a dedicated gas key. Payer account == sender; validate `payer_auth` against the account's `actor_config` and require SELF_PAYER scope on the resolved actor. Reject if balance insufficient. - `payer` = a different 20-byte address (sponsored): `payer_auth` uses any authenticator. Validate `payer_auth` against the `payer` address's `actor_config`. Require SPONSOR_PAYER scope on the resolved actor. -7. Verify nonce, payer ETH balance, and expiry. Two independent `expiry` fields are checked and both MUST be satisfied: the transaction `expiry` (inclusion validity, `block.timestamp <= expiry`) and the resolved actor's `expiry` (key liveness, per [Actor Expiry](#actor-expiry) and step 3). Either one lapsed rejects the transaction. Regardless of nonce mode, nodes MAY also reject a transaction whose `expiry` is too near to be reliably included. +7. Verify nonce, payer ETH balance, and validity bounds. The transaction's validity window and the resolved actor's liveness are all checked and MUST hold: the transaction is valid only when `valid_after == 0 || valid_after <= block.timestamp * 1000` and `valid_before == 0 || block.timestamp * 1000 <= valid_before`, and the resolved actor's `expiry` (**seconds**) is unlapsed (`expiry == 0 || block.timestamp <= expiry`, per [Actor Expiry](#actor-expiry) and step 3). Any bound violated rejects the transaction. The transaction window is in milliseconds while on-chain actor/lock expiries are in seconds — a deliberate split that requires no sub-second timekeeping (see [Field Definitions](#field-definitions)). Regardless of nonce mode, nodes MAY also reject a transaction whose `valid_before` is too near to be reliably included, and MAY reject (rather than hold) one whose `valid_after` is not yet active. - **Standard keys** (`nonce_key != NONCE_KEY_MAX`): require `nonce_sequence == current_sequence(sender, nonce_key)`. - - **Nonce-free key** (`nonce_key == NONCE_KEY_MAX`): skip nonce check, require `nonce_sequence == 0`, require non-zero `expiry`, and reject if `expiry` is farther out than `NONCE_FREE_EXPIRY_WINDOW` (the chain parameter bounded by `REPLAY_BUFFER_CAPACITY`, see [Nonce-Free Mode](#nonce-free-mode-nonce_key_max)). Deduplicate by the [Replay Identifier](#replay-identifier) (`replay_id`), not the full transaction hash. + - **Nonce-free key** (`nonce_key == NONCE_KEY_MAX`): skip nonce check, require `nonce_sequence == 0`, require non-zero `valid_before`, and reject if `valid_before` is farther out than `NONCE_FREE_EXPIRY_WINDOW` (the chain parameter bounded by `REPLAY_BUFFER_CAPACITY`, see [Nonce-Free Mode](#nonce-free-mode-nonce_key_max)). Deduplicate by the [Replay Identifier](#replay-identifier) (`replay_id`), not the full transaction hash. 8. Mempool threshold: gas payer's pending count below node-configured limits. 9. Apply [Mempool Replacement](#mempool-replacement) rules: for standard and 2D transactions (`nonce_key != NONCE_KEY_MAX`), when a pending transaction from the same `sender` shares this transaction's `(nonce_key, nonce_sequence)`; for nonce-free transactions (`nonce_key == NONCE_KEY_MAX`), when a pending transaction from the same `sender` shares this transaction's `replay_id`. @@ -779,7 +715,7 @@ Nodes MAY apply higher pending transaction rate limits based on account lock sta 6. Set transaction context on the Transaction Context precompile (sender, payer, actorId). 7. Execute `calls` per [Call Execution](#call-execution) semantics. -Unused gas from `gas_limit` is refunded to the payer. For step 5, the protocol SHOULD inject log entries into the transaction receipt (e.g., `ActorAuthorized`, `ActorRevoked`, `AccountCreated`, `DelegationApplied`) matching the events defined in the [IAccountConfiguration](#iaccountconfiguration) interface, following the protocol-injected log pattern established by [EIP-7708](./eip-7708.md). These protocol-injected logs are emitted only for 8130 transactions. +Unused gas from `gas_limit` is refunded to the payer. For step 5, the protocol SHOULD inject log entries into the transaction receipt (e.g., `ActorAuthorized`, `ActorRevoked`, `AccountCreated`, `DelegationApplied`) matching the events defined in the [IKeystore](#ikeystore) interface, following the protocol-injected log pattern established by [EIP-7708](./eip-7708.md). These protocol-injected logs are emitted only for 8130 transactions. ### RPC Extensions @@ -791,7 +727,7 @@ Unused gas from `gas_limit` is refunded to the payer. For step 5, the protocol S - `status` (uint8): `0x01` = all phases succeeded (or `calls` was empty), `0x00` = one or more phases reverted. Existing tools checking `status == 1` remain correct for the success path. **`status == 0` does not imply "no state change."** Committed earlier phases (the sponsor pattern relies on this), auto-delegation, applied `account_changes`, nonce consumption, and gas payment all persist through a later phase revert. Consumers MUST NOT treat a failed AA receipt as a no-op. `gasUsed` includes `payer_auth_cost` (see [Intrinsic Gas](#intrinsic-gas)). - `phaseStatuses` (uint8[]): Per-phase status array. Each entry is `0x01` (success) or `0x00` (reverted). Phases after a revert are not executed and reported as `0x00`. Empty if `calls` was empty. -**`eth_estimateGas`** / **`eth_call`**: Accept the AA transaction fields (`sender`, `nonceKey`, `accountChanges`, `calls`, `expiry`, `metadata`, `payer`, `senderAuth`, `payerAuth`) alongside the standard request object and price the request as an `AA_TX_TYPE` transaction. Because authentication gas is determined by the auth blob's *shape* rather than a valid signature (see [Intrinsic Gas](#intrinsic-gas)), the request is priced from an **unsigned** representative blob; no signature is produced or verified. The sender is taken from `sender` or the standard `from` (equivalently) and if both are present they MUST be equal. +**`eth_estimateGas`** / **`eth_call`**: Accept the AA transaction fields (`sender`, `nonceKey`, `accountChanges`, `calls`, `validAfter`, `validBefore`, `metadata`, `payer`, `senderAuth`, `payerAuth`) alongside the standard request object and price the request as an `AA_TX_TYPE` transaction. Because authentication gas is determined by the auth blob's *shape* rather than a valid signature (see [Intrinsic Gas](#intrinsic-gas)), the request is priced from an **unsigned** representative blob; no signature is produced or verified. The sender is taken from `sender` or the standard `from` (equivalently) and if both are present they MUST be equal. ### Constants @@ -801,21 +737,18 @@ Unused gas from `gas_limit` is refunded to the payer. For step 5, the protocol S | `AA_PAYER_TYPE` | `0x7A` | Magic byte for payer signature domain separation | | `REPLAY_ID_TYPE` | `0x7901` | Magic prefix for `replay_id` domain separation (see [Replay Identifier](#replay-identifier)) | | `AA_BASE_COST` | 15000 | Base intrinsic gas cost | -| `ACCOUNT_CONFIG_ADDRESS` | CREATE2-derived (resolved at deployment) | Account Configuration system contract address | +| `KEYSTORE_ADDRESS` | CREATE2-derived (resolved at deployment) | Keystore system contract address | | `K1_AUTHENTICATOR` | `address(1)` | Native secp256k1 (ECDSA) authenticator (implicit default EOA and explicitly registered k1 actors) | -| `DEFAULT_EOA_REVOKED` | `0x01` | Account-state `flags` bit that disables the implicit default-EOA path | -| `LOCKED` | `0x02` | Account-state `flags` bit that freezes actor configuration (see [Account Lock](#account-lock)) | -| `UNLOCK_INITIATED` | `0x04` | Account-state `flags` bit selecting the `lock_union` interpretation (`unlock_delay` vs `unlocks_at`) | +| `CONTRACT_ESTABLISHED` | `0x01` | Account-state `flags` bit marking a keystore-established account (see [Account Establishment](#account-establishment)) | +| `DEFAULT_EOA_REVOKED` | `0x02` | Account-state `flags` bit that disables the implicit default-EOA path | +| `LOCKED` | `0x04` | Account-state `flags` bit that freezes actor configuration (see [Account Lock](#account-lock)) | +| `UNLOCK_INITIATED` | `0x08` | Account-state `flags` bit selecting the `lock_union` interpretation (`unlock_delay` vs `unlocks_at`) | | `NONCE_MANAGER_ADDRESS` | `0x813000000000000000000000000000000000aa01` | Nonce Manager precompile address | | `TX_CONTEXT_ADDRESS` | `0x813000000000000000000000000000000000aa02` | Transaction Context precompile address | | `DEFAULT_ACCOUNT_ADDRESS` | CREATE2-derived (resolved at deployment) | Default wallet implementation for auto-delegation | -| `NONCE_KEY_MAX` | `2^256 - 1` | Nonce-free mode (expiry-only replay protection) | +| `NONCE_KEY_MAX` | `2^256 - 1` | Nonce-free mode (validity-window replay protection) | | `REPLAY_BUFFER_CAPACITY` | chain parameter | Fixed capacity of the nonce-free `replay_id` ring buffer; identical for every node on the chain (consensus). See [Nonce-Free Mode](#nonce-free-mode-nonce_key_max) | -### Appendix: Storage Layout - -The protocol reads storage directly from the Account Configuration Contract (`ACCOUNT_CONFIG_ADDRESS`). The storage layout is defined by the deployed contract bytecode; slot derivation follows from the contract's Solidity storage declarations. The final deployed contract source serves as the canonical reference for slot locations. - ### Appendix: Deployment Header The `DEPLOYMENT_HEADER(n)` is a 14-byte EVM loader that copies trailing code into memory and returns it. The header encodes code length `n` into its `PUSH2` instructions: @@ -848,38 +781,25 @@ The canonical set establishes a shared baseline where wallets that use canonical ### Why Actor Policies? -Session keys often need narrow authority: only this token, only this much per day, only this action. `POLICY` makes gated initiation a first-class grant, distinct from ungated `SENDER`: the key may originate transactions, but only to a single call target, bound to a signed opaque **commitment**. The protocol's only policy responsibility is the single-target gate plus storing the commitment. Allowing `POLICY | SELF_PAYER` lets a session key self-pay; note this exposes the account's full ETH balance to gas spend (see [Why Split PAYER into SELF_PAYER and SPONSOR_PAYER?](#why-split-payer-into-self_payer-and-sponsor_payer)). +Session keys often need narrow authority: only this token, only this much per day, only this action. `POLICY` makes gated initiation a first-class grant, distinct from ungated `SENDER`: the key may originate transactions, but only to a single call target, bound to a signed opaque **commitment**. The protocol's only policy responsibility is the single-target gate plus storing the commitment. Allowing `POLICY | SELF_PAYER` lets a session key self-pay; note this exposes the account's full ETH balance to gas spend (see [Payer Modes](#payer-modes)). -### Why Admin Is Scope Zero +### Why a Local Epoch? -Admin is the predicate `scope == 0x00` rather than a dedicated grant bit because a "config-only" grant would be indistinguishable from full access. Any key that can rewrite `actor_config` can grant itself `scope == 0x00`, so the authority to change configuration is already administratively equivalent to unrestricted authority. Naming admin as the absence of any restriction makes this self-escalation explicit instead of hiding it behind a bit that could be misread as narrowly scoped. It also gives every account a natural root: the all-zero inline default-EOA config is a non-expiring admin, and restricted keys are strictly grants below that root. +Session keys and just-in-time (JIT) authorizations want two things that pull against a shared counter: they should be usable in any order (no coordination), and the account should be able to cancel any it has handed out that have not yet landed. A single monotonic `local_sequence` gives ordering but forces every signature to burn the next slot, so parallel keys contend and a stale signature can still land later. Splitting the local word into `local_epoch || local_sequence` separates the two concerns: sequenced changes still consume `local_sequence` for ordered, replay-once semantics, while an epoch bump is a single blunt "cancel everything outstanding on the local channel" that resets the counter and invalidates every not-yet-landed local signature at the prior epoch (`StaleEpoch`). Crucially it cancels *signatures*, not *authority* — actors from landed batches survive — so bumping the epoch is cheap to reason about and cannot brick a live actor set. That is what makes the unsequenced/JIT mode (`UNSEQUENCED`) safe: a JIT batch is intentionally replayable within its epoch, and durable retirement is just an epoch bump batched with the reducing change (see [Epoch System](#epoch-system)). ### Why No Public Key Storage? Authenticators receive the public key (or full credential) in transaction calldata and recover the `actorId` from it, rather than the protocol storing keys onchain. This keeps per-actor state to a single `actor_config` SLOAD regardless of key size, which matters most for large post-quantum credentials: storing them would add permanent state growth of tens of slots per actor. Calldata is also cheaper than cold storage for material read once per transaction — on the order of 2,048 vs 6,300 gas for a P256 key and 21,000 vs 88,000 gas for a PQ key — so the calldata-plus-recovery model is both smaller and cheaper than an onchain key registry. -### Design Layering - -Restrictions the Account Configuration contract must enforce are complete at deployment: the signer is admin (`scope == 0x00`), reserved-bytes-zero, and well-formed `policyData` when `POLICY` is set. Grants can grow because reads fail closed on unknown bits — `NONCE` itself is such a grant, added to the spare bit space without changing the frozen surface above. Signing semantics (e.g. approved typed data for session keys) evolve at the account layer. - ### Why Not Reject Scope Combinations at Write Time? -The Account Configuration contract is a single immutable CREATE2 deployment, so it cannot know which grants or combinations future forks will define; rejecting combinations at write time would freeze today's rules into unupgradeable code. `authorizeActor` therefore stores scope verbatim and validates only timeless structure (admin signer, reserved-bytes-zero, well-formed `policyData`). Combination semantics are checked at the point of use by whichever context reads the scope — protocol validation for the transaction paths, and the contract's `verifySignature()` (operational) for the ERC-1271 path — so an unsatisfiable combo is simply inert. - +The Keystore contract is a single immutable CREATE2 deployment, so it cannot know which grants or combinations future forks will define; rejecting combinations at write time would freeze today's rules into unupgradeable code. `AuthorizeActor` therefore stores scope verbatim and validates only timeless structure (admin signer, reserved-bytes-zero, well-formed `policyData`). Combination semantics are checked at the point of use by whichever context reads the scope — protocol validation for the transaction paths, and account-level ERC-1271 signing (operational) for the signing path (see [Signature Verification](#signature-verification)) — so an unsatisfiable combo is simply inert. ### Why 2D Nonce + `NONCE_KEY_MAX`? Additional `nonce_key` values allow parallel transaction lanes without nonce contention between independent workflows. -`NONCE_KEY_MAX` enables nonce-free transactions where replay protection comes from short-lived `expiry` and node-level deduplication by the fee- and signature-invariant [Replay Identifier](#replay-identifier). This is useful for operations where nonce ordering coordination is undesirable. Reserving `NONCE_KEY_MAX` as the sentinel permanently removes one channel from the `2^256`-wide nonce space, which is immaterial in practice; `NONCE_KEY_MAX` is always nonce-free and is never a sequenced channel, even for an actor holding `NONCE` scope. - -### Why the NONCE Grant? - -A restricted (non-admin) actor without `NONCE` is confined to `NONCE_KEY_MAX` (nonce-free), whose replay protection is a short `expiry` window (`NONCE_FREE_EXPIRY_WINDOW`): the transaction is invalid if not included in that window. An actor that instead needs an ordered, non-expiring sequence opts in with `NONCE` and may then use any `nonce_key` in the full 2D space. Making sequenced channels a grant, rather than the default, keeps the common session-key case coordination-free and reserves ordered channels for actors that explicitly want them. - -### Why Split PAYER into SELF_PAYER and SPONSOR_PAYER? - -Both authorize spending the account's ETH on gas, and neither bounds how much — a compromised key of either kind can burn the balance. The split separates what the spend can *buy*. `SELF_PAYER` converts ETH only into the account's own transactions (gated, if the actor carries `POLICY`); compromise is vandalism, monetizable only with a colluding builder taking priority fees. `SPONSOR_PAYER` converts ETH into inclusion for arbitrary third-party senders — an economically transferable authority that can be operated as a paymaster service and monetized out-of-band, no builder collusion required. Session keys get `SELF_PAYER` by default; a sponsorship service's hot key is `SPONSOR_PAYER`-only — the minimal grant for a paymaster operating from a locked treasury, with no `SENDER` or config authority. Paired with the locked-payer trusted-bytecode tier (see [Mempool Acceptance](#mempool-acceptance)), a node can reason "this key's only possible effect is a balance decrease via gas" from the scope byte alone. Because self-pay is defined relationally (`payer == sender`), the delegate-authenticator path threads through `SPONSOR_PAYER`: account B sponsoring via A's delegate actor is `payer != sender` from A's view and so requires `SPONSOR_PAYER` on that actor — default-deny for cross-account payment. +`NONCE_KEY_MAX` enables nonce-free transactions where replay protection comes from a short-lived validity window (`valid_before`) and node-level deduplication by the fee- and signature-invariant [Replay Identifier](#replay-identifier). This is useful for operations where nonce ordering coordination is undesirable. Reserving `NONCE_KEY_MAX` as the sentinel permanently removes one channel from the `2^256`-wide nonce space, which is immaterial in practice; `NONCE_KEY_MAX` is always nonce-free and is never a sequenced channel, even for an actor holding `NONCE` scope. ### Why Account Lock? @@ -887,7 +807,7 @@ Locked accounts have a frozen actor set, so the primary state that can invalidat ### Why CREATE2 for Account Creation? -The create entry uses the CREATE2 address formula with `ACCOUNT_CONFIG_ADDRESS` as the deployer address for cross-chain portability: +The create entry uses the CREATE2 address formula with `KEYSTORE_ADDRESS` as the deployer address for cross-chain portability: 1. **Deterministic addresses**: Same `user_salt + code + initial_actors` produces the same address on any chain 2. **Pre-deployment funding**: Users can receive funds at counterfactual addresses before account creation @@ -900,16 +820,9 @@ The create entry uses the CREATE2 address formula with `ACCOUNT_CONFIG_ADDRESS` ### External Account Factories -Account creation, import, signed actor changes, and locking are ordinary EVM entry points on the Account Configuration Contract, so external factories can compose them to mint accounts into a desired end state. This is always possible in EVM but is **not** available on the 8130 transaction path. - -*Non-normative future work:* once [EIP-7819](./eip-7819.md) is adopted, the protocol could be extended with a single canonical external factory. The create entry would emit an [EIP-7702](./eip-7702.md) delegation prefix and deploy the account from that factory, which uses Account Configuration Contract state to check the signature and upgrade, extending the delegation account change to all authenticator types rather than the native secp256k1 EOA only as today. - -### Why Call Phases? +Account creation, import, signed actor changes, and locking are ordinary EVM entry points on the Keystore contract, so external factories can compose them to mint accounts into a desired end state. This is always possible in EVM but is **not** available on the 8130 transaction path. -Phases provide two atomic batching levels without per-call mode flags: - -- **Atomic batching**: One phase, all-or-nothing. -- **Sponsor protection**: Payment in phase 0 persists even if user actions in phase 1 revert. +*Non-normative future work:* once [EIP-7819](./eip-7819.md) is adopted, the protocol could be extended with a single canonical external factory. The create entry would emit an [EIP-7702](./eip-7702.md) delegation prefix and deploy the account from that factory, which uses Keystore contract state to check the signature and upgrade, extending the delegation account change to all authenticator types rather than the native secp256k1 EOA only as today. ### Why a Metadata Field? @@ -921,11 +834,7 @@ The protocol dispatches each call directly to the specified `to` address with `m ### Why a Transaction Context Precompile? -Transaction context (sender, payer, calls, gas) is immutable transaction metadata; it never changes during execution. `actorId` is set after validation and available during execution only. A precompile is the natural fit: - -- **Zero protocol write cost**: The precompile reads directly from the client's in-memory transaction struct: no HashMap insert, no journaling, no rollback tracking. -- **Pull model**: Consumers read only what they need: policies read `actorId` to enforce per-actor limits, and accounts may inspect `payer` for fee reimbursement or access logic. -- **Forward compatible**: New context fields are added as new precompile functions, with no interface changes to `IAuthenticator` or existing authenticator contracts. +Transaction context (sender, payer, calls, gas) is immutable transaction metadata; it never changes during execution, and `actorId` is set after validation and available during execution only. A precompile is the natural fit: it reads directly from the client's in-memory transaction struct (no journaling or rollback tracking), consumers pull only what they need (policies read `actorId` for per-actor limits, accounts inspect `payer`), and new context fields are added as new functions without changing `IAuthenticator` or existing authenticators. ## Backwards Compatibility @@ -935,103 +844,94 @@ No breaking changes. Existing EOAs and smart contracts function unchanged. Adopt - ERC-4337 infrastructure continues operating - Accounts gain AA capabilities by configuring actors. EOAs sending their first AA transaction are auto-delegated to `DEFAULT_ACCOUNT_ADDRESS` if they have no code. EOAs MAY override with a delegation entry in `account_changes` (EOA-only authorization), a standard [EIP-7702](./eip-7702.md) transaction, or use a create entry in `account_changes` for custom wallet implementations -The `actor_config` layout (`authenticator ‖ scope ‖ expiry ‖ reserved`, with the scope-bit assignment and the reserved bytes acting as a version gate), the address-derivation commitment, and the ABI surface (typehashes, events, `importAccount`/`applySignedActorChanges` signatures) are defined by this specification. Because 8130 has no prior deployment, there is no live actor state written under an earlier format to migrate; the formats here are authoritative from first deployment. +The `actor_config` layout (`authenticator ‖ expiry ‖ scope ‖ reserved`, with the scope-bit assignment and the reserved bytes acting as a version gate) and the address-derivation commitment are defined by this specification; the full contract ABI surface (typehashes, events, and function signatures such as `importAccount`/`applySignedAccountChanges`) is defined in the canonical repository (`src/Keystore.sol`). Because 8130 has no prior deployment, there is no live actor state written under an earlier format to migrate; the formats here are authoritative from first deployment. ## Reference Implementation -### IAccountConfiguration +### IKeystore -The Account Configuration contract is the canonical ABI surface (no separate interface file is kept in sync). The -reference below mirrors the public structs, events, and functions of that contract. +The Keystore contract is the canonical ABI surface. Its full source — exact storage packing, typehashes, event ABIs, and function bodies — lives in the canonical contracts repository (the `base` organization's EIP-8130 repository on GitHub, `src/Keystore.sol`) and is authoritative. The sketch below mirrors only the protocol-relevant shape; consult the repository for the complete interface. ```solidity -interface IAccountConfiguration { +interface IKeystore { + // Packed account state (see Account Lock). The signed local word is localEpoch(high 32) || localSequence(low 32). struct ChangeSequences { - uint64 multichain; // chain_id 0 - uint64 local; // chain_id == block.chainid; starts at 1 once initialized (created/imported), 0 = uninitialized + uint64 multichain; // chain_id 0 channel; a plain monotonic counter + uint32 localEpoch; // local channel epoch; IncrementLocalEpoch bumps it and resets localSequence to 0 + uint32 localSequence; // local channel counter; low half of the signed local word } struct ActorConfig { address authenticator; - uint8 scope; // grants bitmask; 0x00 = unrestricted (admin); 0x01 = SENDER; 0x02 = POLICY; 0x04 = NONCE; 0x08 = SELF_PAYER; 0x10 = SPONSOR_PAYER; ERC-1271 signing requires operational authority (admin or SENDER without POLICY), not a grant - uint48 expiry; // Unix seconds; 0 = no expiry. Actor invalid once block.timestamp > expiry + uint48 expiry; // Unix seconds; 0 = no expiry. Actor invalid once block.timestamp > expiry + uint16 scope; // grants bitmask; 0x0000 = unrestricted (admin). See Actor Scope } - // Actor used for account creation and import. Carries scope and policyData - // (empty unless POLICY set, then manager[20] || commitment[32], per authorizeActor's rule). - // expiry is NOT expressible here and is added post-deployment via config changes - // (initial actors are always non-expiring). + // Actor used for account creation and import. expiry is NOT expressible here (initial actors are always + // non-expiring; add expiry post-deployment via a config change). policyData: empty unless POLICY, then manager[20] || commitment[32]. struct InitialActor { bytes32 actorId; address authenticator; - uint8 scope; // 0x00 = unrestricted (admin) - bytes policyData; // empty unless POLICY set; then manager[20] || commitment[32] + uint16 scope; + bytes policyData; } - struct Actor { - bytes32 actorId; - ActorConfig config; - bytes policyData; // empty unless POLICY set; then manager[20] || commitment[32] + enum AccountChangeChannel { Local, Multichain } + enum ChangeType { AuthorizeActor, RevokeActor, IncrementLocalEpoch, Lock, Unlock } + // Leading byte of a signature envelope: Local (0x01) binds block.chainid, Multichain (0x02) binds chainId 0. + enum SignatureType { Invalid, Local, Multichain } + + struct AccountChange { + ChangeType changeType; + bytes payload; // AuthorizeActor: abi.encode(bytes32 actorId, ActorConfig, bytes policyData); + // RevokeActor: abi.encode(bytes32 actorId); Lock: abi.encode(uint16 unlockDelay); others empty } - struct ActorChange { - uint8 changeType; // 0x01 = authorizeActor, 0x02 = revokeActor - bytes32 actorId; - bytes data; // operation-specific: abi.encode(ActorConfig, bytes policyData) for authorize; empty for revoke + struct SignedAccountChanges { + AccountChangeChannel channel; + uint64 sequence; // Local: localEpoch || localSequence; Multichain: monotonic counter + AccountChange[] changes; + bytes signature; // admin (scope == 0x00): authenticator || data } - // Tightly packed authorization surface: - // authenticator(20) || scope(1) || expiry(6) || reserved(5) — 32 bytes — - // and, only when scope & POLICY != 0, manager(20) || commitment(32) (84 bytes total). + uint32 constant UNSEQUENCED = type(uint32).max; // JIT sentinel for the local low half + event ActorAuthorized(address indexed account, bytes32 indexed actorId, bytes actorData); event ActorRevoked(address indexed account, bytes32 indexed actorId); event AccountCreated(address indexed account, bytes32 userSalt, bytes32 codeHash); event AccountImported(address indexed account); + event LocalEpochIncremented(address indexed account, uint32 localEpoch); // Protocol-injected receipt log for successful EIP-8130 delegation updates (not emitted in EVM). event DelegationApplied(address indexed account, address target); event AccountLocked(address indexed account, uint16 unlockDelay); - event AccountUnlockInitiated(address indexed account, uint40 unlocksAt); + event AccountUnlockInitiated(address indexed account, uint48 unlocksAt); - // Account creation (factory) + // Account creation (factory) and counterfactual address preview. function createAccount(bytes32 userSalt, bytes calldata bytecode, InitialActor[] calldata initialActors) external returns (address); function computeAddress(bytes32 userSalt, bytes calldata bytecode, InitialActor[] calldata initialActors) external view returns (address); - // Import existing account (ERC-1271). chainId: 0 = multichain; else MUST equal block.chainid. + // Import an existing account (ERC-1271). chainId: 0 = multichain; else MUST equal block.chainid. function importAccount(address account, uint256 chainId, InitialActor[] calldata initialActors, bytes calldata signature) external; - // Portable actor changes. chainId: 0 = multichain sequence; else local (MUST equal block.chainid). - function applySignedActorChanges(address account, uint256 chainId, ActorChange[] calldata actorChanges, bytes calldata auth) external; - - // Account lock. Signed, relayable, admin-authorized. op: 1 = lock, 2 = unlock. - // Local channel only: the contract binds the digest to block.chainid and the current local_sequence, which the op then increments. - function applySignedLockChanges( - address account, - uint8 op, - uint16 unlockDelay, - bytes calldata auth - ) external; - - // Signature verification and actor authentication - // verifySignature: ERC-1271-style boolean check; returns false on any failure. - // authenticateActor: returns the actor's authorization surface verbatim; reverts on failure. - function verifySignature(address account, bytes32 hash, bytes calldata signature) external view returns (bool verified); - function authenticateActor(address account, bytes32 hash, bytes calldata auth) - external view returns (uint8 scope, address policyTarget); - - // Storage views - function isActor(address account, bytes32 actorId) external view returns (bool); - // Returns stored bytes unmodified (verbatim reporting). + // Single signed entry point for all account changes (authorize/revoke actor, increment epoch, lock/unlock). + function applySignedAccountChanges(address account, SignedAccountChanges calldata changes) external; + + // Typed-envelope message signing (see Signature Verification). Returns the verified signer and its authority + // — the "who signed" + granular authority that plain ERC-1271 lacks. auth = sigType(1) || authenticator(20) || data. + // 8130 accounts implement ERC-1271 isValidSignature on top of this, gating on operational scope. + function validateSignature(address account, bytes32 hash, bytes calldata auth) external view returns (bytes32 actorId, uint16 scope); + // Envelope digest a signer signs: keccak256(SIGNED_MESSAGE_TYPEHASH, account, chainId, hash). chainId 0 = all chains. + function replaySafeHash(address account, uint256 chainId, bytes32 hash) external pure returns (bytes32); + function envelopeDigest(SignatureType sigType, address account, bytes32 hash) external view returns (bytes32); + // Lower-level: authenticate an actor over a raw digest (no envelope). Used by off-8130 (e.g. ERC-4337) consumers. + function authenticateActor(address account, bytes32 hash, bytes calldata auth) external view returns (bytes32 actorId, uint16 scope); + + // Storage views (see the canonical repository for the complete set). function getActorConfig(address account, bytes32 actorId) external view returns (ActorConfig memory); - // Aggregate: (manager, commitment). Gating is determined by the POLICY scope bit; slots are zero when POLICY is unset. - function getPolicy(address account, bytes32 actorId) - external view returns (address target, bytes32 commitment); - // Single-SLOAD accessors for the execution hot path. - function getPolicyCommitment(address account, bytes32 actorId) external view returns (bytes32); - function getPolicyManager(address account, bytes32 actorId) external view returns (address); + function getActor(address account, bytes32 actorId) external view returns (ActorConfig memory config, address policyManager, bytes32 policyCommitment); function getChangeSequences(address account) external view returns (ChangeSequences memory); - function isLocked(address account) external view returns (bool); - // Decodes the lock_union / mode bit and folds in effective-unlock, so callers never see the packed layout. - function getLockStatus(address account) external view returns (bool locked, bool hasInitiatedUnlock, uint40 unlocksAt, uint16 unlockDelay); + function getLockStatus(address account) external view returns (bool locked, bool hasInitiatedUnlock, uint48 unlocksAt, uint16 unlockDelay); + function isContractEstablished(address account) external view returns (bool); // keystore-established, not a proven address key } ``` @@ -1072,15 +972,15 @@ Read-only. The protocol manages nonce storage directly; there are no state-modif **Validation Surface**: For canonical authenticators, invalidators are `actor_config` changes and nonce consumption. -**Replay Protection**: Transactions include `chain_id`, 2D nonce (`nonce_key`, `nonce_sequence`), and `expiry`. For standard and 2D transactions (`nonce_key != NONCE_KEY_MAX`), replay protection and deduplication are provided by the nonce sequence: inclusion increments `(sender, nonce_key)`, so a given `(sender, nonce_key, nonce_sequence)` can be included at most once. `replay_id` does not apply to these transactions. For `NONCE_KEY_MAX` (nonce-free mode), there is no nonce slot, so replay protection relies on short-lived `expiry` and deduplication by the fee- and signature-invariant [Replay Identifier](#replay-identifier) (`replay_id`); the chain enforces a tight expiry window (`NONCE_FREE_EXPIRY_WINDOW`) to bound the window, and block builders MUST NOT include two transactions with the same `(sender, replay_id)` (see [Mempool Replacement](#mempool-replacement)). +**Replay Protection**: Transactions include `chain_id`, 2D nonce (`nonce_key`, `nonce_sequence`), and a validity window (`valid_after`, `valid_before`). For standard and 2D transactions (`nonce_key != NONCE_KEY_MAX`), replay protection and deduplication are provided by the nonce sequence: inclusion increments `(sender, nonce_key)`, so a given `(sender, nonce_key, nonce_sequence)` can be included at most once. `replay_id` does not apply to these transactions. For `NONCE_KEY_MAX` (nonce-free mode), there is no nonce slot, so replay protection relies on the short-lived `valid_before` bound and deduplication by the fee- and signature-invariant [Replay Identifier](#replay-identifier) (`replay_id`); the chain enforces a tight window (`NONCE_FREE_EXPIRY_WINDOW`) to bound it, and block builders MUST NOT include two transactions with the same `(sender, replay_id)` (see [Mempool Replacement](#mempool-replacement)). The full transaction hash MUST NOT be used for nonce-free deduplication or mempool replacement. The transaction hash commits to fee fields (`max_fee_per_gas`, `max_priority_fee_per_gas`, `gas_limit`) and to `sender_auth` and `payer_auth` (the authorization blobs), all of which `replay_id` excludes. Keying on the transaction hash would allow trivial duplication of a single logical transaction, or would treat an intentional fee bump as an unrelated transaction: -- **Fee bumps**: a legitimate replacement raising `max_priority_fee_per_gas` (or `max_fee_per_gas`) changes the transaction hash while leaving the effects, `calls`, `metadata`, `expiry`, and `payer` identical. `replay_id` is unaffected, so the bump is recognized as a replacement of the same logical transaction rather than a distinct one; the bumped transaction still requires a fresh `payer_auth` when sponsored, since `payer_auth` commits to the fee fields. +- **Fee bumps**: a legitimate replacement raising `max_priority_fee_per_gas` (or `max_fee_per_gas`) changes the transaction hash while leaving the effects, `calls`, `metadata`, validity window (`valid_after`, `valid_before`), and `payer` identical. `replay_id` is unaffected, so the bump is recognized as a replacement of the same logical transaction rather than a distinct one; the bumped transaction still requires a fresh `payer_auth` when sponsored, since `payer_auth` commits to the fee fields. - **Re-signed `payer_auth`**: the sender signs over the `payer` *address* but not the payer's signature bytes, so a sponsor can produce a different `payer_auth` for the same sender body, yielding a different transaction hash for the same logical transaction. - **`sender_auth` non-determinism**: ECDSA signing is randomized (a fresh nonce `k` produces a different valid `(r, s)` for the same message and key) and signatures are additionally malleable, so the same key can produce multiple distinct-but-valid `sender_auth` values for one transaction body. Each recovers the same sender yet yields a different transaction hash. -All three cases resolve to the same `replay_id` (fee bumps included, since `replay_id` excludes the fee fields), so deduplicating and replacing on it collapses them to a single mempool slot and, ultimately, a single includable transaction. `expiry` cannot be extended via a fee-bump replacement: `expiry` is part of `replay_id`, so changing it produces a different `replay_id` and a new logical transaction, not a replacement of the old one which must independently satisfy nonce/sequence and mempool acceptance rules. +All three cases resolve to the same `replay_id` (fee bumps included, since `replay_id` excludes the fee fields), so deduplicating and replacing on it collapses them to a single mempool slot and, ultimately, a single includable transaction. The validity window cannot be extended via a fee-bump replacement: `valid_after` and `valid_before` are part of `replay_id`, so changing either produces a different `replay_id` and a new logical transaction, not a replacement of the old one which must independently satisfy nonce/sequence and mempool acceptance rules. **Actor Scope and Policy**: Scope grants are protocol-enforced after authenticator execution during validation (fail closed). The policy gate is protocol-enforced during execution (`ActorPolicyViolation`). See [Actor Scope](#actor-scope) and [Actor Policies](#actor-policies). @@ -1092,6 +992,8 @@ All three cases resolve to the same `replay_id` (fee bumps included, since `repl **Actor Expiry**: Prefer non-expiring admins and apply `expiry` only to restricted keys; a sole expiring admin bricks the account and breaks cross-chain reconstruction (see [Actor Expiry](#actor-expiry)). +**Local Epoch and Outstanding Signatures**: `IncrementLocalEpoch` cancels every unlanded **local** signature at the prior epoch (`StaleEpoch`), including unsequenced/JIT batches; it does **not** revoke live actors or affect the multichain channel (see [Epoch System](#epoch-system)). Because an unsequenced (JIT) batch is replayable within its epoch, wallets MUST treat epoch increment — not mere non-inclusion — as the durable retirement of a JIT authorization, batching the reducing `RevokeActor`/`AuthorizeActor` with `IncrementLocalEpoch`. Since the epoch does not walk authorizer lineage, an actor added by a landed batch survives later epoch bumps and must be removed with an explicit `RevokeActor`. + **Implicit EOA Rule Scoping**: The implicit EOA authorization rule only applies when authentication used the native secp256k1 path, either the EOA path (`sender` empty) or `K1_AUTHENTICATOR`, and the account's `DEFAULT_EOA_REVOKED` flag is unset. Generic authenticator contracts MUST NOT satisfy the implicit branch even if they return `bytes32(bytes20(sender))`, otherwise an arbitrary authenticator could authenticate as any EOA whose implicit actor slot has never been written. **actorId Binding**: The protocol checks that the authenticator's returned `actorId` maps back to that authenticator in `actor_config`, preventing a malicious authenticator from claiming control of another authenticator's actors. From 6a3b988b70552644b4c801dc55aa7be5edef20c2 Mon Sep 17 00:00:00 2001 From: Ignacio Hagopian Date: Tue, 11 Aug 2026 15:03:36 -0300 Subject: [PATCH 32/53] Update EIP-7709: Move to Draft Merged by EIP-Bot. --- EIPS/eip-7709.md | 51 ++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/EIPS/eip-7709.md b/EIPS/eip-7709.md index 785247491eacf6..0c7c4c625efdd4 100644 --- a/EIPS/eip-7709.md +++ b/EIPS/eip-7709.md @@ -1,10 +1,10 @@ --- eip: 7709 -title: Read BLOCKHASH from storage and update cost +title: Read BLOCKHASH from Storage and Update Cost description: Read the `BLOCKHASH (0x40)` opcode from the EIP-2935 system contract storage and adjust its gas cost to reflect storage access. author: Vitalik Buterin (@vbuterin), Tomasz Stanczak (@tkstanczak), Guillaume Ballet (@gballet), Gajinder Singh (@g11tech), Tanishq Jasoria (@tanishqjasoria), Ignacio Hagopian (@jsign), Jochem Brouwer (@jochem-brouwer), Gabriel Rocheleau (@gabrocheleau) discussions-to: https://ethereum-magicians.org/t/eip-7709-read-blockhash-opcode-from-storage-and-adjust-gas-cost/20052 -status: Stagnant +status: Draft type: Standards Track category: Core created: 2024-05-18 @@ -17,15 +17,20 @@ Update the `BLOCKHASH (0x40)` opcode to read and serve from the system contract ## Motivation -The `BLOCKHASH (0x40)` opcode currently assumes that the client has knowledge of the previous blocks, which in Verkle [EIP-6800](./eip-6800.md) would prevent stateless execution. However with [EIP-2935](./eip-2935.md) blockhashes can be retrieved and served from its system contract storage which allows Verkle blocks to include a storage access witness for stateless execution. +The `BLOCKHASH (0x40)` opcode currently assumes that the client has access to recent block history. This makes it a protocol special case: it depends on historical chain data, but it is not modeled like other state-backed reads. + +With [EIP-2935](./eip-2935.md), recent block hashes are stored in the system contract storage. This allows in-window `BLOCKHASH` lookups to be modeled as storage-backed accesses while preserving the existing `BLOCKHASH` return-value semantics. ## Specification +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). + | Parameter | Value | | ------------------------- | ------ | | `FORK_TIMESTAMP` | TBD | | `HISTORY_STORAGE_ADDRESS` | `0x0000F90827F1C53a10cb7A02335B175320002935` | | `BLOCKHASH_SERVE_WINDOW` | `256` | +| `HISTORY_SERVE_WINDOW` | `8191` | The `BLOCKHASH` opcode semantics remains the same as before. From the `fork_block` (defined as `fork_block.timestamp >= FORK_TIMESTAMP and fork_block.parent.timestamp < FORK_TIMESTAMP`), the `BLOCKHASH` instruction should be updated to resolve block hash in the following manner: @@ -33,37 +38,35 @@ The `BLOCKHASH` opcode semantics remains the same as before. From the `fork_bloc def resolve_blockhash(block: Block, state: State, arg: uint64): # note that outside the BLOCKHASH_SERVE_WINDOW we continue to return 0 # despite the 2935 history contract being able to serve more hashes - if arg >= block.number or (arg + BLOCKHASH_SERVE_WINDOW) < block.number + if arg >= block.number or (arg + BLOCKHASH_SERVE_WINDOW) < block.number: return 0 # performs an sload on arg % HISTORY_SERVE_WINDOW including gas charges, - # warming effects as well as execution accesses + # warming effects as well as state-access recording # # note that the `BLOCKHASH_SERVE_WINDOW` and the 2935 ring buffer window # `HISTORY_SERVE_WINDOW` for slot calculation are different return state.load_slot(HISTORY_STORAGE_ADDRESS, arg % HISTORY_SERVE_WINDOW) ``` -ONLY if the `arg` is within the correct `BLOCKHASH` window, clients can choose to either +If the `arg` is within the correct `BLOCKHASH` window, clients MAY choose to either * do a direct `SLOAD` from state, or * do a system call to [EIP-2935](./eip-2935.md) contract via its `get` mechanism (caller other than `SYSTEM_ADDRESS`) or * serve from memory or as per current designs if maintaining requisite history (full clients for e.g.) -However the entire semantics and after effects of the `SLOAD` operation needs to be applied as per the current fork if the `arg` is within the correct `BLOCKHASH` window: +Regardless of the chosen resolution method, clients MUST apply the entire semantics and effects of the `SLOAD` operation as defined by the active fork if the `arg` is within the correct `BLOCKHASH` window: * `SLOAD` gas costs (cold or warm) for the `arg % HISTORY_SERVE_WINDOW` slot. * `SLOAD` after effects on the slot (warming the slot) -* `SLOAD` accesses added to execution witnesses if Verkle ([EIP-6800](./eip-6800.md) and [EIP-4762](./eip-4762.md)) is activated +* Any state-access recording required by the active fork for the corresponding `SLOAD`. ### Activation This EIP specifies the transition to the new logic assuming that [EIP-2935](./eip-2935.md) has been activated: * sufficiently ahead of this EIP's activation (>= `BLOCKHASH_SERVE_WINDOW`) or -* at genesis for testnets/devnets where this EIP could also be activated at genesis - -The current proposal is to activate this EIP with Verkle to allow for stateless execution of the block. +* at genesis for testnets/devnets where this EIP could also be activated at genesis. ### Gas costs @@ -71,26 +74,32 @@ As described above, if the `arg` to be resolved is within the correct window, th ### Reading from the System contract -Even if the clients choose to resolve `BLOCKHASH` through system call to [EIP-2935](./eip-2935.md) contract, the gas cost for the system code execution (and also the code witnesses if Verkle activated) is not applied. Only the effect of `SLOAD` is applied as described above. +Even if the clients choose to resolve `BLOCKHASH` through system call to [EIP-2935](./eip-2935.md) contract, the gas cost for the system code execution is not applied. Only the effect of `SLOAD` is applied as described above. ## Rationale -* The reason behind the updated gas cost is to match the real operation, which is equivalent to an `SLOAD`. -* The [EIP-2935](./eip-2935.md) system contract execution charges (and accesses) are not applied to keep the gas low and to keep things simple for clients which choose to resolve `BLOCKHASH` in other ways (directly or though memory/maintained history) +* The updated gas cost matches the accessed resource, which is equivalent to reading from storage. +* Charging normal `SLOAD`-like cold and warm costs keeps `BLOCKHASH` aligned with existing state-access pricing instead of adding a separate gas rule for recent block hashes. +* A client can alternatively prove recent block hashes through a chain of parent headers, but that keeps `BLOCKHASH` as a special case in witness construction rather than using the state access machinery provided by [EIP-2935](./eip-2935.md). +* Always charging the warm `SLOAD` cost, or introducing a custom `BLOCKHASH` price, could reduce compatibility risk but would introduce a new special-case gas rule. +* The [EIP-2935](./eip-2935.md) system contract execution charges and accesses are not applied to keep the gas low and to keep things simple for clients which choose to resolve `BLOCKHASH` in other ways (directly or through memory/maintained history). -Note that `BLOCKHASH` opcode only serves a limited `BLOCKHASH_SERVE_WINDOW` to be backward compatible (and to not extend the above exemptions). For deeper accesses one will need to directly call [EIP-2935](./eip-2935.md) system contract which will lead to a normal contract execution (as well as charges and accesses) +Note that `BLOCKHASH` opcode only serves a limited `BLOCKHASH_SERVE_WINDOW` to be backward compatible (and to not extend the above exemptions). For deeper accesses one will need to directly call [EIP-2935](./eip-2935.md) system contract which will lead to a normal contract execution (as well as charges and accesses). ## Backwards Compatibility -This EIP introduces a significant increase in the cost of `BLOCKHASH`, which could break use-cases that rely on the previous gas cost. Also, this EIP introduces a breaking change in the case where less than `BLOCKHASH_SERVE_WINDOW` elapse between the [EIP-2935](./eip-2935.md) fork and this EIP's fork (unless [EIP-2935](./eip-2935.md) is activated in genesis for e.g. in testnets/devnets) as the [EIP-2935](./eip-2935.md) system contract would not have saved the required history. +This EIP does not change the return-value semantics of `BLOCKHASH`. + +This EIP introduces a significant increase in the cost of in-window `BLOCKHASH` queries, which could break use-cases that rely on the previous gas cost. Also, this EIP introduces a breaking change in the case where less than `BLOCKHASH_SERVE_WINDOW` elapse between the [EIP-2935](./eip-2935.md) fork and this EIP's fork (unless [EIP-2935](./eip-2935.md) is activated in genesis for e.g. in testnets/devnets) as the [EIP-2935](./eip-2935.md) system contract would not have saved the required history. ## Test Cases -* If `BLOCKHASH` is not called or there is no [EIP-2935](./eip-2935.md) contract call by any transaction, only the [EIP-2935](./eip-2935.md) system update of the parent hash shows up in witnesses if Verkle is activated. -* If `BLOCKHASH` is called, there MUST be a storage access gas charge (and corresponding access witness if Verkle is activated) for the storage slot but ONLY if the `BLOCKHASH` query is for the last `BLOCKHASH_SERVE_WINDOW` ancestors. This is irrespective of how the client chooses to resolve the `BLOCKHASH` (directly, via system contract or via memory) -* The gas cost for each `BLOCKHASH` operation should still be charged, in addition to the `SLOAD` cost of each lookup (if performed) -* If the [EIP-2935](./eip-2935.md) contract is called directly (i.e. not through `BLOCKHASH`), then the witness and gas costs (including those related to contract code) are applied as per normal contract execution of the current fork. -* `BLOCKHASH` should be consistently resolved if this EIP is activated correctly `>= BLOCKHASH_SERVE_WINDOW` after [EIP-2935](./eip-2935.md) +* If `BLOCKHASH` is called with an argument outside the last `BLOCKHASH_SERVE_WINDOW` ancestors, or with an argument greater than or equal to the current block number, it returns `0` without applying additional storage access effects. +* If `BLOCKHASH` is called for an in-window ancestor and the corresponding storage slot is cold, the opcode charges the base `BLOCKHASH` cost plus the cold `SLOAD` cost. +* If `BLOCKHASH` is called more than once in the same transaction for a block number that maps to the same storage slot, the later lookup charges the warm `SLOAD` cost. +* The gas cost for each `BLOCKHASH` operation should still be charged, in addition to the `SLOAD` cost of each lookup (if performed). +* If the [EIP-2935](./eip-2935.md) contract is called directly (i.e. not through `BLOCKHASH`), then the gas costs, state-access recording, and any other effects are applied as per normal contract execution of the current fork. +* `BLOCKHASH` should be consistently resolved if this EIP is activated correctly `>= BLOCKHASH_SERVE_WINDOW` after [EIP-2935](./eip-2935.md). ## Security Considerations From 5276aa8cbfca985b0d7c81a2e3476c1528f9df6c Mon Sep 17 00:00:00 2001 From: Daniil Ankushin Date: Wed, 12 Aug 2026 01:02:22 +0400 Subject: [PATCH 33/53] Update EIP-8141: ban SLOTNUM during validation-prefix execution (#12066) --- EIPS/eip-8141.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index 7be34f84844eb4..1c21113978627b 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -832,6 +832,7 @@ For `VERIFY` frames, the usual `STATICCALL` restrictions apply except for the pr - BASEFEE (0x48) - BLOBHASH (0x49) - BLOBBASEFEE (0x4A) +- SLOTNUM (0x4B, [EIP-7843](./eip-7843.md)) - GAS (0x5A) - Except when followed immediately by a `*CALL` instruction. This is the standard method of passing gas to a child call and does not create an additional public mempool dependency. - CREATE (0xF0) From 064f49621d05ce25323def867a6a2ed9275d3570 Mon Sep 17 00:00:00 2001 From: Daniil Ankushin Date: Wed, 12 Aug 2026 01:04:54 +0400 Subject: [PATCH 34/53] Update EIP-8141: link the first reference to each cited proposal Merged by EIP-Bot. --- EIPS/eip-8141.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index 1c21113978627b..d1e0047a4bfbf0 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -70,9 +70,9 @@ Below are high-level definitions of each field in the transaction definition. De - `sender` -- the address of the intended sender of the transaction. - `frames` -- list of frames to execute. - `signatures` -- list of validated signatures available to the transaction. -- `max_priority_fee_per_gas` -- the EIP-1559 priority fee per gas the transaction will pay. +- `max_priority_fee_per_gas` -- the [EIP-1559](./eip-1559.md) priority fee per gas the transaction will pay. - `max_fee_per_gas` -- the maximum EIP-1559 fee the transaction is willing to pay, per gas. -- `max_fee_per_blob_gas` -- the maximum EIP-4844 fee per blob gas the transaction is willing to pay. Must be `0` if `blob_versioned_hashes` is empty. +- `max_fee_per_blob_gas` -- the maximum [EIP-4844](./eip-4844.md) fee per blob gas the transaction is willing to pay. Must be `0` if `blob_versioned_hashes` is empty. - `blob_versioned_hashes` -- list of EIP-4844 blob versioned hashes. ##### Frame object @@ -464,7 +464,7 @@ tx_unused_gas = sum( ) ``` -Storage gas refunds ([EIP-3529](./eip-3529.md)) accumulate across frames into a single transaction-scoped `refund_counter`. Changes made to the counter by a reverted frame, or by frames unrolled as part of a failed atomic batch, are discarded together with that frame's state changes. At the end of the transaction, apply the storage refund and EIP-7623 rules to get the final `gas_used` value: +Storage gas refunds ([EIP-3529](./eip-3529.md)) accumulate across frames into a single transaction-scoped `refund_counter`. Changes made to the counter by a reverted frame, or by frames unrolled as part of a failed atomic batch, are discarded together with that frame's state changes. At the end of the transaction, apply the storage refund and [EIP-7623](./eip-7623.md) rules to get the final `gas_used` value: ```python gas_used_before_refund = standard_gas_limit - tx_unused_gas @@ -983,7 +983,7 @@ The EIP-7702 authorization list heavily relies on ECDSA cryptography to determin ### No access list -The access list was introduced to address a particular backwards compatibility issue that was caused by EIP-2929. The risk-reward of using an access list successfully is high. A single miss, paying to warm a storage slot that does not end up getting used, causes the overall transaction cost to be greater than had it not been included at all. +The access list was introduced to address a particular backwards compatibility issue that was caused by [EIP-2929](./eip-2929.md). The risk-reward of using an access list successfully is high. A single miss, paying to warm a storage slot that does not end up getting used, causes the overall transaction cost to be greater than had it not been included at all. Future optimizations based on pre-announcing state elements a transaction will touch will be covered by block level access lists. @@ -1021,7 +1021,7 @@ That extension could also define a `PUBLISHPK` instruction to validate a public While we expect EOA users to migrate to smart accounts eventually, we recognize that most Ethereum users today are using EOAs, so we want to improve UX for them where we can. -Thanks to the default code, EOAs today can use frame transactions to reap many benefits of account abstraction, including sending sponsored transactions, paying gas in ERC-20 tokens, batch transactions, and more. +Thanks to the default code, EOAs today can use frame transactions to reap many benefits of account abstraction, including sending sponsored transactions, paying gas in [ERC-20](./eip-20.md) tokens, batch transactions, and more. ### Non-canonical paymasters in the mempool @@ -1172,7 +1172,7 @@ Notes: Gas assumes cost < 2^24. Calldata assumes small proxy. Notes: Sponsor can read info from other fields. ERC-20 transfer call is 68 bytes. -There is some inefficiency in the sponsor case, because the same sponsor address must appear in three places (sponsor validation, send to sponsor inside ERC-20 calldata, post op frame), and the ABI is inefficient (~12 + 24 bytes wasted on zeroes). This is difficult to mitigate in a "clean" way, because one of the duplicates is inside the ERC-20 call, "opaque" to the protocol. However, it is much less inefficient than ERC-4337, because not all of the data takes the hit of the 32-byte-per-field ABI overhead. +There is some inefficiency in the sponsor case, because the same sponsor address must appear in three places (sponsor validation, send to sponsor inside ERC-20 calldata, post op frame), and the ABI is inefficient (~12 + 24 bytes wasted on zeroes). This is difficult to mitigate in a "clean" way, because one of the duplicates is inside the ERC-20 call, "opaque" to the protocol. However, it is much less inefficient than [ERC-4337](./eip-4337.md), because not all of the data takes the hit of the 32-byte-per-field ABI overhead. ### Blob support From 582684e2d7d372c09f45777be8ea603e485e9e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maria=20In=C3=AAs=20Silva?= Date: Wed, 12 Aug 2026 11:53:12 +0100 Subject: [PATCH 35/53] Update EIP-8368: author list Merged by EIP-Bot. --- EIPS/eip-8368.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-8368.md b/EIPS/eip-8368.md index d04c7ef833d128..7be62939881cce 100644 --- a/EIPS/eip-8368.md +++ b/EIPS/eip-8368.md @@ -2,7 +2,7 @@ eip: 8368 title: CPSB Recalibration for New Gas Limit description: Re-derives the cost per state byte (CPSB) parameter introduced in EIP-8037 for a new reference block gas limit -author: Maria Silva (@misilva73) +author: Maria Silva (@misilva73), Toni Wahrstätter (@nerolation) discussions-to: https://ethereum-magicians.org/t/eip-8368-cpsb-recalibration-for-new-gas-limit/29293 status: Draft type: Standards Track From f516cef8b482bf123d554ee12ff5b421f5578d38 Mon Sep 17 00:00:00 2001 From: Daniel Knopik <107140945+dknopik@users.noreply.github.com> Date: Wed, 12 Aug 2026 15:26:48 +0200 Subject: [PATCH 36/53] Update EIP-8070: Clarify custodyColumns `null` behavior Merged by EIP-Bot. --- EIPS/eip-8070.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-8070.md b/EIPS/eip-8070.md index 11e6fff14a76b0..7da52f3ce08264 100644 --- a/EIPS/eip-8070.md +++ b/EIPS/eip-8070.md @@ -96,7 +96,7 @@ Request: - params: 1. `forkchoiceState`: `ForkchoiceStateV1`. 2. `payloadAttributes`: `Object|null` - Instance of `PayloadAttributesV4` or `null`. - 3. `custodyColumns`: `DATA|null` - 16-byte value interpreted as a bitarray of length `CELLS_PER_EXT_BLOB`, where a `1` at position `i` indicates the CL node has custody of column `i`. `null` if the CL does not provide custody services. + 3. `custodyColumns`: `DATA|null` - 16-byte value interpreted as a bitarray of length `CELLS_PER_EXT_BLOB`, where a `1` at position `i` indicates the CL node has custody of column `i`. `null` if the CL is unable to provide an update. - timeout: 8s Response: @@ -110,7 +110,7 @@ Specification: 3. For type 3 transactions pending in the blobpool: 1. If the custody set has expanded relative to the previously known set, the Execution client MUST issue new sampling requests for the delta columns. It SHOULD broadcast updated `NewPooledTransactionHashes` announcements reflecting the expanded available set when act as a sampler. 2. If the custody set has contracted, the Execution client MAY prune dropped cells from local storage, but only AFTER broadcasting an updated `NewPooledTransactionHashes` announcement with the reduced available set, to avoid peers perceiving availability fault. -4. The Execution client MUST treat a `custodyColumns` value identical to the current custody set as a no-op with respect to blobpool state, while still processing the rest of the forkchoice update normally. +4. The Execution client MUST treat a `custodyColumns` value identical to the current custody set or a `null` value as a no-op with respect to blobpool state, while still processing the rest of the forkchoice update normally. **Method `engine_getBlobsV4`** From a9584bbd20088bc85a12558f2fdcbe502c6b40aa Mon Sep 17 00:00:00 2001 From: Chris Hunter Date: Wed, 12 Aug 2026 11:39:20 -0400 Subject: [PATCH 37/53] Update EIP-8130: audit reconciliation (self-actor revoke, authenticator allowlist) Merged by EIP-Bot. --- EIPS/eip-8130.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-8130.md b/EIPS/eip-8130.md index ce64c4c59fec91..015b09daa31060 100644 --- a/EIPS/eip-8130.md +++ b/EIPS/eip-8130.md @@ -58,7 +58,7 @@ The specification is organized around four pieces: Each actor is associated with an authenticator, a contract that performs signature authentication. In the protocol's terms, the authenticator *authenticates* the actor (it returns the actor's `actorId`); scope and policy on the keystore then *authorize* what that authenticated actor may do. The authenticator address is stored in `actor_config` (see [Keystore and Account Configuration](#keystore-and-account-configuration)). All authenticators implement `IAuthenticator.authenticate(hash, data)`. After the authenticator authenticates the signature, the protocol validates the returned `actorId` against `actor_config` and authorizes the actor by checking its scope against the authorization context. -Authenticators are executed via STATICCALL. Authenticator addresses MUST NOT be delegated accounts; reject if the code at the authenticator address starts with the delegation indicator (`0xef0100`). +Authenticators are executed via STATICCALL, or optionally the equivalent native code on the 8130 transaction path. Chains may choose how authenticator execution is priced. A chain MAY call directly into the EVM and meter as ordinary EVM execution (see [Mempool Acceptance](#mempool-acceptance) for rules), or it MAY enshrine the canonical authenticators and charge a fixed, standard gas cost per enshrined authenticator instead of metering. When an authenticator is enshrined, its execution MUST produce identical results to the corresponding authenticator contract. @@ -546,8 +546,8 @@ The operation-specific `payload` is an opaque `bytes` blob carried in the RLP en | change_type | Name | `payload` | Description | |-------------|------|-----------|-------------| -| `0` | `AuthorizeActor` | `abi.encode(bytes32 actorId, ActorConfig config, bytes policyData)` (see [`ActorConfig`](#ikeystore)) | Upsert an actor. Writes `actor_config` with `authenticator`, `expiry` (`0` = no expiry; an already-lapsed non-zero expiry is rejected only on the unsequenced/JIT path, otherwise the grant installs **inert** — see [Config Change Authorization](#config-change-authorization)), and `scope` verbatim (unknown scope bits stored as-is), reserved bytes zeroed. If `POLICY` is set, requires `policyData = manager ‖ commitment` (exactly 52 bytes) and writes those slots; otherwise requires empty `policyData` and clears policy slots. Does **not** enforce scope-combination exclusivity (that is use-time / protocol). Emits `ActorAuthorized` whose `actorData` is 32 bytes (`authenticator ‖ expiry ‖ scope ‖ reserved`) when `POLICY` is unset, or 84 bytes (appending `manager ‖ commitment`) when `POLICY` is set. | -| `1` | `RevokeActor` | `abi.encode(bytes32 actorId)` | Revoke an actor. Deletes `actor_config` (and `policy_commitment`/`policy_manager`). For the implicit EOA actor (`actorId == bytes32(bytes20(account))`), instead sets `DEFAULT_EOA_REVOKED` (no `actor_config` write). Emits `ActorRevoked`. | +| `0` | `AuthorizeActor` | `abi.encode(bytes32 actorId, ActorConfig config, bytes policyData)` (see [`ActorConfig`](#ikeystore)) | Upsert an actor. Writes `actor_config` with `authenticator`, `expiry` (`0` = no expiry; on the unsequenced/JIT path an already-lapsed non-zero expiry causes the grant to be **silently skipped** — not applied, no revert — otherwise the grant installs **inert** — see [Config Change Authorization](#config-change-authorization)), and `scope` verbatim (unknown scope bits stored as-is), reserved bytes zeroed. If `POLICY` is set, requires `policyData = manager ‖ commitment` (exactly 52 bytes) and writes those slots; otherwise requires empty `policyData` and clears policy slots. Does **not** enforce scope-combination exclusivity (that is use-time / protocol). Emits `ActorAuthorized` whose `actorData` is 32 bytes (`authenticator ‖ expiry ‖ scope ‖ reserved`) when `POLICY` is unset, or 84 bytes (appending `manager ‖ commitment`) when `POLICY` is set. | +| `1` | `RevokeActor` | `abi.encode(bytes32 actorId)` | Revoke an actor. Deletes `actor_config` / the default EOA config (and `policy_commitment`/`policy_manager`). Emits `ActorRevoked`. | | `2` | `IncrementLocalEpoch` | empty | **Either channel.** Increments `local_epoch` and resets `local_sequence` to `0`, invalidating every unlanded local signature (sequenced and unsequenced) at the prior epoch. Always targets the local epoch, even when carried in a Multichain batch. Consumes no sequence itself. See [Epoch System](#epoch-system). | | `3` | `Lock` | `abi.encode(uint16 unlockDelay)` | **Local only, standalone.** Locks the account. See [Account Lock](#account-lock). | | `4` | `Unlock` | empty | **Local only, standalone.** Initiates unlock. See [Account Lock](#account-lock). | @@ -563,7 +563,7 @@ The `channel` selects the replay domain and how `sequence` is interpreted: - **Sequenced** (low half `< UNSEQUENCED`): the low half MUST equal the current `local_sequence`; on success `local_sequence` increments. This is the ordered, replay-once mode. - **Unsequenced / JIT** (low half `== UNSEQUENCED`, i.e. `uint32` max): consumes no counter and does not increment `local_sequence`. It is permissive — any change may ride an unsequenced batch — and remains replayable until the epoch moves. Because it consumes no counter, ordering between two unsequenced batches is undefined. Retiring an unsequenced (JIT) authorization durably is done by bumping the epoch (`IncrementLocalEpoch`), typically batched with the reducing change. See [Epoch System](#epoch-system). -**Expiry on `AuthorizeActor` is channel/mode-aware.** The fail-fast — reject a non-zero `expiry` that is not strictly in the future — applies **only to the unsequenced/JIT path**, because a JIT grant is replayable and its expiry is what bounds that replay: once lapsed it must never re-land. A **single-consume** batch (any Multichain batch, or a **Sequenced** local batch) cannot be replayed, so an already-lapsed grant is not rejected; it installs **inert** — the `actor_config` slot is written (the actor is present and revocable) but the actor is not live, since authentication yields expired per [Actor Expiry](#actor-expiry) — and still consumes its sequence. Multichain relies on this: a chain catching up must replay a historical expiring grant's slot (e.g. a periodically-renewed operator) in order to reach the current live grant, so reverting on the stale slot would strand its counter. A zero `expiry` is the "no expiry" sentinel and is always accepted. +**Expiry on `AuthorizeActor` is channel/mode-aware and never reverts.** On the **unsequenced/JIT path**, an already-lapsed grant (a non-zero `expiry` that has passed per [Actor Expiry](#actor-expiry)) is **silently skipped**: the change is not applied and does not revert, and any live sibling changes in the same batch still apply. A JIT grant is replayable, so skipping a lapsed one keeps it from ever clobbering its slot — a renewed grant cannot be overwritten by replaying the old, expired one. A **single-consume** batch (any Multichain batch, or a **Sequenced** local batch) cannot be replayed, so an already-lapsed grant is instead installed **inert** — the `actor_config` slot is written (the actor is present and revocable) but the actor is not live, since authentication yields expired per [Actor Expiry](#actor-expiry) — and still consumes its sequence. Multichain relies on this: a chain catching up must replay a historical expiring grant's slot (e.g. a periodically-renewed operator) in order to reach the current live grant, so dropping the stale slot would strand its counter. A zero `expiry` is the "no expiry" sentinel and is always accepted. The combined local word (`local_epoch || local_sequence`) doubles as the initialized flag: creation and import set `local_sequence = 1`, so an all-zero word means uninitialized (only the implicit EOA is on the account). From c8dedfbf56245fff8b73b80c708ac874880a398b Mon Sep 17 00:00:00 2001 From: Hubert Ritzdorf <10403309+ritzdorf@users.noreply.github.com> Date: Thu, 13 Aug 2026 16:08:48 +0200 Subject: [PATCH 38/53] Update EIP-8219: EIP-8219 Improvements Merged by EIP-Bot. --- EIPS/eip-8219.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/EIPS/eip-8219.md b/EIPS/eip-8219.md index 1fbb5890a7367c..5bd66434fda160 100644 --- a/EIPS/eip-8219.md +++ b/EIPS/eip-8219.md @@ -12,7 +12,7 @@ created: 2026-04-08 ## Abstract -This EIP introduces four new opcodes — `SAFEADD` (`0x0c`), `SAFESUB` (`0x0d`), `SAFEMUL` (`0x0e`), and `SAFEDIV` (`0x0f`) — that perform unsigned 256-bit arithmetic with built-in overflow, underflow, and division-by-zero checking. On error, these opcodes revert the current call frame with empty returndata, equivalent to `REVERT(0, 0)`. A single `SAFEADD` instruction replaces the 11-instruction compiler-generated overflow check pattern, reducing checked addition cost from ~79 gas to 5 gas and from 22 bytes to 1 byte of bytecode. +This EIP introduces four new opcodes — `SAFEADD` (`0x0c`), `SAFESUB` (`0x0d`), `SAFEMUL` (`0x0e`), and `SAFEDIV` (`0x0f`) — that perform unsigned 256-bit arithmetic with built-in overflow, underflow, and division-by-zero checking. On error, these opcodes revert the current call frame with empty returndata, equivalent to `REVERT(0, 0)`. A single `SAFEADD` instruction replaces the 11-instruction compiler-generated overflow check pattern, reducing checked addition cost from ~79 gas to 5 gas and from 12 bytes to 1 byte of bytecode. ## Motivation @@ -28,15 +28,17 @@ A typical checked addition compiles to something like: 4. Check for overflow 5. (Jump back) -This contains at least one conditional jump and potentially multiple more jumps. Benchmarks conducted with Solidity 0.8.33 (optimizer enabled, 200 runs) and Vyper 0.4.3 on equivalent ERC-20 contracts isolating a single checked addition yield the following overhead: +This contains at least one conditional jump and potentially multiple more jumps. Benchmarks conducted with Solidity 0.8.33 (optimizer enabled, 200 runs) and Vyper 0.4.3 on equivalent [ERC-20](./eip-20.md) contracts isolating a single checked addition yield the following overhead: | Metric | Solidity 0.8.33 | Vyper 0.4.3 | With `SAFEADD` | |---|---|---|---| | Execution gas per checked add | ~79 (3 + 76) | ~41 (3 + 38) | 5 | -| Bytecode per checked add | 22 bytes | 26 bytes | 1 byte | -| Deployment gas per checked add | +4,704 | +5,208 | ~200 | +| Bytecode per checked add | 12 bytes | 14 bytes | 1 byte | +| Deployment gas per checked add | +2,352 | +2,604 | ~200 | | Gas reduction | 93.7% | 87.8% | — | +The bytecode and deployment figures above are per single checked addition. Each benchmark contract contains two of them — one in `transfer`, one in `transferFrom` — so the totals measured across a whole contract (22 bytes and 4,704 deployment gas for Solidity, 26 bytes and 5,208 for Vyper) are twice the per-addition cost. The execution gas figures are unaffected, since a single call executes only one of the two. In Solidity the per-addition cost is the expansion of the call site; the overflow-check helper it jumps into is emitted once and shared by every checked addition in the contract. + The raw `ADD` opcode costs 3 gas. A compiler-checked addition costs approximately 79 gas — a **25x multiplier** purely for safety. This overhead grows across every arithmetic operation in every function in every contract on the network. ### The Dangerous Trade-off @@ -243,7 +245,7 @@ The existing `DIV` opcode silently returns 0 when the divisor is zero. While thi ### Revert with Empty Returndata -Safe arithmetic opcodes revert with empty returndata (zero-length return buffer) rather than encoding a specific error message. This design is compiler-neutral: the EVM specification does not mandate ABI encoding, and different languages use different error encoding schemes. Empty returndata is also consistent with how compilers currently implement overflow reverts. +Safe arithmetic opcodes revert with empty returndata (zero-length return buffer) rather than encoding a specific error message. This design is compiler-neutral: the EVM specification does not mandate ABI encoding, and different languages use different error encoding schemes. Empty returndata is also consistent with how Vyper currently implements overflow reverts (`REVERT(0, 0)`); Solidity instead encodes a `Panic(0x11)`, a payload these opcodes trade away for the gas and bytecode savings. ## Backwards Compatibility From 4742786332d1c2dfc7d725a95292f8bdf11ff9c7 Mon Sep 17 00:00:00 2001 From: anderselowsson <98593347+anderselowsson@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:30:39 +0300 Subject: [PATCH 39/53] Update EIP-8372: Minor fix Merged by EIP-Bot. --- EIPS/eip-8372.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-8372.md b/EIPS/eip-8372.md index 52e3540b555792..d5bd301b8036a5 100644 --- a/EIPS/eip-8372.md +++ b/EIPS/eip-8372.md @@ -52,14 +52,13 @@ state_gas_available = state_gas_limit - block_output.block_state_gas_used ### Block-level gas accounting -The EIP-8037 block-level `gas_used` computation and validity condition are updated to: +The EIP-8037 block-level `gas_used` computation and validity conditions are updated to: ```python -state_gas_limit = block.gas_limit * STATE_GAS_LIMIT_SCALE // STATE_GAS_LIMIT_SCALE_DENOMINATOR normalized_block_state_gas_used = (block_output.block_state_gas_used * STATE_GAS_LIMIT_SCALE_DENOMINATOR) // STATE_GAS_LIMIT_SCALE gas_used = max(block_output.block_execution_gas_used, normalized_block_state_gas_used) -assert block_output.block_state_gas_used <= state_gas_limit, 'invalid block: too much state gas used' -assert gas_used <= block.gas_limit, 'invalid block: too much gas used' +assert block_output.block_state_gas_used <= state_gas_limit +assert gas_used <= block_env.block_gas_limit ``` The `block_output.block_state_gas_used` counter remains denominated in raw state gas. No new block header field is introduced. From 0287194c3065066d61d59fcc268aab2e9f5f8239 Mon Sep 17 00:00:00 2001 From: nixo <23272494+nixorokish@users.noreply.github.com> Date: Thu, 13 Aug 2026 12:49:05 -0600 Subject: [PATCH 40/53] Update EIP-7773: Add EIP-8261 to Informational EIPs list Merged by EIP-Bot. --- EIPS/eip-7773.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-7773.md b/EIPS/eip-7773.md index f85ced0bfb135e..1275c44bde3f96 100644 --- a/EIPS/eip-7773.md +++ b/EIPS/eip-7773.md @@ -53,6 +53,7 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined #### Informational EIP * [EIP-7904](./eip-7904.md): Compute Gas Cost Analysis +* [EIP-8261](./eip-8261.md): Gas Limit Schedule ### Declined for Inclusion From 328527d97aabd5993402a57141f85e7cafd0138a Mon Sep 17 00:00:00 2001 From: lightclient <14004106+lightclient@users.noreply.github.com> Date: Thu, 13 Aug 2026 16:01:37 -0600 Subject: [PATCH 41/53] Update EIP-8141: Add explicit second dimension for state gas to frames (#12062) * wip * nits * more nits * simplify rationale * nit * Apply suggestions from code review Co-authored-by: Jochem Brouwer * 8141: put fees and gas limits in nested lists * 8141: gas_used should be sum of execution and state gas used * 8141: put gas used counts in frame reciept as a list * 8141: receipt on the wire should match protocol format --------- Co-authored-by: Jochem Brouwer --- EIPS/eip-8141.md | 309 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 252 insertions(+), 57 deletions(-) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index d1e0047a4bfbf0..eb32e6f7fdf8dc 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -8,7 +8,7 @@ status: Draft type: Standards Track category: Core created: 2026-01-29 -requires: 1559, 2718, 3529, 3607, 4844, 7594, 7623, 7702 +requires: 1559, 2718, 2780, 3529, 3607, 4844, 7594, 7623, 7702, 7708, 7825, 8037 --- ## Abstract @@ -34,7 +34,7 @@ Ultimately, frame transactions realize the original vision of account abstractio | Name | Value | |----------------------------|-------------------| | `FRAME_TX_TYPE` | `0x06` | -| `FRAME_TX_INTRINSIC_COST` | `15000` | +| `FRAME_TX_INTRINSIC_COST` | `12000` | | `FRAME_TX_PER_FRAME_COST` | `475` | | `ENTRY_POINT` | `address(0xaa)` | | `EXPIRY_VERIFIER` | `address(0x8141)` | @@ -42,7 +42,20 @@ Ultimately, frame transactions realize the original vision of account abstractio | `MAX_FRAMES` | `64` | | `SECP256K1N` | `0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141` | | `SECP256R1N` | `0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551` | -| `VERSIONED_HASH_VERSION_KZG` | `Bytes1(0x01)` | + +The following parameters are defined in other EIPs and referenced by this specification: + +| Name | Value | Source | +|------|-------|--------| +| `TX_MAX_GAS_LIMIT` | `16,777,216` | [EIP-7825](./eip-7825.md) | +| `TX_VALUE_COST` | `6,000` | [EIP-2780](./eip-2780.md) | +| `CPSB` | `1,530` | [EIP-8037](./eip-8037.md) | +| `STATE_BYTES_PER_NEW_ACCOUNT` | `120` | [EIP-8037](./eip-8037.md) | +| `STANDARD_TOKEN_COST` | `4` | [EIP-7976](./eip-7976.md) | +| `TOTAL_COST_FLOOR_PER_TOKEN` | `16` | [EIP-7976](./eip-7976.md) | +| `MAX_REFUND_QUOTIENT` | `5` | [EIP-3529](./eip-3529.md) | +| `GAS_PER_BLOB` | `131,072` | [EIP-4844](./eip-4844.md) | +| `VERSIONED_HASH_VERSION_KZG` | `Bytes1(0x01)` | [EIP-4844](./eip-4844.md) | ### Frame Transaction @@ -53,10 +66,12 @@ A new [EIP-2718](./eip-2718.md) transaction with type `FRAME_TX_TYPE` is introdu The payload is defined as the RLP serialization of the following: ``` -[chain_id, nonce, sender, frames, signatures, max_priority_fee_per_gas, max_fee_per_gas, max_fee_per_blob_gas, blob_versioned_hashes] +[chain_id, nonce, sender, frames, signatures, fees, blob_versioned_hashes] -frames = [[mode, flags, target, gas_limit, value, data], ...] +frames = [[mode, flags, target, limits, value, data], ...] +limits = [execution, state] signatures = [[scheme, signer, msg, signature], ...] +fees = [max_priority_fee_per_gas, max_fee_per_gas, max_fee_per_blob_gas] ``` #### Field Definitions @@ -70,9 +85,10 @@ Below are high-level definitions of each field in the transaction definition. De - `sender` -- the address of the intended sender of the transaction. - `frames` -- list of frames to execute. - `signatures` -- list of validated signatures available to the transaction. -- `max_priority_fee_per_gas` -- the [EIP-1559](./eip-1559.md) priority fee per gas the transaction will pay. -- `max_fee_per_gas` -- the maximum EIP-1559 fee the transaction is willing to pay, per gas. -- `max_fee_per_blob_gas` -- the maximum [EIP-4844](./eip-4844.md) fee per blob gas the transaction is willing to pay. Must be `0` if `blob_versioned_hashes` is empty. +- `fees` -- list of fee parameters for the transaction: + - `max_priority_fee_per_gas` -- the [EIP-1559](./eip-1559.md) priority fee per gas the transaction will pay. + - `max_fee_per_gas` -- the maximum EIP-1559 fee the transaction is willing to pay, per gas. + - `max_fee_per_blob_gas` -- the maximum [EIP-4844](./eip-4844.md) fee per blob gas the transaction is willing to pay. Must be `0` if `blob_versioned_hashes` is empty. - `blob_versioned_hashes` -- list of EIP-4844 blob versioned hashes. ##### Frame object @@ -80,7 +96,9 @@ Below are high-level definitions of each field in the transaction definition. De - `mode` -- the mode specifies the specific execution semantics the frame will execute with. - `flags` -- specifies optional frame / mode features. - `target` -- the destination or `to` address for the frame. -- `gas_limit` -- the maximum gas allowed to be execute in pursuit of the frame. +- `limits` -- list of gas limits for the frame: + - `execution` -- the maximum execution gas allowed to be expended in pursuit of the frame. + - `state` -- the maximum state gas ([EIP-8037](./eip-8037.md)) allowed to be expended in pursuit of the frame. - `value` -- the amount in wei that should transferred from the `sender` as part of the frame execution. - `data` -- the calldata provided to the top level call frame. @@ -123,16 +141,16 @@ Some validity constraints can be determined statically. They are outlined below: ```python assert tx.chain_id < 2**256 assert tx.nonce < 2**64 -assert tx.max_priority_fee_per_gas < 2**256 -assert tx.max_fee_per_gas < 2**256 -assert tx.max_fee_per_blob_gas < 2**256 +assert tx.fees.max_priority_fee_per_gas < 2**256 +assert tx.fees.max_fee_per_gas < 2**256 +assert tx.fees.max_fee_per_blob_gas < 2**256 assert len(tx.frames) > 0 and len(tx.frames) <= MAX_FRAMES assert len(tx.sender) == 20 for h in tx.blob_versioned_hashes: assert len(h) == 32 and h[0] == VERSIONED_HASH_VERSION_KZG if len(tx.blob_versioned_hashes) == 0: - assert tx.max_fee_per_blob_gas == 0 + assert tx.fees.max_fee_per_blob_gas == 0 for sig in tx.signatures: if sig.scheme in [SECP256K1, P256]: @@ -149,14 +167,16 @@ for sig in tx.signatures: invalid_transaction() total_frame_gas = 0 +total_frame_execution_gas = 0 for i, frame in enumerate(tx.frames): assert frame.mode < 3 assert frame.flags < 8 assert frame.target is None or len(frame.target) == 20 - assert frame.gas_limit <= 2**64 - 1 + assert frame.limits.state <= 2**64 - 1 assert frame.value < 2**256 assert frame.mode == SENDER or frame.value == 0 - total_frame_gas += frame.gas_limit + total_frame_execution_gas += frame.limits.execution + total_frame_gas += frame.limits.execution + frame.limits.state assert total_frame_gas <= 2**64 - 1 # Approval of execution is allowed only when target equals to None or tx.sender. @@ -169,6 +189,12 @@ for i, frame in enumerate(tx.frames): assert frame.mode != VERIFY assert i + 1 < len(tx.frames) # must not be last frame assert tx.frames[i + 1].mode != VERIFY # batches never contain VERIFY frames + +# Intrinsic and execution gas must fit the EIP-7825 transaction cap. +assert max( + frame_tx_intrinsic_gas + total_frame_execution_gas, + calldata_floor_gas, +) <= TX_MAX_GAS_LIMIT ``` #### Transaction Signatures @@ -208,9 +234,10 @@ The `ReceiptPayload` is defined as: ``` [cumulative_gas_used, payer, [frame_receipt, ...]] frame_receipt = [status, gas_used, logs] +gas_used = [execution, state] ``` -`payer` is the address of the account that paid the fees for the transaction. `status` is the return code of the top-level call. A new code `0x2` is introduced for frames which are skipped due to failed atomic batch. `gas_used` is total gas used by the frame, not accounting for refunds. `cumulative_gas_used` is still computed by adding the total gas used by the transaction with the previous cumulative sum. The transaction's logs, for the purposes of the block header `logsBloom` and log indexing, are the concatenation of the `logs` fields of its frame receipts, in frame order. +`payer` is the address of the account that paid the fees for the transaction. `status` is the return code of the top-level call. A new code `0x2` is introduced for frames which are skipped due to failed atomic batch. `gas_used` is the list of gas used by the frame, mirroring the frame's `limits` list. `gas_used.execution` is the execution gas used by the frame, not accounting for refunds. `gas_used.state` is the final state gas attributed to the frame after all state-gas refills and rollbacks in the transaction have been applied (see [Gas Accounting](#gas-accounting)). A later frame may therefore reduce an earlier frame's `gas_used.state`. The sum of all frame `gas_used.state` values is the transaction's final state-gas usage. `cumulative_gas_used` is still computed by adding the total gas used by the transaction with the previous cumulative sum. The transaction's logs, for the purposes of the block header `logsBloom` and log indexing, are the concatenation of the `logs` fields of its frame receipts, in frame order. #### Signature Hash @@ -290,9 +317,10 @@ A `VERIFY` frame whose `frame.target` equals `EXPIRY_VERIFIER` is an **expiry ve An expiry verifier frame is invalid unless all of the following hold: -- `frame.flags == 0`, -- `frame.value == 0`, and -- `len(frame.data) == EXPIRY_DATA_LENGTH`. +- `frame.flags == 0` +- `frame.value == 0` +- `frame.limits.state == 0` +- `len(frame.data) == EXPIRY_DATA_LENGTH` A transaction can contain at most one expiry verifier frame. @@ -363,7 +391,9 @@ To begin processing a frame transaction: Then for each frame: -1. Execute a call with the specified `mode`, `flags`, `target`, `gas_limit`, `value`, and `data`. +1. Execute a call with the specified `mode`, `flags`, `target`, `limits`, `value`, and `data`. + - Initialize the frame's receipt with `gas_used = [0, 0]`. + - At frame entry, initialize the frame's gas pools per [Gas Accounting](#gas-accounting): `gas_left = frame.limits.execution` and `state_gas_left = frame.limits.state`. - Let `resolved_target = frame.target if frame.target is not None else tx.sender` - Unless otherwise stated, checks that refer to the target account during execution use the resolved target. - Set frame's `caller`: @@ -375,18 +405,20 @@ Then for each frame: - The `ORIGIN` opcode returns frame's `caller` throughout all call depths. - In the top-level frame call, `CALLVALUE` is `frame.value`. - As with an ordinary `CALL`, if the caller does not have sufficient balance to transfer `frame.value`, the frame reverts. + - If `frame.value > 0` and `resolved_target` does not exist, `STATE_BYTES_PER_NEW_ACCOUNT * CPSB` state gas is charged after the balance check and before the frame's code executes, as in [EIP-2780](./eip-2780.md). If `state_gas_left` cannot cover the charge, the frame halts exceptionally. + - A non-zero value transfer to an address other than `tx.sender` emits the transfer log specified by [EIP-7708](./eip-7708.md). - If `resolved_target` code hash is empty, i.e. `0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470`, execute the logic described in [default code](#default-code). - Otherwise, if `resolved_target` uses an [EIP-7702](./eip-7702.md) delegation indicator, execute according to [EIP-7702](./eip-7702.md)'s delegated-code semantics. - If a frame's execution reverts, its state changes are discarded. Additionally, if this frame has the atomic batch flag set, mark all subsequent frames in the same atomic group as skipped. 1. If frame has mode `VERIFY` the following additional requirements are imposed: - Execute the frame as a `STATICCALL`, disallowing state manipulation. - Only `APPROVE` can modify the state or transaction context in `VERIFY`. - - If the frame reverts, the transaction is invalid. This would unroll any effects of `APPROVE`. + - If the frame fails by reverting or halting exceptionally, the transaction is invalid. This unrolls any effects of `APPROVE`. 1. If a frame is part of an atomic batch and it fails, unroll the associated atomic batch. - An **atomic batch** is a maximal contiguous sequence of frames `[i, j]` where `j > i`, frames `i` through `j - 1` have `ATOMIC_BATCH_FLAG` set, and frame `j` does not have `ATOMIC_BATCH_FLAG` set. - When a frame in the batch fails, the state must be rolled back to the condition it was immediately before the atomic batch began. All remaining frames in the atomic batch are skipped. - - Logs emitted by frames that executed before the failure are discarded together with their state changes when the batch is unrolled. Those frame receipts retain their execution status and gas used, with empty logs. - - Since skipped frames are not executed, the gas value allotted to them is refunded at the end of the transaction. + - Logs emitted by frames that executed before the failure are discarded together with their state changes when the batch is unrolled. Changes to any frame receipt's `gas_used.state` during the batch are reverted, as the batch's state modifications are reverted. Executed frame receipts retain their execution status and execution gas used, with empty logs and zero state gas used. + - Since skipped frames are not executed, the execution and state gas allotted to them are refunded at the end of the transaction. - If the frame does not have an associated atomic batch, further special handling is not needed, simple revert the individual frame. After executing all frames, verify that `payer` has been set (i.e. `payer != None`). If it is not, the whole transaction is invalid. Then, settle fees as defined in [Gas Accounting](#gas-accounting), returning `payer_refund` to the payer. @@ -397,10 +429,13 @@ A few cross-frame interactions to note: - For the purposes of gas accounting of warm / cold state status, the journal of such touches is shared across frames. - If a frame reverts, warm / cold status reverts to the state before the frame. +- State-gas ownership records and changes to frame receipts' `gas_used.state` fields journaled alongside the state changes that produced them. Reverting a call, frame, or atomic batch restores all of them to the corresponding checkpoint. - Discard the `TSTORE` and `TLOAD` transient storage between frames. ##### Gas Accounting +Frame transactions adopt the two-dimensional gas model of [EIP-8037](./eip-8037.md): **execution gas** meters computation, data, and account access, while **state gas** meters durable state growth. Where EIP-8037 retrofits the split onto envelopes carrying a single gas field via the reservoir model, the frame transaction declares both budgets explicitly: `frame.limits.execution` bounds a frame's execution gas and `frame.limits.state` bounds its state gas. The reservoir model — including the `state_gas_reservoir` split and the `state_gas_from_gas_left` accounting — does not apply within frame transactions. + The total gas limit of the transaction is: ```python @@ -421,6 +456,11 @@ def tokens_in(data): def calldata_cost(data): return STANDARD_TOKEN_COST * tokens_in(data) +def value_cost(frame): + if frame.value > 0 and frame.target is not None and frame.target != tx.sender: + return TX_VALUE_COST + return 0 + signature_verification_cost = sum(signature_gas(sig) for sig in tx.signatures) frame_data_cost = sum(calldata_cost(frame.data) for frame in tx.frames) @@ -428,14 +468,21 @@ signature_data_cost = sum( calldata_cost(sig.signer) + calldata_cost(sig.msg) + calldata_cost(sig.signature) for sig in tx.signatures ) +value_transfer_cost = sum(value_cost(frame) for frame in tx.frames) -standard_gas_limit = ( +frame_tx_intrinsic_gas = ( FRAME_TX_INTRINSIC_COST + len(tx.frames) * FRAME_TX_PER_FRAME_COST + frame_data_cost + signature_data_cost + signature_verification_cost - + sum(frame.gas_limit for all frames) + + value_transfer_cost +) + +standard_gas_limit = ( + frame_tx_intrinsic_gas + + sum(frame.limits.execution for frame in tx.frames) + + sum(frame.limits.state for frame in tx.frames) ) calldata_tokens = ( @@ -447,39 +494,109 @@ calldata_floor_gas = ( FRAME_TX_INTRINSIC_COST + len(tx.frames) * FRAME_TX_PER_FRAME_COST + signature_verification_cost + + value_transfer_cost + TOTAL_COST_FLOOR_PER_TOKEN * calldata_tokens ) -max_gas = max(standard_gas_limit, calldata_floor_gas) +max_gas = max(standard_gas_limit, calldata_floor_gas + sum(frame.limits.state for frame in tx.frames)) +``` + +`frame_tx_intrinsic_gas` is the transaction's intrinsic cost in the sense of [EIP-2780](./eip-2780.md). It is derivable from the transaction fields alone, with no state access. It is charged entirely in the execution dimension and, together with the sum of the declared frame execution-gas limits, is limited by the [EIP-7825](./eip-7825.md) cap explained in [Constraints](#constraints). `value_transfer_cost` charges `TX_VALUE_COST` for each frame which carries value, covering the recipient balance write and transfer log exactly as EIP-2780 prices top-level value transfers. State dependent costs do not enter this calculation and are charged at runtime inside frame state-gas budgets, as described below. + +###### Frame gas pools + +Each frame executes against two pools, initialized at frame entry: + +```python +gas_left = frame.limits.execution +state_gas_left = frame.limits.state +``` + +The pools are independent: + +- Execution-gas draws from `gas_left`, under unchanged EVM semantics. `gas_left` is the standard callframe gas pool. The `GAS` instruction returns the current callframe's `gas_left` and never observes `state_gas_left`. The `GAS_CALL_STIPEND` pre-state check of EIP-8037 applies to `gas_left` only. +- State-gas draws from `state_gas_left` only. `state_gas_left` is frame-scoped. EVM call frames at any depth within the frame draw from it directly. It is not forwarded, split, or divided per callframe like execution gas. +- A charge exceeding its remaining pool is an exceptional halt of the current callframe, with ordinary out-of-gas semantics. Execution gas can never be spent on state charges. + +Charge points follow EIP-8037 unchanged. `SSTORE` state gas at the end of the opcode, the conditional account-creation charge of the `CALL*` and `CREATE`/`CREATE2` families in the creating frame, and code-deposit gas at deposit time. In addition, the frame-level account creation charge for value carrying frames ([Behavior](#behavior)) and the account creation charge applied by [`APPROVE`](#approve-instruction-0xaa) mirror EIP-2780's runtime account creation charges. A charge that exhausts either pool fails the frame rather than changing the transaction's static validity. As specified above, failure of a `VERIFY` frame nevertheless makes the transaction invalid. + +###### State-gas attribution and refills + +Every successful state-gas charge is attributed to the currently executing frame. After deducting the amount from `state_gas_left`, add it to that frame's receipt: + +```python +state_gas_left -= amount +frame_receipts[current_frame_index].gas_used.state += amount +``` + +The receipt mutation is journaled together with the state creation that caused it. Journal entries are retained after a frame completes so that a later refill or atomic-batch rollback can update that frame's receipt. For an `SSTORE` charge, also journal the charging frame's index as the outstanding charge owner for that `(address, storage_key)`. The refill conditions of EIP-8037 apply unchanged, with *original value* meaning the slot value at the start of the transaction. + +When a refill fires, subtract the amount from the receipt of the frame that paid the outstanding charge: + +```python +owner = outstanding_charge.frame_index +frame_receipts[owner].gas_used.state -= amount +``` + +The destination of the spendable refill remains frame-isolated: + +- If `owner == current_frame_index`, also credit the amount to the current frame's `state_gas_left`. A frame's spendable refills can never exceed its own outstanding charges, so `state_gas_left` never exceeds `frame.limits.state`. +- If `owner != current_frame_index`, reduce the owner frame's `gas_used.state` to return the correct amount during transaction settlement. + +In both cases the storage slot's ownership entry is cleared, so a subsequent creation there is charged and attributed to whichever frame performs it. + +All changes to `state_gas_left`, outstanding charge ownership, and frame receipts' `gas_used.state` fields are journaled at the same rollback boundaries as the associated state changes: + +- When an EVM call frame reverts or halts exceptionally, restore the state-gas journal and the active frame's `state_gas_left` to the checkpoint covering that call and any associated pre-call state charge. +- When a frame reverts, restore the journal and `state_gas_left` to frame entry. Its final `gas_used.state` is therefore zero, and any changes it made to earlier receipts are undone. Both remaining pools count toward `tx_unused_gas`. +- When a frame halts exceptionally, perform the same state-gas restoration, but consume its entire execution-gas pool. Its final `gas_used.state` is zero. +- When an atomic batch is unrolled, restore the state-gas journal to the batch-entry checkpoint. Charges attributed to frames in the batch are removed from their receipts, while refills of charges attributed to frames before the batch are undone. Closed frame pools are not reopened. + +EIP-8037 assigns no state-gas refill to `SELFDESTRUCT`, including when it deletes a contract created earlier in the transaction. Such an operation therefore does not modify the creating frame's `gas_used.state`. + +###### Transaction settlement + +Each frame's receipt reports its execution-gas usage measured at frame exit: + +```python +frame_receipt.gas_used.execution = frame.limits.execution - gas_left ``` -Each frame has its own `gas_limit` allocation and the receipt reports the frame's gross gas used. These values do not generally sum to `gas_used`: the intrinsic, per-frame, calldata, and signature verification costs are charged outside frame gas limits, and the storage refund and calldata floor apply at the transaction level. +At frame exit, `frame_receipt.gas_used.state` equals `frame.limits.state - state_gas_left`. It remains subject to journaled changes caused by later frames. After all frames and atomic rollbacks have completed, it is the frame's final attributed state gas. The sum of frame execution and state usage does not generally equal the transaction's `gas_used`: intrinsic costs are charged outside frame budgets, while the storage refund and calldata floor apply at the transaction level. -Unused gas from a frame is **not** available to subsequent frames. Let `frame_receipts` be the ordered frame receipt list. After all frames, unused gas can be calculated as: +Gas not charged at settlement includes execution and state gas left in frame pools at frame exit, skipped-frame budgets, and state gas removed from a receipt by a later refill or rollback. None of this gas becomes available to a subsequent frame. Let `frame_receipts` be the ordered frame receipt list. After all frames, the total amount not charged can be calculated as: ```python tx_unused_gas = sum( - frame.gas_limit - frame_receipt.gas_used + (frame.limits.execution - frame_receipt.gas_used.execution) + + (frame.limits.state - frame_receipt.gas_used.state) for frame, frame_receipt in zip(tx.frames, frame_receipts) ) ``` -Storage gas refunds ([EIP-3529](./eip-3529.md)) accumulate across frames into a single transaction-scoped `refund_counter`. Changes made to the counter by a reverted frame, or by frames unrolled as part of a failed atomic batch, are discarded together with that frame's state changes. At the end of the transaction, apply the storage refund and [EIP-7623](./eip-7623.md) rules to get the final `gas_used` value: +Storage gas refunds ([EIP-3529](./eip-3529.md)) accumulate across frames into a single transaction-scoped `refund_counter`. Changes made to the counter by a reverted frame, or by frames unrolled as part of a failed atomic batch, are discarded together with that frame's state changes. State-gas refills have already reduced the owning frame receipts before settlement. At the end of the transaction, apply the storage refund and the [EIP-7623](./eip-7623.md) calldata floor — compared against the transaction's execution component — to get the final `gas_used` value: ```python gas_used_before_refund = standard_gas_limit - tx_unused_gas -applied_refund = min(refund_counter, gas_used_before_refund // 5) +applied_refund = min(refund_counter, gas_used_before_refund // MAX_REFUND_QUOTIENT) gas_used_after_refund = gas_used_before_refund - applied_refund -gas_used = max(gas_used_after_refund, calldata_floor_gas) +tx_state_gas = sum(fr.gas_used.state for fr in frame_receipts) +tx_execution_gas = max(gas_used_after_refund - tx_state_gas, calldata_floor_gas) + +gas_used = tx_execution_gas + tx_state_gas ``` +`gas_used` is by construction the sum of the transaction's two block-accounted dimensions. When the calldata floor binds, it exceeds EIP-7623's transaction-total floor: state gas never absorbs into the data floor (see [Calldata floor and payment](#calldata-floor-and-payment)). + +Because a state-gas refill directly reduces `frame_receipt.gas_used.state`, it reduces `gas_used_before_refund` and is not subject to the refund cap. Per EIP-8037, a refill reverses a charge for state that was never durably created, while a refund rebates work that was actually performed. + The payer's refund is then computed below using the final `gas_used` value: ```python blob_gas = len(blob_versioned_hashes) * GAS_PER_BLOB max_cost = ( - max_gas * max_fee_per_gas + max_gas * tx.fees.max_fee_per_gas + blob_gas * blob_base_fee ) assert max_cost < 2**256 @@ -487,13 +604,39 @@ charged_fee = gas_used * effective_gas_price + blob_gas * blob_base_fee payer_refund = max_cost - charged_fee ``` -After execution, return `payer_refund` to the payer. This is the `resolved_target` that called `APPROVE(APPROVE_PAYMENT)` or `APPROVE(APPROVE_EXECUTION_AND_PAYMENT)`. Return `max_gas - gas_used` to the block gas pool. +After execution, return `payer_refund` to the payer. This is the `resolved_target` that called `APPROVE(APPROVE_PAYMENT)` or `APPROVE(APPROVE_EXECUTION_AND_PAYMENT)`. + +###### Block-level gas accounting + +Blocks account for the two dimensions separately, per EIP-8037. A frame transaction contributes its settlement dimensions directly: + +```python +block_output.block_execution_gas_used += tx_execution_gas +block_output.block_state_gas_used += tx_state_gas +``` + +All intrinsic costs are execution gas, so the execution dimension is the transaction total less its net state gas. Because `gas_used = tx_execution_gas + tx_state_gas`, the payer pays for exactly the capacity the transaction occupies across both dimensions, and receipt `cumulative_gas_used` deltas reconcile with the block counters. The block header `gas_used`, the block validity condition, and the base fee update rule follow EIP-8037 unchanged. + +A frame transaction may be included in a block only if its worst case fits the remaining capacity of **each** dimension: + +```python +execution_reservation = max( + frame_tx_intrinsic_gas + sum(frame.limits.execution for frame in tx.frames), + calldata_floor_gas, +) +state_reservation = sum(frame.limits.state for frame in tx.frames) + +assert execution_reservation <= block_gas_limit - block_output.block_execution_gas_used +assert state_reservation <= block_gas_limit - block_output.block_state_gas_used +``` + +Because both budgets are explicit, these reservations are exact per dimension; no portion of the transaction's gas is reserved in both dimensions at once, as it must be under EIP-8037's reservoir model. ##### Blob handling When `blob_versioned_hashes` is non-empty, the transaction is a blob-carrying transaction and follows [EIP-4844](./eip-4844.md), where the payer is also the blob-fee payer. The following distinctions from EIP-4844 must also be adhered to: -- The transaction is only valid for inclusion in a block if `tx.max_fee_per_blob_gas >= blob_base_fee` of that block. `max_fee_per_blob_gas` is used only for this inclusion check. The payer is charged `blob_gas * blob_base_fee`; no additional blob fee is collected or refunded. +- The transaction is only valid for inclusion in a block if `tx.fees.max_fee_per_blob_gas >= blob_base_fee` of that block. `max_fee_per_blob_gas` is used only for this inclusion check. The payer is charged `blob_gas * blob_base_fee`; no additional blob fee is collected or refunded. - It contributes `len(blob_versioned_hashes) * GAS_PER_BLOB` to the block's `blob_gas_used` and counts against the blob limits of the active fork. The per-transaction blob limit of [EIP-7594](./eip-7594.md) applies unchanged. - Unlike EIP-4844 transactions, a frame transaction is not required to carry blobs. - The `BLOBHASH` instruction returns `tx.blob_versioned_hashes[index]` in every frame, per EIP-4844. @@ -552,16 +695,18 @@ The behavior of `APPROVE` is defined as follows: - If `payer` was already set, revert the frame. - If `resolved_target` has insufficient balance, revert the frame. - If `sender_approved == false`, revert the frame. - - Increment the sender's nonce, set `payer = resolved_target`, and collect the transaction's `max_cost` from `payer`, + - Immediately before incrementing the sender's nonce, if `tx.sender` does not exist under the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT * CPSB` from the current frame's `state_gas_left`. If the pool cannot cover the charge, halt the frame exceptionally without applying any approval effects. + - Increment the sender's nonce, set `payer = resolved_target`, and collect the transaction's `max_cost` from `payer`. - For `APPROVE_EXECUTION_AND_PAYMENT`: - If `sender_approved` or `payer` was already set, revert the frame. - If `resolved_target` != `tx.sender`, revert the frame. - If `resolved_target` has insufficient balance, revert the frame. + - Immediately before incrementing the sender's nonce, if `tx.sender` does not exist under the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT * CPSB` from the current frame's `state_gas_left`. If the pool cannot cover the charge, halt the frame exceptionally without applying any approval effects. - Set `sender_approved = true`, increment the sender's nonce, set `payer = resolved_target`, and collect the transaction's `max_cost` from `payer`. #### Gas -`APPROVE` charges only the memory expansion gas for the return-data region `[offset, offset + length)`, with no additional base cost, matching `RETURN`. Updating the transaction-scoped approval context has no gas cost: its once-per-transaction effects — the sender nonce increment, setting `payer`, and collecting the maximum cost — are already covered by the frame transaction's intrinsic cost, exactly as they are for a standard transaction, so charging nothing extra here is consistent pricing rather than a free state write. +`APPROVE` charges the memory expansion gas for the return-data region `[offset, offset + length)`, with no additional execution-gas base cost, matching `RETURN`. Updating the transaction-scoped approval context has no additional execution-gas cost: its once-per-transaction effects — the sender nonce increment, setting `payer`, and collecting the maximum cost — are already covered by the frame transaction's intrinsic cost, exactly as they are for a standard transaction. If incrementing the nonce creates the sender account, the state-gas charge specified above applies in addition. ### Introspection @@ -578,15 +723,16 @@ This instruction gives access to transaction-scoped information. The gas cost of | 0x00 | current transaction type | | 0x01 | `nonce` | | 0x02 | `sender` | -| 0x03 | `max_priority_fee_per_gas` | -| 0x04 | `max_fee_per_gas` | -| 0x05 | `max_fee_per_blob_gas` | +| 0x03 | `fees.max_priority_fee_per_gas` | +| 0x04 | `fees.max_fee_per_gas` | +| 0x05 | `fees.max_fee_per_blob_gas` | | 0x06 | max cost (basefee=max, all gas used, includes blob cost at `blob_base_fee`, intrinsic cost, and signature verification cost) | | 0x07 | `len(blob_versioned_hashes)` | | 0x08 | `compute_sig_hash(tx)` | | 0x09 | `len(frames)` | | 0x0A | currently executing frame index | | 0x0B | `len(signatures)` | +| 0x0C | `state_gas_left` remaining in the currently executing frame | Undefined `param` values result in an exceptional halt. @@ -635,7 +781,7 @@ This instruction gives access to frame-scoped information. The gas cost of this | `param` | `frameIndex` | Return value | |---------|--------------|-----------------------------------------------------------| | 0x00 | frameIndex | `resolved_target` | -| 0x01 | frameIndex | `gas_limit` | +| 0x01 | frameIndex | `limits.execution` | | 0x02 | frameIndex | `mode` | | 0x03 | frameIndex | `flags` | | 0x04 | frameIndex | `len(data)` | @@ -643,10 +789,14 @@ This instruction gives access to frame-scoped information. The gas cost of this | 0x06 | frameIndex | `allowed_scope` (`frame.flags & APPROVE_SCOPE_MASK`) | | 0x07 | frameIndex | `atomic_batch` (`(frame.flags >> 2) & 0x01`, returns 0/1) | | 0x08 | frameIndex | `value` | +| 0x09 | frameIndex | `limits.state` | +| 0x0A | frameIndex | `gas_used.execution` (exceptional halt if current/future) | +| 0x0B | frameIndex | `gas_used.state` (exceptional halt if current/future) | Notes: - The `status` field (0x05) returns `0` for failure, `1` for success, or `2` for a frame skipped due to a failed atomic batch. +- The `gas_used.execution` (0x0A) and `gas_used.state` (0x0B) fields return the current values recorded in the frame's receipt. Like `status`, they are defined only for frames that have completed; accessing them for the current frame or a subsequent frame results in an exceptional halt. A completed frame's `gas_used.state` may subsequently decrease when another frame refills state gas attributed to it, or be restored if that later change is rolled back. `gas_used.execution` does not change after frame completion. - Undefined `param` values result in an exceptional halt. - Out-of-bounds access for `frameIndex` results in an exceptional halt. - Attempting to access the return `status` of the current frame or a subsequent frame results in an exceptional halt. @@ -688,6 +838,7 @@ This policy is inspired by [ERC-7562](./eip-7562.md), but removes staking and re | Name | Value | Description | |---|---|---| | `MAX_VERIFY_GAS` | `100_000` | Maximum amount of gas a node should expend validating signatures and simulating the validation prefix | +| `MAX_VERIFY_STATE_GAS` | `500_000` | Maximum amount of state gas that may be budgeted across the validation prefix | | `MAX_PENDING_TXS_USING_NON_CANONICAL_PAYMASTER` | `1` | Maximum amount of pending transactions that can be using any given non-canonical paymaster | #### Validation Prefix @@ -779,7 +930,7 @@ To be accepted into the public mempool, a frame transaction must satisfy the fol - `only_verify` must call `APPROVE(APPROVE_EXECUTION)`. 4. `pay` must execute in `VERIFY` mode, have flags set to `APPROVE_PAYMENT`, and must successfully call `APPROVE(APPROVE_PAYMENT)` 5. No frame in the validation prefix may have the `ATOMIC_BATCH_FLAG` set. -6. The sum of `gas_limit` values across the validation prefix, plus the intrinsic cost of validating `tx.signatures`, must not exceed `MAX_VERIFY_GAS`. +6. The sum of `limits.execution` values across the validation prefix, plus the intrinsic cost of validating `tx.signatures`, must not exceed `MAX_VERIFY_GAS`. Additionally, the sum of `limits.state` values across the validation prefix must not exceed `MAX_VERIFY_STATE_GAS`. State gas does not measure node validation work — simulation work remains bounded by `MAX_VERIFY_GAS` alone — but the cap bounds the state growth admitted through the public mempool. A `deploy` frame may use state gas for account and code creation, and a `VERIFY` frame may use state gas only through `APPROVE` when incrementing the nonce creates the sender account. 7. Nodes should stop simulation immediately once `payer` has been set and the associated `VERIFY` frame completes successfully. 8. There must not be `VERIFY` frame after validation prefix. @@ -801,7 +952,7 @@ Three frame species in the validation prefix have fully protocol-defined semanti When every frame in the validation prefix is one of these, direct evaluation of the protocol-defined semantics is equivalent to simulation, and a node MAY use it to satisfy the validation requirements below. Direct evaluation MUST apply the same limits as simulation: signature validation and the evaluated frames' work count against `MAX_VERIFY_GAS`, and the paymaster accounting rules in this section apply unchanged. -The complete state dependency set of such a validation prefix is: the sender's code hash and nonce, the payer's code hash and balance (or the canonical paymaster's tracked state), the runtime code at `EXPIRY_VERIFIER` together with the frame's deadline when an expiry verifier frame is present, and the current block timestamp. Nodes SHOULD index pending transactions by this set so that head-of-chain changes are revalidated without re-execution. +The complete state dependency set of such a validation prefix is: the sender's code hash, nonce, and balance (the balance participates in the sender-existence check that decides the `APPROVE` account-creation state-gas charge), the payer's code hash and balance (or the canonical paymaster's tracked state), the runtime code at `EXPIRY_VERIFIER` together with the frame's deadline when an expiry verifier frame is present, and the current block timestamp. Nodes SHOULD index pending transactions by this set so that head-of-chain changes are revalidated without re-execution. #### Validation Trace Rules @@ -938,7 +1089,7 @@ Validation logic for other transaction types remains unchanged, i.e. the transac In the `Receipts` message of the protocol version carrying this fork, a frame transaction receipt is encoded mirroring its consensus `ReceiptPayload`: ``` -receipt = [tx-type, cumulative-gas, payer, [[status, gas-used, logs], ...]] +receipt = [tx-type, cumulative-gas, payer, [[status, [execution-gas-used, state-gas-used], logs], ...]] ``` A frame transaction with non-empty `blob_versioned_hashes` is propagated with its blob sidecar exactly as an [EIP-4844](./eip-4844.md) blob transaction. During transaction gossip responses (`PooledTransactions`), its [EIP-2718](./eip-2718.md) `TransactionPayload` is wrapped per [EIP-7594](./eip-7594.md): @@ -995,7 +1146,7 @@ Using a flag to indicate atomic batches saves us from having to introduce a new ### Per-frame cost -Each frame incurs a fixed CALL execution-context overhead (100) plus `G_log` (375) for the receipt sub-entry it produces, giving `FRAME_TX_PER_FRAME_COST = 475`. The execution-context component covers context setup, mode dispatch, and gas accounting at the frame boundary, analogous to the fixed overhead of a CALL. The `G_log` component covers the `[status, gas_used, logs]` receipt sub-entry that each frame adds to the transaction receipt, which must be serialized, hashed into the receipt trie, and proven by ZK-EVM implementations. Cold/warm access costs for the frame's target account are charged within the frame's own `gas_limit` through the normal EVM warm/cold accounting, not through the per-frame cost. +Each frame incurs a fixed CALL execution-context overhead (100) plus `G_log` (375) for the receipt sub-entry it produces, giving `FRAME_TX_PER_FRAME_COST = 475`. The execution-context component covers context setup, mode dispatch, and the two-pool gas accounting at the frame boundary, analogous to the fixed overhead of a CALL. The `G_log` component covers the `[status, gas_used, logs]` receipt sub-entry that each frame adds to the transaction receipt, which must be serialized, hashed into the receipt trie, and proven by ZK-EVM implementations. Cold/warm access costs for the frame's target account are charged within the frame's own `limits.execution` through the normal EVM warm/cold accounting, not through the per-frame cost. ### Per-frame value @@ -1003,6 +1154,38 @@ A design goal of the frame transaction is to provide a good experience out-of-th Restricting non-zero `value` to `SENDER` frames keeps `VERIFY` and `DEFAULT` frames side-effect-free with respect to ETH transfer semantics, preserves the intended `STATICCALL`-like behavior of `VERIFY`, and avoids requiring the protocol-defined `ENTRY_POINT` caller to fund top-level ETH transfers. +### Two-dimensional gas budgets + +[EIP-8037](./eip-8037.md) meters execution gas and state gas separately, but its transactions carry a single gas field. The split must therefore be derived at runtime. `gas_left` is capped at the [EIP-7825](./eip-7825.md) limit and the excess becomes a reservoir spendable only on state gas. Under this model the sender cannot bound either dimension individually, the split does not exist below the cap, and a block builder must reserve the transaction's full gas in both dimensions since either could consume it. + +The frame transaction is a new envelope, so the split is explicitly declared. Each frame's `limits` list carries a `state` budget next to its `execution` budget, and the two pools never mix. This avoids the reservoir accounting entirely, keeps the EIP-7825 check static, lets the mempool bound the validation prefix per dimension without simulation, and makes block reservations exact. A deploy frame that needs tens of millions of state gas for a code deposit just declares it. + +Budgets are per-frame rather than per-transaction for the same reason unused gas does not roll over between frames. Frames belong to mutually distrusting parties. With a shared pool, a user operation could drain the state gas a paymaster's `post_op` frame depends on. [ERC-4337](./eip-4337.md) works around this by reserving `postOp` gas in the `EntryPoint`; here the reservation is part of the transaction. Since `GAS` never reports state gas, `FRAMEPARAM` and `TXPARAM` expose state budgets and usage directly, allowing a paymaster to check budgets before approving payment and attribute usage afterwards. + +### Calldata floor and payment + +The EIP-7623 calldata floor participates in block accounting per dimension, exactly as under EIP-8037: the floor is compared against the transaction's execution component alone, because calldata is an execution-dimension resource and the bytes-per-block bound must be a property of that dimension's counter. Comparing against the transaction total would let state-gas padding carry calldata into the execution dimension below the floor rate. + +The payment rule departs from EIP-8037. EIP-8037 retrofits two-dimensional accounting onto existing transaction types and therefore keeps EIP-7623's transaction-total floor, accepting that a transaction's block-accounted dimensions can sum to more than it pays; state gas may absorb into floor headroom just as execution gas does today. The frame transaction is a new envelope with no such compatibility constraint, so it defines `gas_used = tx_execution_gas + tx_state_gas`. The payer buys exactly the capacity the transaction denies other transactions in each dimension, state growth never rides free under the data floor, and receipt `cumulative_gas_used` deltas reconcile with block accounting. The stricter rule costs only transactions that are simultaneously floor-bound and state-growing, which pay `calldata_floor_gas + tx_state_gas` where an EIP-8037 transaction with the identical workload pays its transaction-total floor. + +### Cross-frame state-gas refills + +EIP-8037's refill conditions are transaction-scoped and so a slot's *original value* is its value at transaction start. Only one refill can cross a frame boundary, an `SSTORE` clearing a slot that an earlier frame created. `SELFDESTRUCT` carries no refill under EIP-8037, even for contracts created earlier in the transaction ([EIP-6780](./eip-6780.md)), and account creation and code-deposit charges are only undone by rolling back the frame that made them. + +Crediting a cross-frame refill to the executing frame would hand it budget it never declared. Dropping the refill would overcharge common patterns like approve-and-swap and cause `block_state_gas_used` to overstate real state growth, which the `CPSB` derivation depends on. Reducing the owning frame's `gas_used.state` avoids both. The payer is made whole at settlement, receipts sum to the transaction's net state gas, and no frame gains spendable budget. Since receipt mutations are journaled with the state changes that cause them, atomic-batch unrolls reverse them automatically. + +### Intrinsic cost decomposition + +`FRAME_TX_INTRINSIC_COST` is [EIP-2780](./eip-2780.md)'s `TX_BASE_COST`, which prices one ECDSA recovery, the sender's account access and write, and inclusion of the transaction's bytes in a block. Frame transactions price signature recovery per `tx.signatures` entry, so the recovery component instead covers payer settlement, which standard transactions do not price separately. Like EIP-2780 and [EIP-8038](./eip-8038.md), these values are provisional benchmark targets. + +Value-bearing frames are charged `TX_VALUE_COST` for the recipient balance write and transfer log, as EIP-2780 charges top-level transfers. The charge is static because `value` and `target` are transaction fields. Frame targets do not pay EIP-2780's unconditional cold-rate recipient touch. Frames behave like internal calls, which stay on the [EIP-2929](./eip-2929.md) warm/cold model, and a transaction repeatedly targeting the same account would otherwise overpay. + +EIP-2780's split between intrinsic and runtime gas carries over. Intrinsic gas is state-independent and decides validity. Every state-dependent charge, including frame-entry account creation and sender creation by `APPROVE`, is metered inside a frame's `limits.state`. Exhausting it fails the frame. After approval the transaction is still included and pays for the gas consumed, while a failed `VERIFY` frame invalidates the transaction as usual. + +### Transaction execution gas cap + +[EIP-7825](./eip-7825.md) caps the transaction's full execution budget: `frame_tx_intrinsic_gas` plus the sum of all `limits.execution` values must not exceed `TX_MAX_GAS_LIMIT`, and the calldata floor is checked against the same cap. State gas is excluded, bounded only by the encoding limit and block state-gas capacity, matching EIP-8037. + ### Public Key Aliases Future signature schemes with large public keys may benefit from a state-backed alias mechanism. Such an alias could be a 20-byte address that identifies a public key stored in state, allowing transactions to reference the address instead of carrying the full public key each time. @@ -1117,18 +1300,20 @@ Note: to be included in the public mempool under the current model, sponsors mus | Sender validation frame: mode | 1 | | Sender validation frame: flags | 1 | | Sender validation frame: target | 1 | -| Sender validation frame: gas | 2 | +| Sender validation frame: execution gas | 2 | +| Sender validation frame: state gas | 1 | | Sender validation frame: value | 1 | | Sender validation frame: data | 0 | | Execution frame: mode | 1 | | Execution frame: flags | 1 | | Execution frame: target | 20 | -| Execution frame: gas | 1 | +| Execution frame: execution gas | 1 | +| Execution frame: state gas | 3 | | Execution frame: value | 5 | | Execution frame: data | 0 | -| **Total** | 139 | +| **Total** | 141 | -Notes: Nonce assumes < 65536 prior sends. Fees assume < 1099 gwei. Validation frame target is 1 byte because target is `tx.sender`. Validation gas assumes <= 65,536 gas. Validation frame value is zero. Execution frame target is encoded directly as the destination address. Execution frame value assumes a compact 5-byte encoding. The execution frame data is empty for a plain ETH transfer. The signature is a secp256k1 entry with empty `msg` using a 65-byte ECDSA signature. Blob fields assume no blobs (empty list, zero max fee). +Notes: Nonce assumes < 65536 prior sends. Fees assume < 1099 gwei. Validation frame target is 1 byte because target is `tx.sender`. Validation gas assumes <= 65,536 gas. Validation frame value is zero. Execution frame target is encoded directly as the destination address. Execution frame value assumes a compact 5-byte encoding. The execution frame data is empty for a plain ETH transfer. The signature is a secp256k1 entry with empty `msg` using a 65-byte ECDSA signature. Blob fields assume no blobs (empty list, zero max fee). State gas limits are zero, assuming the destination exists; a transfer that creates a new account instead requires a `STATE_BYTES_PER_NEW_ACCOUNT × CPSB = 183,600` state gas budget on the execution frame (three additional bytes). This is not much larger than an EIP-1559 transaction; the extra overhead is mainly the need to specify the sender and the per-frame wrapper explicitly. @@ -1139,12 +1324,13 @@ This is not much larger than an EIP-1559 transaction; the extra overhead is main | Deployment frame: mode | 1 | | Deployment frame: flags | 1 | | Deployment frame: target | 20 | -| Deployment frame: gas | 3 | +| Deployment frame: execution gas | 3 | +| Deployment frame: state gas | 3 | | Deployment frame: value | 1 | | Deployment frame: data | 100 | -| **Total additional** | 126 | +| **Total additional** | 129 | -Notes: Gas assumes cost < 2^24. Calldata assumes small proxy. +Notes: Gas assumes cost < 2^24. State gas covers account creation plus a proxy-sized code deposit (< 2^24). Calldata assumes small proxy. **Trustless pay-with-ERC-20 sponsor (add these frames):** @@ -1153,24 +1339,27 @@ Notes: Gas assumes cost < 2^24. Calldata assumes small proxy. | Sponsor validation frame: mode | 1 | | Sponsor validation frame: flags | 1 | | Sponsor validation frame: target | 20 | -| Sponsor validation frame: gas | 3 | +| Sponsor validation frame: execution gas | 3 | +| Sponsor validation frame: state gas | 1 | | Sponsor validation frame: value | 1 | | Sponsor validation frame: calldata | 0 | | Send to sponsor frame: mode | 1 | | Send to sponsor frame: flags | 1 | | Send to sponsor frame: target | 20 | -| Send to sponsor frame: gas | 3 | +| Send to sponsor frame: execution gas | 3 | +| Send to sponsor frame: state gas | 1 | | Send to sponsor frame: value | 1 | | Send to sponsor frame: calldata | 68 | | Sponsor post op frame: mode | 2 | | Sponsor post op frame: flags | 1 | | Sponsor post op frame: target | 20 | -| Sponsor post op frame: gas | 3 | +| Sponsor post op frame: execution gas | 3 | +| Sponsor post op frame: state gas | 1 | | Sponsor post op frame: value | 1 | | Sponsor post op frame: calldata | 0 | -| **Total additional** | 147 | +| **Total additional** | 150 | -Notes: Sponsor can read info from other fields. ERC-20 transfer call is 68 bytes. +Notes: Sponsor can read info from other fields. ERC-20 transfer call is 68 bytes. State gas fields assume no new storage slots are created; an ERC-20 transfer into a fresh balance slot requires a 97,920 state gas budget (three additional bytes). There is some inefficiency in the sponsor case, because the same sponsor address must appear in three places (sponsor validation, send to sponsor inside ERC-20 calldata, post op frame), and the ABI is inefficient (~12 + 24 bytes wasted on zeroes). This is difficult to mitigate in a "clean" way, because one of the duplicates is inside the ERC-20 call, "opaque" to the protocol. However, it is much less inefficient than [ERC-4337](./eip-4337.md), because not all of the data takes the hit of the 32-byte-per-field ABI overhead. @@ -1183,6 +1372,8 @@ Blobs are optional for frame transactions because `FRAME_TX_TYPE` is a general-p The `ORIGIN` opcode behavior changes for frame transactions, returning the frame's caller rather than the traditional transaction origin. This is consistent with the precedent set by EIP-7702, which already modified `ORIGIN` semantics. Contracts that rely on `ORIGIN = CALLER` for security checks (a discouraged pattern) may behave differently under frame transactions. +Wallets and gas estimators must produce two-dimensional, per-frame gas estimates: each frame's `limits.execution` covers its execution gas and its `limits.state` covers its state gas, and neither budget can borrow from the other or from other frames. Under-provisioned state gas halts a frame exactly like out-of-gas; over-provisioned budgets are refunded at settlement but raise the up-front `max_cost` collected from the payer. When the calldata floor binds, `gas_used` is `calldata_floor_gas + tx_state_gas`, so fee estimation for data-heavy transactions must add the state dimension on top of the floor rather than assuming EIP-7623's transaction-total floor. + ## Security Considerations ### Transaction Propagation @@ -1229,6 +1420,10 @@ For deployment of the sender account in the first frame, the mempool enforces de In general, it can be assumed that handling of frame transactions imposes similar restrictions as EIP-7702 on mempool relay, i.e. only a single transaction can be pending for an account that uses frame transactions. +### State Gas Isolation Between Frames + +Frame state-gas budgets are deliberately not shared. A shared, transaction-scoped state budget would allow one frame to exhaust the state gas a later frame depends on: for example, a user operation could drain the budget a paymaster's `post_op` frame needs to write its accounting slot, causing it to halt. Because each frame's `limits.state` is declared in the transaction and unavailable to other frames, validation code and paymasters can verify via `FRAMEPARAM`, before approving, that every frame they depend on carries the state budget it needs. The cross-frame refill rules preserve this isolation: clearing state paid for by an earlier frame reduces that earlier frame's `gas_used.state` and credits the payer at settlement, but never increases the executing frame's spendable budget. + ### Execution Approval Authorizes All Subsequent Sender Frames `sender_approved` is a single transaction-scoped flag. Once a frame grants `APPROVE_EXECUTION` (or `APPROVE_EXECUTION_AND_PAYMENT`), every subsequent `SENDER` frame executes with `caller` set to `tx.sender`, not only the frame the approving code inspected. The approval is not scoped to a particular frame or call target. From 7e90a2efc0b00435fb898605dc0e342ad1045e83 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Fri, 14 Aug 2026 00:04:47 +0200 Subject: [PATCH 42/53] Update EIP-8261: Move to Review Merged by EIP-Bot. --- EIPS/eip-8261.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-8261.md b/EIPS/eip-8261.md index 2708b71dc5641d..50c69a2d66d767 100644 --- a/EIPS/eip-8261.md +++ b/EIPS/eip-8261.md @@ -4,7 +4,7 @@ title: Gas Limit Schedule description: Recommend an optional post-Gloas consensus layer gas limit schedule for epoch-based defaults and maximum recommendations. author: Barnabas Busa (@barnabasbusa) discussions-to: https://ethereum-magicians.org/t/eip-8261-gas-limit-schedule/28494 -status: Draft +status: Review type: Informational created: 2026-05-11 requires: 1559, 7732, 7892, 7935 From ad8f7ddb9e5e436d54816a207870520375f4059f Mon Sep 17 00:00:00 2001 From: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:29:25 +1000 Subject: [PATCH 43/53] Update EIP-8066: Use Unicode emoji, genericize POAP reference Merged by EIP-Bot. --- EIPS/eip-8066.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-8066.md b/EIPS/eip-8066.md index 48d829a0da11bb..3024d26e2df73d 100644 --- a/EIPS/eip-8066.md +++ b/EIPS/eip-8066.md @@ -18,7 +18,7 @@ This EIP establishes a mascot for each Ethereum network upgrade. Mascots serve t Ethereum network upgrades often introduce complex technical changes that can feel abstract to the broader community. Mascots provide a fun, memorable, and relatable symbol for each upgrade, drawing inspiration from its headliner(s). By mandating emoji-representable mascots that are cute and non-offensive, this process: - Enhances community participation and excitement around network upgrades. -- Creates opportunities for creative expression in upgrade event branding (e.g., watch parties, POAPs). +- Creates opportunities for creative expression in upgrade event branding (e.g., watch parties, attendance NFTs). - Builds a consistent, whimsical tradition that differentiates Ethereum's upgrade narrative from other ecosystems. ## Specification @@ -28,7 +28,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ### 1. Mascot Requirements - **Relevance**: The mascot **SHOULD** relate thematically to the network upgrade's headliner(s). -- **Representation**: The mascot **MUST** be expressible using one or more standard Unicode emojis (e.g., :panda: for the Merge). +- **Representation**: The mascot **MUST** be expressible using one or more standard Unicode emojis (e.g., 🐼 for the Merge). - **Form**: The mascot **SHOULD** depict an animal (real, mythical, or stylized, but always animal-adjacent). - **Tone**: The mascot **MUST NOT** be offensive (no depictions of violence, discrimination, or controversy) and **SHOULD** be inherently cute (e.g., avoiding aggressive or fearsome traits unless softened for adorability). @@ -73,7 +73,7 @@ Alternatives considered: ## Backwards Compatibility -This EIP does not directly change the Ethereum protocol. It formalizes part of the current network upgrade process. Past upgrades (e.g., Shapella's owl :owl:) are retroactively honored if they fit the criteria; future upgrades **MUST** comply starting with the next hard fork post-adoption. +This EIP does not directly change the Ethereum protocol. It formalizes part of the current network upgrade process. Past upgrades (e.g., Shapella's owl 🦉) are retroactively honored if they fit the criteria; future upgrades **MUST** comply starting with the next hard fork post-adoption. ## Security Considerations From 142de1eb3411ec24d4577c92803a5040072d3a6c Mon Sep 17 00:00:00 2001 From: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> Date: Fri, 14 Aug 2026 22:45:34 +1000 Subject: [PATCH 44/53] Update EIP-8066: Move to Review Merged by EIP-Bot. --- EIPS/eip-8066.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-8066.md b/EIPS/eip-8066.md index 3024d26e2df73d..9bc57e44c12e6b 100644 --- a/EIPS/eip-8066.md +++ b/EIPS/eip-8066.md @@ -4,7 +4,7 @@ title: Upgrade Mascots description: Process for assigning a mascot to each Ethereum network upgrade author: Jordan Holberg (@eviljordan), Andrew B Coathup (@abcoathup) discussions-to: https://ethereum-magicians.org/t/eip-8066-upgrade-mascots/26009 -status: Draft +status: Review type: Informational created: 2024-10-29 --- From eec839abba0fc30502fef27177c6024f1eb0f4d6 Mon Sep 17 00:00:00 2001 From: Daniil Ankushin Date: Fri, 14 Aug 2026 17:04:27 +0400 Subject: [PATCH 45/53] Update EIP-8141: clarify floor repricing, signature validation, and frame.value gas (#12026) 8141: note that signature validation does not affect precompile inclusion in BAL Co-authored-by: lightclient --- EIPS/eip-8141.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index eb32e6f7fdf8dc..76775dddaa0f16 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -311,6 +311,8 @@ def validate_signature(sig, tx_sender, sig_hash) -> bool: return False ``` +Note: since the signature validation does not happen in EVM execution, the related precompiles `ecrecover` and `P256VERIFY` must not be added to the block-level access list. + #### Expiry Verifier Frame A `VERIFY` frame whose `frame.target` equals `EXPIRY_VERIFIER` is an **expiry verifier frame**. It calls the expiry verifier contract deployed at `EXPIRY_VERIFIER` with `frame.data` as calldata. The calldata is interpreted as an 8-byte unsigned big-endian expiry timestamp. The call reverts unless `block.timestamp <= expiry_timestamp`. From 3aa076e336555abc91ff3c467b1d817685523e7c Mon Sep 17 00:00:00 2001 From: Daniil Ankushin Date: Fri, 14 Aug 2026 17:17:30 +0400 Subject: [PATCH 46/53] Update EIP-8141: note that a frame receipt carries no transaction-level status (#12061) --- EIPS/eip-8141.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index 76775dddaa0f16..7af7c36ef278cb 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -239,6 +239,8 @@ gas_used = [execution, state] `payer` is the address of the account that paid the fees for the transaction. `status` is the return code of the top-level call. A new code `0x2` is introduced for frames which are skipped due to failed atomic batch. `gas_used` is the list of gas used by the frame, mirroring the frame's `limits` list. `gas_used.execution` is the execution gas used by the frame, not accounting for refunds. `gas_used.state` is the final state gas attributed to the frame after all state-gas refills and rollbacks in the transaction have been applied (see [Gas Accounting](#gas-accounting)). A later frame may therefore reduce an earlier frame's `gas_used.state`. The sum of all frame `gas_used.state` values is the transaction's final state-gas usage. `cumulative_gas_used` is still computed by adding the total gas used by the transaction with the previous cumulative sum. The transaction's logs, for the purposes of the block header `logsBloom` and log indexing, are the concatenation of the `logs` fields of its frame receipts, in frame order. +The `ReceiptPayload` carries no transaction-level status: the only statuses it holds are the per-frame ones. An interface that has to present a single status for the transaction therefore derives it, rather than reading it from the receipt. + #### Signature Hash The canonical signature hash is defined such that any signature with empty `msg` will have its raw `signature` bytes elided. From 6eae017eeae28e5f3c157885cbb689117c91008b Mon Sep 17 00:00:00 2001 From: anderselowsson <98593347+anderselowsson@users.noreply.github.com> Date: Fri, 14 Aug 2026 16:40:06 +0300 Subject: [PATCH 47/53] Update EIP-7999: Update EIP-7999 Merged by EIP-Bot. --- EIPS/eip-7999.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-7999.md b/EIPS/eip-7999.md index 488fde88e02301..cb33457d1013f9 100644 --- a/EIPS/eip-7999.md +++ b/EIPS/eip-7999.md @@ -2,7 +2,7 @@ eip: 7999 title: Unified multidimensional fee market description: Let transactions specify one aggregate `max_fee` budget for all resources, unify fee markets, normalize gas, and generalize EIP-7918. -author: Anders Elowsson (@anderselowsson), Vitalik Buterin (@vbuterin) +author: Anders Elowsson (@anderselowsson), Vitalik Buterin (@vbuterin), Maria Silva (@misilva73) discussions-to: https://ethereum-magicians.org/t/eip-7999-unified-multidimensional-fee-market/25010 status: Draft type: Standards Track @@ -23,7 +23,7 @@ This EIP leverages the natural fungibility of the user's fee budget by letting u Ethereum's current fee market has "tech debt" in that two separate mechanisms are used: one for regular gas ([EIP-1559](./eip-1559.md)) and the other for blob gas ([EIP-4844](./eip-4844.md)). The proposal unifies the fee market under the preferred EIP-4844 design. That design allows for exact control over long-run resource consumption. In a multidimensional setting with individual base fees, we can then for example achieve precise control over state growth, while accommodating temporary spikes. Excess gas of EIP-4844 is further normalized relative to the limit, allowing for a single update fraction across resources that retains current percentage ranges while keeping the price stable if any gas limit changes. -Calldata is added first, to speed up worst-case payload propagation and expand available EVM gas—without compromising gas introspection. A method for facilitating gas aggregation across resources within the EVM is outlined as an avenue for preserving backward compatibility when expanding further. The logic of EIP-7918 is integrated into the multidimensional setting to ensure that calldata has a higher cost per byte than blob data. +Calldata is added first, to speed up worst-case payload propagation and expand available EVM gas—without compromising gas introspection. A method for facilitating gas aggregation across resources within the EVM is outlined as an avenue for preserving backward compatibility when expanding further. The logic of [EIP-7918](./eip-7918.md) is integrated into the multidimensional setting to ensure that calldata has a higher cost per byte than blob data. ## Specification @@ -162,7 +162,7 @@ def get_required_max_fee(base_fees: list[int], tx_gas_limits: list[int]) -> int: * Compute the fees to deduct initially: * `max_priority_fee = get_priority_fee(tx, tx_gas_limits, base_fees, max_fee - max_base)` * `fee_to_deduct = max_base + max_priority_fee` - * Deduct `fee_to_deduct` wei from the sender, which we define as the address recovered from the transaction’s signature. + * Deduct `fee_to_deduct` wei from the sender, which we define as the address recovered from the transaction's signature. **At the end of processing a transaction**: @@ -366,7 +366,7 @@ This EIP has been designed to facilitate a future expansion into multiple EVM re One long-term vision for the EVM is to move away from gas observability. This is one of the features of EOF ([EIP-7692](./eip-7692.md)), e.g., through revamped `CALL` instructions in [EIP-7069](./eip-7069.md) such as `EXTCALL`. The new calls no longer accept a gas stipend as an input parameter, and the EVM instead makes available some reasonable fraction of all gas across dimensions (e.g., 63/64). Legitimate use cases previously handled via gas observability are then instead taken over by, e.g., the `PAY` opcode [EIP-5920](./eip-5920.md). -For compatibility with legacy code, the EVM can in this scenario reinterpret legacy subcalls with a gas parameter by forwarding the same fraction of the caller’s remaining budget in each resource dimension. Concretely, if the call stipulates $g_c$ and the aggregate remaining EVM-gas budget is $g_a$, the callee receives, for each EVM resource with remaining budget $g_r$, the amount $\bigl\lfloor g_r \cdot \min\!\bigl(1,\tfrac{g_c}{g_a}\bigr) \bigr\rfloor$. For completeness, the `GAS` opcode could likewise return, e.g., $g_a$ (the per-call aggregate remaining budget at this point across all resource dimensions). Note, however, that reinterpreting legacy calls and `GAS` in this way can still change the behavior of contracts that rely on precise gas observability or gas-capped subcalls, and such contracts may break. +For compatibility with legacy code, the EVM can in this scenario reinterpret legacy subcalls with a gas parameter by forwarding the same fraction of the caller's remaining budget in each resource dimension. Concretely, if the call stipulates $g_c$ and the aggregate remaining EVM-gas budget is $g_a$, the callee receives, for each EVM resource with remaining budget $g_r$, the amount $\bigl\lfloor g_r \cdot \min\!\bigl(1,\tfrac{g_c}{g_a}\bigr) \bigr\rfloor$. For completeness, the `GAS` opcode could likewise return, e.g., $g_a$ (the per-call aggregate remaining budget at this point across all resource dimensions). Note, however, that reinterpreting legacy calls and `GAS` in this way can still change the behavior of contracts that rely on precise gas observability or gas-capped subcalls, and such contracts may break. #### EVM that retains gas observability From 7b101fe6d17fdd045715496a6bb5a2b76dbe0c59 Mon Sep 17 00:00:00 2001 From: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> Date: Sat, 15 Aug 2026 02:28:15 +1000 Subject: [PATCH 48/53] Update EIP-7773: Use Unicode emoji for mascot Merged by EIP-Bot. --- EIPS/eip-7773.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7773.md b/EIPS/eip-7773.md index 1275c44bde3f96..5a883d90510569 100644 --- a/EIPS/eip-7773.md +++ b/EIPS/eip-7773.md @@ -101,7 +101,7 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined ### Mascot -Polar bear :polar_bear: is the mascot for the Glamsterdam network upgrade, as per the [EIP-8066](./eip-8066.md) process. +Polar bear 🐻‍❄️ is the mascot for the Glamsterdam network upgrade, as per the [EIP-8066](./eip-8066.md) process. ### Activation From af8bf83df29ae0ff9cfa197c0283e358932e3151 Mon Sep 17 00:00:00 2001 From: nixo <23272494+nixorokish@users.noreply.github.com> Date: Fri, 14 Aug 2026 11:04:28 -0600 Subject: [PATCH 49/53] Update EIP-7773: reorder & correct spelling Merged by EIP-Bot. --- EIPS/eip-7773.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/EIPS/eip-7773.md b/EIPS/eip-7773.md index 5a883d90510569..2eb572dd4418a1 100644 --- a/EIPS/eip-7773.md +++ b/EIPS/eip-7773.md @@ -20,6 +20,9 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined ### EIPs Scheduled for Inclusion +* [EIP-2780](./eip-2780.md): Reduce intrinsic transaction gas +* [EIP-7610](./eip-7610.md): Revert creation in case of non-empty storage +* [EIP-7688](./eip-7688.md): Forward compatible consensus data structures * [EIP-7708](./eip-7708.md): ETH transfers emit a log * [EIP-7732](./eip-7732.md): Enshrined Proposer-Builder Separation * [EIP-7778](./eip-7778.md): Block Gas Accounting without Refunds @@ -28,12 +31,9 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined * [EIP-7954](./eip-7954.md): Increase Maximum Contract Size * [EIP-7976](./eip-7976.md): Increase Calldata Floor Cost * [EIP-7981](./eip-7981.md): Increase Access List Cost +* [EIP-7997](./eip-7997.md): Deterministic Factory Predeploy * [EIP-8024](./eip-8024.md): Backward compatible SWAPN, DUPN, EXCHANGE * [EIP-8037](./eip-8037.md): State Creation Gas Cost Increase -* [EIP-2780](./eip-2780.md): Reduce intrinsic transaction gas -* [EIP-7610](./eip-7610.md): Revert creation in case of non-empty storage -* [EIP-7688](./eip-7688.md): Forward compatible consensus data structures -* [EIP-7997](./eip-7997.md): Deterministic Factory Predeploy * [EIP-8038](./eip-8038.md): State-access gas cost increase * [EIP-8045](./eip-8045.md): Exclude slashed validators from proposing * [EIP-8061](./eip-8061.md): Increase exit and consolidation churn @@ -57,7 +57,7 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined ### Declined for Inclusion -* [EIP-2926](./eip-2926.md): Chunk-based code merkelization +* [EIP-2926](./eip-2926.md): Chunk-Based Code Merkleization * [EIP-5920](./eip-5920.md): PAY opcode * [EIP-6404](./eip-6404.md): SSZ transactions * [EIP-6466](./eip-6466.md): SSZ receipts From 3b82eabe076be68b6425f3973b1dc9a176cacd1c Mon Sep 17 00:00:00 2001 From: Jihoon Song Date: Fri, 14 Aug 2026 19:33:12 +0200 Subject: [PATCH 50/53] Update EIP-8333: add helper to handle fork transition Merged by EIP-Bot. --- EIPS/eip-8333.md | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/EIPS/eip-8333.md b/EIPS/eip-8333.md index 1eba75916727f0..ac6461ef9940c1 100644 --- a/EIPS/eip-8333.md +++ b/EIPS/eip-8333.md @@ -34,19 +34,32 @@ This requires no changes to the execution layer. ### Consensus layer +#### New `get_checkpoint_slot` + +`get_checkpoint_slot(epoch)` returns the slot anchoring the checkpoint for `epoch`. From the activation epoch onward, it's the last slot before the epoch begins. Epochs before activation resolve under the previous anchoring. The genesis epoch, which has no slot before it, anchors at `GENESIS_SLOT`. The helper takes only an epoch, so the state accessor `get_checkpoint_root` and the fork choice's `get_checkpoint_block` both resolve through it and the two views of the same checkpoint cannot diverge. + +```python +def get_checkpoint_slot(epoch: Epoch) -> Slot: + """ + Return the slot anchoring the checkpoint for ``epoch`` + """ + if epoch == GENESIS_EPOCH: + return GENESIS_SLOT + if epoch < EIP8333_FORK_EPOCH: + return compute_start_slot_at_epoch(epoch) + return Slot(compute_start_slot_at_epoch(epoch) - 1) +``` + #### New `get_checkpoint_root` -`get_checkpoint_root(state, epoch)` returns the root of the boundary block anchoring the checkpoint for `epoch`: the last block before the epoch begins. In a healthy network this is the last block of the previous epoch; if the previous epoch's trailing slots are empty, it is an earlier block. The genesis epoch, which has no previous epoch, resolves to the genesis block. +`get_checkpoint_root(state, epoch)` returns the root of the block anchoring the checkpoint for `epoch`, the most recent block at or before `get_checkpoint_slot(epoch)`. From the activation epoch onward this is the boundary block. In a healthy network this is the last block of the previous epoch; if the previous epoch's trailing slots are empty, it is an earlier block. The genesis epoch, which has no previous epoch, resolves to the genesis block. ```python def get_checkpoint_root(state: BeaconState, epoch: Epoch) -> Root: """ - Return the block root anchoring the checkpoint for ``epoch`` -- the last - block before ``epoch`` (the epoch boundary). + Return the block root anchoring the checkpoint for ``epoch`` """ - if epoch == GENESIS_EPOCH: - return get_block_root_at_slot(state, GENESIS_SLOT) - return get_block_root_at_slot(state, Slot(compute_start_slot_at_epoch(epoch) - 1)) + return get_block_root_at_slot(state, get_checkpoint_slot(epoch)) ``` #### Modified functions @@ -58,7 +71,17 @@ The following functions resolve checkpoint roots via `get_checkpoint_root(state, #### Fork choice -`get_checkpoint_block(store, root, epoch)` resolves the checkpoint to the ancestor at slot `compute_start_slot_at_epoch(epoch) - 1`, or at the genesis slot for the genesis epoch. Its consumers (`on_attestation` validation, `filter_block_tree`, and the gossip conditions on the target block) need no further changes. +`get_checkpoint_block(store, root, epoch)` resolves the checkpoint to the ancestor at `get_checkpoint_slot(epoch)`. Its consumers (`on_attestation` validation, `filter_block_tree`, and the gossip conditions on the target block) need no further changes. + +```python +def get_checkpoint_block(store: Store, root: Root, epoch: Epoch) -> Root: + """ + Compute the checkpoint block for epoch ``epoch`` in the chain of block ``root`` + """ + node = ForkChoiceNode(root=root, payload_status=PAYLOAD_STATUS_PENDING) + # [Modified in EIP8333] + return get_ancestor(store, node, get_checkpoint_slot(epoch)).root +``` #### Honest validator @@ -66,9 +89,9 @@ The FFG target is set to `Checkpoint(epoch=get_current_epoch(head_state), root=g #### Fork transition -`get_checkpoint_root` and `get_checkpoint_block` MUST resolve epochs before the activation epoch via `compute_start_slot_at_epoch(epoch)`, i.e. under the previous anchoring. This is required for correctness: +`get_checkpoint_slot` MUST resolve epochs before the activation epoch to `compute_start_slot_at_epoch(epoch)`, i.e. under the previous anchoring. This is required for correctness: -- Checkpoints recorded before activation use the previous anchoring. `filter_block_tree` requires the finalized checkpoint root to match `get_checkpoint_block` on every viable branch. Re-resolving the finalized epoch under the new rule breaks this match, and with it head computation, until a post-activation checkpoint is finalized. +- Checkpoints recorded before activation use the previous anchoring. For example, `on_block` and `filter_block_tree` require the finalized checkpoint root to match `get_checkpoint_block` on every incoming block's parent and on every viable branch, respectively. Re-resolving the finalized epoch under the new rule breaks this match, and with it block import and head computation. - Attestations with pre-activation target epochs remain includable for an epoch after activation. Evaluating them under the previous anchoring preserves their validity and rewards. ## Rationale From 576b655a8efae2e5c3fb0f373297a240515514a9 Mon Sep 17 00:00:00 2001 From: Chris Hunter Date: Fri, 14 Aug 2026 15:21:55 -0400 Subject: [PATCH 51/53] Update EIP-8130: right-align address-derived actorIds Merged by EIP-Bot. --- EIPS/eip-8130.md | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/EIPS/eip-8130.md b/EIPS/eip-8130.md index 015b09daa31060..06d5a517b454e4 100644 --- a/EIPS/eip-8130.md +++ b/EIPS/eip-8130.md @@ -70,10 +70,10 @@ This specification defines a canonical authenticator set which is the set of sig | Name | Algorithm | Authenticator | `actorId` Derivation | |------|-----------|----------|----------------------| -| k1 | secp256k1 | `K1_AUTHENTICATOR` (native sentinel) | `bytes32(bytes20(recovered_address))` | +| k1 | secp256k1 | `K1_AUTHENTICATOR` (native sentinel) | `bytes32(uint256(uint160(recovered_address)))` (the address right-aligned into a 32-byte word: low 20 bytes, high 12 bytes zero) | | p256 | P-256 | Onchain contract | `keccak256(abi.encodePacked(x, y))` | | passkey | WebAuthn / FIDO2 | Onchain contract | `keccak256(abi.encodePacked(x, y))` | -| delegate | Signature delegation | Onchain contract | `bytes32(bytes20(delegated_address))`: signatures from `delegated_address` are valid for the registering account (see [Delegate Authenticator](#delegate-authenticator)) | +| delegate | Signature delegation | Onchain contract | `bytes32(uint256(uint160(delegated_address)))` (address right-aligned, high 12 bytes zero): signatures from `delegated_address` are valid for the registering account (see [Delegate Authenticator](#delegate-authenticator)) | The canonical authenticator set and corresponding contract addresses are maintained in a companion ERC (number TBD) and deployed at deterministic CREATE2 addresses across chains. The canonical set is expected to grow as new algorithms are adopted (e.g., post-quantum) through the companion ERC process. @@ -81,7 +81,7 @@ Nodes MUST include all canonical authenticators in their allowlist and SHOULD NO #### Delegate Authenticator -The delegate authenticator lets one account act on behalf of another: account **A** registers a delegate actor with `actorId = bytes32(bytes20(B))`, after which any key that can authenticate as account **B** may authenticate as **A**, bounded by the scope **A** grants that actor. Delegation MUST NOT chain (depth-1: the nested authenticator MUST NOT itself be the delegate authenticator) and the nested authenticator MUST be canonical, keeping total validation work bounded. The remaining details are defined in the canonical repository. +The delegate authenticator lets one account act on behalf of another: account **A** registers a delegate actor with `actorId = bytes32(uint256(uint160(B)))`, after which any key that can authenticate as account **B** may authenticate as **A**, bounded by the scope **A** grants that actor. Delegation MUST NOT chain (depth-1: the nested authenticator MUST NOT itself be the delegate authenticator) and the nested authenticator MUST be canonical, keeping total validation work bounded. The remaining details are defined in the canonical repository. ### Keystore and Account Configuration @@ -95,7 +95,7 @@ Actor enumeration is performed off-chain via `ActorAuthorized` and `ActorRevoked Each actor occupies a single `actor_config` slot containing the authenticator address, an optional expiry, and the scope bitmask. The protocol reads this slot directly during validation, so its packing is normative: `authenticator(20) ‖ expiry(6) ‖ scope(2) ‖ reserved(4)`, where `expiry` is a `uint48` Unix timestamp in **seconds** (`0` = no expiry; the actor is invalid once `block.timestamp > expiry`) and `scope` is the `uint16` permission bitmask (`0x0000` = unrestricted, also the admin predicate; see [Actor Scope](#actor-scope)). The exact slot derivation and byte offsets are defined in the canonical repository (`src/Keystore.sol`). -When `scope` includes `POLICY` (`0x02`), the actor also carries a signed policy commitment and a manager address in the separate policy slots `policy_commitment`/`policy_manager` (see [Actor Policies](#actor-policies)). Actors are revoked by deleting the `actor_config` slot. The self-actor (`actorId == bytes32(bytes20(account))`) is the one exception: it is held inline in the packed account-state slot and resolved per [Validation](#validation). +When `scope` includes `POLICY` (`0x02`), the actor also carries a signed policy commitment and a manager address in the separate policy slots `policy_commitment`/`policy_manager` (see [Actor Policies](#actor-policies)). Actors are revoked by deleting the `actor_config` slot. The self-actor (`actorId == bytes32(uint256(uint160(account)))`) is the one exception: it is held inline in the packed account-state slot and resolved per [Validation](#validation). When `scope & POLICY != 0`, the actor's policy is held in two additional slots: @@ -262,7 +262,7 @@ Lock and unlock are **local-only** account changes carried in a signed batch thr - The account already has 8130 state: **either** change-sequence channel is non-zero. Import is a one-time bootstrap, so it requires both the local and multichain channels empty. A locked account is always caught here: a `lock` is a signed local config change, so it has advanced `local_sequence` and the account is considered initialized (see [Account Lock](#account-lock)). - The account has no bytecode (there is no contract to run the ERC-1271 signature check against), or its ERC-1271 check does not return the magic value. -The `signature` is validated against the account via [ERC-1271](./eip-1271.md) over a typed ([EIP-712](./eip-712.md)-style) `ActorInitialization` digest that omits the EIP-712 domain separator (anti-phishing) and binds the account's own actorId (`bytes32(bytes20(account))`, so it cannot be replayed against another account), `chainId` (matching the `applySignedAccountChanges` replay domain), and each initial actor with `expiry = 0` (imported actors are always non-expiring; an actor-provided expiry MUST NOT be accepted). `policyData` follows `authorizeActor`'s rule and, unlike create, `manager = account` is expressible here. On success `importAccount` sets `DEFAULT_EOA_REVOKED` (parity with `createAccount`); to keep using the native key past import, include the self-actorId as a `K1_AUTHENTICATOR` entry in `initialActors`. Exact typehashes and digest construction are defined in the canonical repository (`src/Keystore.sol`). +The `signature` is validated against the account via [ERC-1271](./eip-1271.md) over a typed ([EIP-712](./eip-712.md)-style) `ActorInitialization` digest that omits the EIP-712 domain separator (anti-phishing) and binds the account's own actorId (`bytes32(uint256(uint160(account)))`, so it cannot be replayed against another account), `chainId` (matching the `applySignedAccountChanges` replay domain), and each initial actor with `expiry = 0` (imported actors are always non-expiring; an actor-provided expiry MUST NOT be accepted). `policyData` follows `authorizeActor`'s rule and, unlike create, `manager = account` is expressible here. On success `importAccount` sets `DEFAULT_EOA_REVOKED` (parity with `createAccount`); to keep using the native key past import, include the self-actorId as a `K1_AUTHENTICATOR` entry in `initialActors`. Exact typehashes and digest construction are defined in the canonical repository (`src/Keystore.sol`). #### Account Establishment @@ -394,9 +394,9 @@ The first 20 bytes identify the authenticator address. When the authenticator is ##### Validation -1. **Resolve sender**: If `sender` empty, ecrecover derives the sender address (EOA path) with `actorId = bytes32(bytes20(sender))`. If `sender` set, read the first 20 bytes of `sender_auth` as the authenticator address. -2. **Authenticate**: Route by authenticator address. For the EOA path (`sender` empty), ecrecover was already performed in step 1. For `K1_AUTHENTICATOR` (`address(1)`), the protocol natively ecrecovers from `data` (as `r || s || v`), returning `actorId = bytes32(bytes20(recovered_address))`. For all other authenticators, call `authenticator.authenticate(hash, data)` via STATICCALL, returning `actorId` (or `bytes32(0)` for invalid). `address(0)` is never a valid authenticator selector (it is the empty `actor_config` sentinel). -3. **Authorize**: **Self-actor (native secp256k1) rule**: if authentication in step 2 used the native secp256k1 path (the EOA path or `K1_AUTHENTICATOR`) and `actorId == bytes32(bytes20(sender))`, resolve the self-actor from the inline default-EOA config in the packed account-state slot: reject if `DEFAULT_EOA_REVOKED` is set; otherwise take `scope` and `expiry` from the inline fields (all-zero = unrestricted, non-expiring full owner, i.e. admin). Otherwise SLOAD `actor_config(sender, actorId)`, reject if its reserved bytes are nonzero (version gate, see [Storage Layout](#storage-layout)), and require that the stored authenticator address matches the effective authenticator (this covers every other actor, including a non-secp256k1 self). In either case, if the resolved `expiry` is non-zero, also require `block.timestamp <= expiry`; an expired actor is rejected. +1. **Resolve sender**: If `sender` empty, ecrecover derives the sender address (EOA path) with `actorId = bytes32(uint256(uint160(sender)))`. If `sender` set, read the first 20 bytes of `sender_auth` as the authenticator address. +2. **Authenticate**: Route by authenticator address. For the EOA path (`sender` empty), ecrecover was already performed in step 1. For `K1_AUTHENTICATOR` (`address(1)`), the protocol natively ecrecovers from `data` (as `r || s || v`), returning `actorId = bytes32(uint256(uint160(recovered_address)))`. For all other authenticators, call `authenticator.authenticate(hash, data)` via STATICCALL, returning `actorId` (or `bytes32(0)` for invalid). `address(0)` is never a valid authenticator selector (it is the empty `actor_config` sentinel). +3. **Authorize**: **Self-actor (native secp256k1) rule**: if authentication in step 2 used the native secp256k1 path (the EOA path or `K1_AUTHENTICATOR`) and `actorId == bytes32(uint256(uint160(sender)))`, resolve the self-actor from the inline default-EOA config in the packed account-state slot: reject if `DEFAULT_EOA_REVOKED` is set; otherwise take `scope` and `expiry` from the inline fields (all-zero = unrestricted, non-expiring full owner, i.e. admin). Otherwise SLOAD `actor_config(sender, actorId)`, reject if its reserved bytes are nonzero (version gate, see [Storage Layout](#storage-layout)), and require that the stored authenticator address matches the effective authenticator (this covers every other actor, including a non-secp256k1 self). In either case, if the resolved `expiry` is non-zero, also require `block.timestamp <= expiry`; an expired actor is rejected. 4. **Check scope**: Read the resolved `scope` byte (from the inline default-EOA config for the secp256k1 self-actor, or `actor_config` otherwise) and check it against the context being authorized per [Actor Scope](#actor-scope) (for `sender_auth`: `scope == 0x00 || (scope & (SENDER | POLICY)) != 0`, with `POLICY` gating the actor to its `manager`). Payer scope is checked when the payer is resolved (see [Validation Flow](#validation-flow) step 6). 5. **Check nonce scope** (sender-context only, when `nonce_key != NONCE_KEY_MAX`): require the resolved actor be admin or carry `NONCE`, per [Actor Nonce Scope](#actor-nonce-scope). @@ -508,15 +508,14 @@ When a create entry is present in `account_changes`: 1. Parse `[0x00, user_salt, code, initial_actors]` where each entry is `[actorId, authenticator, scope, policyData]`. `scope` is stored verbatim (unknown scope bits allowed, per [Actor Scope](#actor-scope)). Apply `authorizeActor`'s frozen `policyData` rule: reject unless `policyData` is exactly `manager (20) ‖ commitment (32)` when `scope & POLICY != 0`, or empty otherwise. `expiry` is not accepted in the create entry 2. Require `initial_actors` are sorted by `actorId` in strictly ascending order; reject any unsorted set (strict ascending order also rejects duplicate `actorId` values). -3. Reject if `code` is empty or `len(code) > MAX_CODE_SIZE` ([EIP-170](./eip-170.md): 24576 bytes), to keep the placed code within the EVM contract size limit that CREATE/CREATE2 would otherwise enforce -4. Use `initial_actors` in the provided (sorted) order -5. Compute `actors_commitment` per [Address Derivation](#address-derivation) -6. Compute `effective_salt = keccak256(user_salt || actors_commitment)` -7. Compute `deployment_code = DEPLOYMENT_HEADER(len(code)) || code` -8. Compute `expected = keccak256(0xff || KEYSTORE_ADDRESS || effective_salt || keccak256(deployment_code))[12:]` -9. Require `sender == expected` -10. Require the destination matches CREATE2 freshness: `code_size(sender) == 0` and `nonce(sender) == 0` (matching the conditions under which CREATE2 would be permitted to deploy) -11. Validate `sender_auth` against one of `initial_actors` (actorId resolved from auth must match an entry's actorId and the auth authenticator must match that entry's authenticator) +3. Use `initial_actors` in the provided (sorted) order +4. Compute `actors_commitment` per [Address Derivation](#address-derivation) +5. Compute `effective_salt = keccak256(user_salt || actors_commitment)` +6. Compute `deployment_code = DEPLOYMENT_HEADER(len(code)) || code` +7. Compute `expected = keccak256(0xff || KEYSTORE_ADDRESS || effective_salt || keccak256(deployment_code))[12:]` +8. Require `sender == expected` +9. Require the destination matches CREATE2 freshness: `code_size(sender) == 0` and `nonce(sender) == 0` (matching the conditions under which CREATE2 would be permitted to deploy) +10. Validate `sender_auth` against one of `initial_actors` (actorId resolved from auth must match an entry's actorId and the auth authenticator must match that entry's authenticator) #### Config Change Entry @@ -547,7 +546,7 @@ The operation-specific `payload` is an opaque `bytes` blob carried in the RLP en | change_type | Name | `payload` | Description | |-------------|------|-----------|-------------| | `0` | `AuthorizeActor` | `abi.encode(bytes32 actorId, ActorConfig config, bytes policyData)` (see [`ActorConfig`](#ikeystore)) | Upsert an actor. Writes `actor_config` with `authenticator`, `expiry` (`0` = no expiry; on the unsequenced/JIT path an already-lapsed non-zero expiry causes the grant to be **silently skipped** — not applied, no revert — otherwise the grant installs **inert** — see [Config Change Authorization](#config-change-authorization)), and `scope` verbatim (unknown scope bits stored as-is), reserved bytes zeroed. If `POLICY` is set, requires `policyData = manager ‖ commitment` (exactly 52 bytes) and writes those slots; otherwise requires empty `policyData` and clears policy slots. Does **not** enforce scope-combination exclusivity (that is use-time / protocol). Emits `ActorAuthorized` whose `actorData` is 32 bytes (`authenticator ‖ expiry ‖ scope ‖ reserved`) when `POLICY` is unset, or 84 bytes (appending `manager ‖ commitment`) when `POLICY` is set. | -| `1` | `RevokeActor` | `abi.encode(bytes32 actorId)` | Revoke an actor. Deletes `actor_config` / the default EOA config (and `policy_commitment`/`policy_manager`). Emits `ActorRevoked`. | +| `1` | `RevokeActor` | `abi.encode(bytes32 actorId)` | Revoke an actor. For a non-self actor, deletes `actor_config` (and `policy_commitment`/`policy_manager`). For the self-actorId, both homes are handled together: a k1 self (held inline in the packed account-state slot) is revoked by setting `DEFAULT_EOA_REVOKED` with no `actor_config` write, while a non-k1 self (held in `actor_config`, per [Storage Layout](#storage-layout)) has that slot deleted like any other actor; either way the inline default-EOA path is disabled. Emits `ActorRevoked`. | | `2` | `IncrementLocalEpoch` | empty | **Either channel.** Increments `local_epoch` and resets `local_sequence` to `0`, invalidating every unlanded local signature (sequenced and unsequenced) at the prior epoch. Always targets the local epoch, even when carried in a Multichain batch. Consumes no sequence itself. See [Epoch System](#epoch-system). | | `3` | `Lock` | `abi.encode(uint16 unlockDelay)` | **Local only, standalone.** Locks the account. See [Account Lock](#account-lock). | | `4` | `Unlock` | empty | **Local only, standalone.** Initiates unlock. See [Account Lock](#account-lock). | @@ -582,7 +581,7 @@ Both paths carry the same batch, share the same channels and counters, and are e #### Delegation Entry -Delegation entries set [EIP-7702](./eip-7702.md)-style code delegation for the sender's account, replacing the need for an `authorization_list` in the transaction. Delegation is authorized by the transaction's `sender_auth`, no separate signature is required. The sender must have been **authenticated via the native secp256k1 path** (the EOA path or `K1_AUTHENTICATOR`; mirroring the [Implicit EOA Rule Scoping](#security-considerations)), with `actorId == bytes32(bytes20(sender))` and admin (`scope == 0x00`). A non-secp256k1 self authenticator that returns the self-actorId does not qualify, keeping delegation authority ECDSA/7702-portable. +Delegation entries set [EIP-7702](./eip-7702.md)-style code delegation for the sender's account, replacing the need for an `authorization_list` in the transaction. Delegation is authorized by the transaction's `sender_auth`, no separate signature is required. The sender must have been **authenticated via the native secp256k1 path** (the EOA path or `K1_AUTHENTICATOR`; mirroring the [Implicit EOA Rule Scoping](#security-considerations)), with `actorId == bytes32(uint256(uint160(sender)))` and admin (`scope == 0x00`). A non-secp256k1 self authenticator that returns the self-actorId does not qualify, keeping delegation authority ECDSA/7702-portable. ##### Delegation Format @@ -816,7 +815,7 @@ The create entry uses the CREATE2 address formula with `KEYSTORE_ADDRESS` as the ### Why Delegation via Account Changes? -[EIP-7702](./eip-7702.md) introduced `authorization_list` as a transaction-level field for code delegation, with ECDSA authority. This proposal moves delegation into `account_changes`, authorized by the transaction's `sender_auth`. Delegation is restricted to senders authenticated via the native secp256k1 path (EOA path or `K1_AUTHENTICATOR`) with `actorId == bytes32(bytes20(sender))`, so that code delegation remains portable across non-8130 chains via standard [EIP-7702](./eip-7702.md) transactions (a non-secp256k1 self authenticator does not qualify, even if it returns the self-actorId). Eventually this can be expanded to all authenticator types, not just K1 EOAs. +[EIP-7702](./eip-7702.md) introduced `authorization_list` as a transaction-level field for code delegation, with ECDSA authority. This proposal moves delegation into `account_changes`, authorized by the transaction's `sender_auth`. Delegation is restricted to senders authenticated via the native secp256k1 path (EOA path or `K1_AUTHENTICATOR`) with `actorId == bytes32(uint256(uint160(sender)))`, so that code delegation remains portable across non-8130 chains via standard [EIP-7702](./eip-7702.md) transactions (a non-secp256k1 self authenticator does not qualify, even if it returns the self-actorId). Eventually this can be expanded to all authenticator types, not just K1 EOAs. ### External Account Factories @@ -994,7 +993,7 @@ All three cases resolve to the same `replay_id` (fee bumps included, since `repl **Local Epoch and Outstanding Signatures**: `IncrementLocalEpoch` cancels every unlanded **local** signature at the prior epoch (`StaleEpoch`), including unsequenced/JIT batches; it does **not** revoke live actors or affect the multichain channel (see [Epoch System](#epoch-system)). Because an unsequenced (JIT) batch is replayable within its epoch, wallets MUST treat epoch increment — not mere non-inclusion — as the durable retirement of a JIT authorization, batching the reducing `RevokeActor`/`AuthorizeActor` with `IncrementLocalEpoch`. Since the epoch does not walk authorizer lineage, an actor added by a landed batch survives later epoch bumps and must be removed with an explicit `RevokeActor`. -**Implicit EOA Rule Scoping**: The implicit EOA authorization rule only applies when authentication used the native secp256k1 path, either the EOA path (`sender` empty) or `K1_AUTHENTICATOR`, and the account's `DEFAULT_EOA_REVOKED` flag is unset. Generic authenticator contracts MUST NOT satisfy the implicit branch even if they return `bytes32(bytes20(sender))`, otherwise an arbitrary authenticator could authenticate as any EOA whose implicit actor slot has never been written. +**Implicit EOA Rule Scoping**: The implicit EOA authorization rule only applies when authentication used the native secp256k1 path, either the EOA path (`sender` empty) or `K1_AUTHENTICATOR`, and the account's `DEFAULT_EOA_REVOKED` flag is unset. Generic authenticator contracts MUST NOT satisfy the implicit branch even if they return `bytes32(uint256(uint160(sender)))`, otherwise an arbitrary authenticator could authenticate as any EOA whose implicit actor slot has never been written. **actorId Binding**: The protocol checks that the authenticator's returned `actorId` maps back to that authenticator in `actor_config`, preventing a malicious authenticator from claiming control of another authenticator's actors. @@ -1002,7 +1001,7 @@ All three cases resolve to the same `replay_id` (fee bumps included, since `repl **Cross-sender Payer Replay**: The payer signature hash binds to the resolved sender via the `sender` field (see [Signature Payload](#signature-payload)). In the EOA path where `sender` is empty in the wire format, the recovered sender address MUST be substituted into the `sender` position before computing the hash. Without this substitution, two different EOAs that construct otherwise identical transaction data (same `chain_id`, `nonce_key`, `nonce_sequence`, `expiry`, fees, `account_changes`, `calls`) would produce identical payer hashes, allowing a second EOA to reuse a payer signature originally issued for the first and drain the payer's gas deposit. The 2D nonce alone does not prevent this: `nonce_key` and `nonce_sequence` are fields in the transaction payload, so each attacker controls their own values. Substituting the recovered sender into the hash makes the payer's commitment per-sender and closes this replay path. The configured-actor path is unaffected because `sender` is non-empty by definition. -**Account Creation Security**: `initial_actors` (`actorId`, `authenticator`, `scope`, and `policyData`; expiry is not expressible at create, per [Address Derivation](#address-derivation)) are salt-committed, preventing front-running of actor assignment. Wallet bytecode should be inert when uninitialized as it can be permissionlessly deployed. The create entry applies only to addresses that satisfy CREATE2 freshness. Without the nonce check, a create entry could be replayed against an EOA that has transaction history at the counterfactual address. Direct code placement also bypasses CREATE/CREATE2's [EIP-170](./eip-170.md) `MAX_CODE_SIZE` check, so the protocol enforces `len(code) <= MAX_CODE_SIZE` explicitly to keep the placed code within the EVM contract size limit. +**Account Creation Security**: `initial_actors` (`actorId`, `authenticator`, `scope`, and `policyData`; expiry is not expressible at create, per [Address Derivation](#address-derivation)) are salt-committed, preventing front-running of actor assignment. Wallet bytecode should be inert when uninitialized as it can be permissionlessly deployed. The create entry applies only to addresses that satisfy CREATE2 freshness. Without the nonce check, a create entry could be replayed against an EOA that has transaction history at the counterfactual address. ## Copyright From 9c915ee494c05069945f4e1018fa0854e2d3fb38 Mon Sep 17 00:00:00 2001 From: Marc Date: Fri, 14 Aug 2026 21:54:24 +0100 Subject: [PATCH 52/53] Update EIP-8141: statically disallow approval scope on atomic-batch frames (#12109) * Update EIP-8141: atomic-batch unroll rolls back the approval context * Update EIP-8141: statically disallow approval scope on atomic-batch frames Replace the atomic-batch approval-context rollback with a static constraint: approval scope flags must be zero on every frame of an atomic batch, including its terminating frame. Since APPROVE requires its scope in frame.flags, the approval context cannot change inside a batch, so unrolling never involves the nonce increment or max_cost collection, and validity does not depend on the batch outcome. The frame-revert rule is kept: an inner call from the resolved target can APPROVE and the enclosing frame can still revert, so the approval context must be discarded with that frame's state changes. Tie the payer refund to the final value of payer, since a discarded approval means more than one resolved_target may have called APPROVE. * Trim the atomic-batch constraint comment * 8141: clean up some more * 8141: nit * 8141: revert text about payer refund --------- Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> Co-authored-by: lightclient --- EIPS/eip-8141.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-8141.md b/EIPS/eip-8141.md index 7af7c36ef278cb..e6cbf5b7cd73c7 100644 --- a/EIPS/eip-8141.md +++ b/EIPS/eip-8141.md @@ -190,6 +190,10 @@ for i, frame in enumerate(tx.frames): assert i + 1 < len(tx.frames) # must not be last frame assert tx.frames[i + 1].mode != VERIFY # batches never contain VERIFY frames + # A frame belongs to a batch when it or its predecessor carries ATOMIC_BATCH_FLAG. + if frame.flags & ATOMIC_BATCH_FLAG or (i > 0 and tx.frames[i - 1].flags & ATOMIC_BATCH_FLAG): + assert frame.flags & APPROVE_SCOPE_MASK == 0 + # Intrinsic and execution gas must fit the EIP-7825 transaction cap. assert max( frame_tx_intrinsic_gas + total_frame_execution_gas, @@ -413,7 +417,7 @@ Then for each frame: - A non-zero value transfer to an address other than `tx.sender` emits the transfer log specified by [EIP-7708](./eip-7708.md). - If `resolved_target` code hash is empty, i.e. `0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470`, execute the logic described in [default code](#default-code). - Otherwise, if `resolved_target` uses an [EIP-7702](./eip-7702.md) delegation indicator, execute according to [EIP-7702](./eip-7702.md)'s delegated-code semantics. - - If a frame's execution reverts, its state changes are discarded. Additionally, if this frame has the atomic batch flag set, mark all subsequent frames in the same atomic group as skipped. + - If a frame's execution reverts, its state changes and approval context (`payer`, `sender_approved`) are discarded. Additionally, if this frame has the atomic batch flag set, mark all subsequent frames in the same atomic group as skipped. 1. If frame has mode `VERIFY` the following additional requirements are imposed: - Execute the frame as a `STATICCALL`, disallowing state manipulation. - Only `APPROVE` can modify the state or transaction context in `VERIFY`. @@ -423,7 +427,8 @@ Then for each frame: - When a frame in the batch fails, the state must be rolled back to the condition it was immediately before the atomic batch began. All remaining frames in the atomic batch are skipped. - Logs emitted by frames that executed before the failure are discarded together with their state changes when the batch is unrolled. Changes to any frame receipt's `gas_used.state` during the batch are reverted, as the batch's state modifications are reverted. Executed frame receipts retain their execution status and execution gas used, with empty logs and zero state gas used. - Since skipped frames are not executed, the execution and state gas allotted to them are refunded at the end of the transaction. - - If the frame does not have an associated atomic batch, further special handling is not needed, simple revert the individual frame. + - `APPROVE` is not possible within a batch, so it is not necessary to rollback anything related to `payer` or `sender_approved`. + - If the frame does not have an associated atomic batch, further special handling is not needed, simply revert the individual frame. After executing all frames, verify that `payer` has been set (i.e. `payer != None`). If it is not, the whole transaction is invalid. Then, settle fees as defined in [Gas Accounting](#gas-accounting), returning `payer_refund` to the payer. @@ -1148,6 +1153,8 @@ Atomic batching allows multiple frames to be grouped into a single all-or-nothin Using a flag to indicate atomic batches saves us from having to introduce a new mode. Batches are identified purely by consecutive frames with the flag set, terminated by a frame without it. This design enables consecutive atomic batches since the batch boundary is clearly indicated by the frame without the flag. +Approval scope flags are disallowed on the frames of an atomic batch, including its terminating frame. Since `APPROVE` requires its scope to be present in `frame.flags`, this restriction is statically checkable, and it keeps the approval context constant across a batch. Unrolling a failed batch therefore never rolls back the sender nonce increment or the `max_cost` collection, a batch failure cannot retroactively withdraw an execution approval that later `SENDER` frames rely on, and whether the transaction sets `payer` never depends on a batch outcome. Approval can always be placed in a frame preceding the batch instead. + ### Per-frame cost Each frame incurs a fixed CALL execution-context overhead (100) plus `G_log` (375) for the receipt sub-entry it produces, giving `FRAME_TX_PER_FRAME_COST = 475`. The execution-context component covers context setup, mode dispatch, and the two-pool gas accounting at the frame boundary, analogous to the fixed overhead of a CALL. The `G_log` component covers the `[status, gas_used, logs]` receipt sub-entry that each frame adds to the transaction receipt, which must be serialized, hashed into the receipt trie, and proven by ZK-EVM implementations. Cold/warm access costs for the frame's target account are charged within the frame's own `limits.execution` through the normal EVM warm/cold accounting, not through the per-frame cost. From 4b5f3f42f6df8c9100f9954d2fc121d67e951449 Mon Sep 17 00:00:00 2001 From: Th0rgal Date: Mon, 17 Aug 2026 17:28:02 +0200 Subject: [PATCH 53/53] Update EIP-8282: Sync specification with sys-asm@83f9801 --- EIPS/eip-8282.md | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/EIPS/eip-8282.md b/EIPS/eip-8282.md index 45e570a246207d..b81eb7f65831af 100644 --- a/EIPS/eip-8282.md +++ b/EIPS/eip-8282.md @@ -8,7 +8,7 @@ status: Review type: Standards Track category: Core created: 2026-05-22 -requires: 1559, 7685, 7732 +requires: 1559, 7685, 7732, 7997 --- ## Abstract @@ -46,6 +46,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S | `TARGET_EXIT_REQUESTS_PER_BLOCK` | `2` | Per-block request count above which the fee rises for the exit contract | | `MIN_REQUEST_FEE` | `1` | Minimum request fee, in wei | | `REQUEST_FEE_UPDATE_FRACTION` | `17` | Controls the fee's rate of change | +| `INHIBITOR` | `2**256 - 1` | Sentinel value written to `stored_excess` to inhibit non-system calls. Matches the source-level macro in `src/builder_deposits/main.eas:31` and `src/builder_exits/main.eas:32`. | | `BUILDER_MIN_DEPOSIT` | `1000000000000000000` | Minimum credited stake for a deposit, in wei (1 ETH — the [EIP-7732](./eip-7732.md) builder minimum) | | `BUILDER_DEPOSIT_CONTRACT_RUNTIME_CODE` | *see [Reference Implementation](#reference-implementation)* | Runtime bytecode of the builder deposit contract | | `BUILDER_EXIT_CONTRACT_RUNTIME_CODE` | *see [Reference Implementation](#reference-implementation)* | Runtime bytecode of the builder exit contract | @@ -58,35 +59,62 @@ Both contracts are deployed by a `CREATE2` factory ([EIP-7997](./eip-7997.md)). The contracts MUST be deployed before the fork that activates this EIP. If there is no code at either address once the EIP is active, every block from activation onward MUST be invalid. +The deposit contract's constructor leaves all storage at zero. Its `stored_excess` and `count` start at zero, so the write path is active from deployment and pre-fork deposits are accepted. The exit contract's constructor initializes its `stored_excess` to `INHIBITOR`, which inhibits non-system calls until a system call with empty calldata clears it to zero. + ### Request queue and system call -Both predeploys follow the [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) contract design, with minor tweaks, and reuse their storage layout. There is no Solidity-compatible ABI. Each contract dispatches on the caller and on `calldatasize` alone. Calls that match none of the cases below MUST revert. +Both predeploys follow the [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) contract design, with minor tweaks, and reuse their storage layout. There is no Solidity-compatible ABI. Each contract dispatches on the caller and on `calldatasize` alone. + +The contracts use the following storage layout: + +- slot `0` stores `stored_excess`; +- slot `1` stores `count`; +- slot `2` stores `queue_head`; +- slot `3` stores `queue_tail`; +- queued records start at slot `4`. + +Before dispatching any call from an address other than `SYSTEM_ADDRESS`, the contract MUST revert if `stored_excess == INHIBITOR`. Calls that match none of the cases below MUST also revert. #### Write path -A call from any address other than `SYSTEM_ADDRESS`, with calldata of exactly the contract's input size, submits a request. The contract MUST validate the request and the value sent (see below), append one record to its queue, increment the per-block count, and emit the accepted record as an anonymous log. +A call from any address other than `SYSTEM_ADDRESS`, with calldata of exactly the contract's input size, submits a request. The contract MUST validate the request and the value sent (see below), append one record to its queue, increment `count`, and emit the accepted record as an anonymous log. + +`count` is the number of successful submissions since the last system call. It is stored in slot `1` and reset to zero by the system call. #### Fee getter -A call from any address other than `SYSTEM_ADDRESS`, with empty calldata, returns the current fee without modifying state. The contract MUST revert if any value is attached. +A call from any address other than `SYSTEM_ADDRESS`, with empty calldata, returns the current fee without modifying state. The contract MUST revert if any value is attached. The fee is returned as a 32-byte big-endian unsigned integer. #### System call -At the end of each block, the contract is called by `SYSTEM_ADDRESS`. If any calldata is included, the queue is permanently disabled via an inhibitor. If no calldata is included, it MUST dequeue up to its per-block maximum of records (`MAX_DEPOSIT_REQUESTS_PER_BLOCK` or `MAX_EXIT_REQUESTS_PER_BLOCK`, oldest first), return their concatenation as its `request_data`, and reset the per-block count. Records beyond the cap remain queued for subsequent blocks. +At the end of each block, the contract is called by `SYSTEM_ADDRESS`. The system call performs the following transition unconditionally and in order: + +1. Dequeue up to the per-block maximum of records (`MAX_DEPOSIT_REQUESTS_PER_BLOCK` or `MAX_EXIT_REQUESTS_PER_BLOCK`, oldest first) and construct `request_data` from their concatenation. If the dequeue empties the queue, set both `queue_head` and `queue_tail` to zero. Otherwise, advance `queue_head` past the dequeued records. The contract does not clear the dequeued record slots. +2. If calldata is non-empty, set `stored_excess` to `INHIBITOR`. This inhibits non-system calls. +3. If calldata is empty and `stored_excess` equals `INHIBITOR`, set `stored_excess` to zero, re-enabling non-system calls. If calldata is empty and `stored_excess` does not equal `INHIBITOR`, set `stored_excess` to `max(0, stored_excess + count - target)` where `target` is `TARGET_DEPOSIT_REQUESTS_PER_BLOCK` or `TARGET_EXIT_REQUESTS_PER_BLOCK` as applicable. +4. Reset `count` to zero. +5. Return `request_data`. + +Records beyond the cap remain queued for subsequent blocks. A system call with non-empty calldata always sets the inhibitor, regardless of whether records were dequeued. If `stored_excess` remains equal to `INHIBITOR`, the next system call with empty calldata clears it to zero. The execution layer prepends the contract's request-type byte and includes `request_type ++ request_data` in the block requests list, committed via the `requests_hash` ([EIP-7685](./eip-7685.md)). The system call follows the same rules as in [EIP-7002](./eip-7002.md). It runs with a dedicated gas limit of `30_000_000` that does not count against the block gas limit. If either contract's system call fails, the block MUST be invalid. +### Contract upgrade + +The reversible inhibition mechanism exists to support a future contract upgrade without losing queued requests. To upgrade the predeploy, a new contract is deployed, the old contract continues to drain its queue through subsequent system calls with empty calldata, and the system invocation is changed to call the new contract with non-empty calldata. The non-empty calldata sets `stored_excess` to `INHIBITOR` on the old contract, rejecting all new requests, while the new contract accepts new requests. For the duration of one fork, the old contract is drained to empty and the new contract receives new deposits. + ### Request fee Each request carries a fee, computed as in [EIP-7002](./eip-7002.md): ``` -fee = fake_exponential(MIN_REQUEST_FEE, excess, REQUEST_FEE_UPDATE_FRACTION) +effective_excess = stored_excess + max(0, count - TARGET_REQUESTS_PER_BLOCK) +fee = fake_exponential(MIN_REQUEST_FEE, effective_excess, REQUEST_FEE_UPDATE_FRACTION) ``` -where `fake_exponential` is the [EIP-1559](./eip-1559.md)-style integer approximation of `MIN_REQUEST_FEE * e**(excess / REQUEST_FEE_UPDATE_FRACTION)`. The fee rises super-linearly while blocks contain more than the target number of requests and decays back to `MIN_REQUEST_FEE` otherwise. It is charged on top of any staked value and is left locked in the contract. +where `TARGET_REQUESTS_PER_BLOCK` is `TARGET_DEPOSIT_REQUESTS_PER_BLOCK` or `TARGET_EXIT_REQUESTS_PER_BLOCK` as applicable, `count` is read from slot `1` before incrementing it for the current request, and `fake_exponential` is the [EIP-1559](./eip-1559.md)-style integer approximation of `MIN_REQUEST_FEE * e**(effective_excess / REQUEST_FEE_UPDATE_FRACTION)`. The fee rises super-linearly while blocks contain more than the target number of requests and decays back to `MIN_REQUEST_FEE` otherwise. It is charged on top of any staked value and is left locked in the contract. -Both contracts are modified to apply fee increases for each write path, rather than at end-of-block, as in [EIP-7002](./eip-7002.md). +Unlike [EIP-7002](./eip-7002.md), both contracts include the current `count` when they compute the fee for a non-system call. This allows the fee to increase within a block. The end-of-block system call still updates `stored_excess` as specified above. ### Deposit requests @@ -101,7 +129,7 @@ A deposit request is submitted by calling `BUILDER_DEPOSIT_CONTRACT_ADDRESS` wit A deposit request serves both a builder's first deposit and subsequent top-ups. The contract MUST reject the request unless `amount * 1 gwei >= BUILDER_MIN_DEPOSIT` and `msg.value >= amount * 1 gwei + fee`. Any value beyond `amount * 1 gwei + fee` is retained by the contract and not credited to the builder. -On success the contract queues the 184 input bytes. The dequeued record is the input verbatim with `amount` converted to little-endian, as in [EIP-7002](./eip-7002.md). The contract does not verify the `signature`. It is carried in the record and verified by the consensus layer. Submitters SHOULD verify the proof-of-possession off-chain before broadcasting a first deposit. +On success, the contract queues the exact 184-byte input and emits the same bytes as an anonymous log. The amount is therefore big-endian in both queue storage and the log. When the record is dequeued, the system output converts the amount to little-endian, as in [EIP-7002](./eip-7002.md). The contract does not verify the `signature`. It is carried in the record and verified by the consensus layer. Submitters SHOULD verify the proof-of-possession off-chain before broadcasting a first deposit. ### Exit requests @@ -175,7 +203,7 @@ This EIP is additive at the execution layer. It introduces new contracts at prev ## Reference Implementation -See [`src/builder_deposits`](https://github.com/ethereum/sys-asm/tree/3bba94c696bc46beeecef05db6c2df0f18b4b239/src/builder_deposits) and [`src/builder_deposits`](https://github.com/ethereum/sys-asm/tree/3bba94c696bc46beeecef05db6c2df0f18b4b239/src/builder_exits). +See [`src/builder_deposits`](https://github.com/ethereum/sys-asm/tree/83f9801245ff56878a450b5625801101b9a225a1/src/builder_deposits) and [`src/builder_exits`](https://github.com/ethereum/sys-asm/tree/83f9801245ff56878a450b5625801101b9a225a1/src/builder_exits). ## Security Considerations

7)CY^Jy0fWspZDs(H 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 Date: Sat, 8 Aug 2026 09:57:35 +0200 Subject: [PATCH 11/53] Update EIP-8272: Highlight privacy benefit upfront Merged by EIP-Bot. --- EIPS/eip-8272.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-8272.md b/EIPS/eip-8272.md index f164fd853bf974..1ff890ed8ce03b 100644 --- a/EIPS/eip-8272.md +++ b/EIPS/eip-8272.md @@ -13,7 +13,7 @@ requires: 7623, 7843, 8141 ## Abstract -[EIP-8141](./eip-8141.md) frame transactions can reference recent roots without reading mutable storage during validation. A root source writes roots to a system contract, with each root keyed by `(source_id, slot)`, where `source_id` derives from the writer address and a salt. A frame transaction may declare recent root references of the form: +[EIP-8141](./eip-8141.md) frame transactions can reference recent roots without reading mutable storage during validation. This helps privacy applications validate spends using proofs against recent commitment tree roots named in the signed transaction envelope. A root source writes roots to a system contract, with each root keyed by `(source_id, slot)`, where `source_id` derives from the writer address and a salt. A frame transaction may declare recent root references of the form: ```text (source_id, slot, root) From c9d962f194b9b167e045b3b68a7a292cdc4cec7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Wahrst=C3=A4tter?= <51536394+nerolation@users.noreply.github.com> Date: Sat, 8 Aug 2026 09:58:20 +0200 Subject: [PATCH 12/53] Update EIP-8250: Highlight privacy benefit upfront Merged by EIP-Bot. --- EIPS/eip-8250.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-8250.md b/EIPS/eip-8250.md index b8053ad054209b..b824d302c2c038 100644 --- a/EIPS/eip-8250.md +++ b/EIPS/eip-8250.md @@ -13,7 +13,7 @@ requires: 7623, 8141 ## Abstract -Replaces the single sender nonce of an [EIP-8141](./eip-8141.md) frame transaction with `(nonce_keys, nonce_seq)`: a bounded set of nonce keys sharing one sequence number. `nonce_keys == [0]` aliases the legacy account nonce; each non-zero key selects an independent protocol-managed nonce sequence stored in a `NONCE_MANAGER` system contract. Transactions whose non-zero key sets do not overlap are replay-independent. +Replaces the single sender nonce of an [EIP-8141](./eip-8141.md) frame transaction with `(nonce_keys, nonce_seq)`: a bounded set of nonce keys sharing one sequence number. `nonce_keys == [0]` aliases the legacy account nonce; each non-zero key selects an independent protocol-managed nonce sequence stored in a `NONCE_MANAGER` system contract. Transactions whose non-zero key sets do not overlap are replay-independent. This helps privacy applications use one shared sender for many users without forcing every transaction through the same nonce sequence. ## Motivation From 4093c218472aa3c95badd3194dfa764d61b4a35b Mon Sep 17 00:00:00 2001 From: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> Date: Sun, 9 Aug 2026 01:28:36 +1000 Subject: [PATCH 13/53] Update EIP-7773: Add polar bear mascot Merged by EIP-Bot. --- EIPS/eip-7773.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/EIPS/eip-7773.md b/EIPS/eip-7773.md index 9139edbe22ee3c..f85ced0bfb135e 100644 --- a/EIPS/eip-7773.md +++ b/EIPS/eip-7773.md @@ -98,6 +98,10 @@ Definitions for `Scheduled for Inclusion`, `Considered for Inclusion`, `Declined * [EIP-8080](./eip-8080.md): Let exits use the consolidation queue * [EIP-8254](./eip-8254.md): Cap Deposit Requests Per Block +### Mascot + +Polar bear :polar_bear: is the mascot for the Glamsterdam network upgrade, as per the [EIP-8066](./eip-8066.md) process. + ### Activation | Network Name | Activation Epoch | Activation Timestamp | From bf6b73a8cd122c70ff2404b9483107f37396210e Mon Sep 17 00:00:00 2001 From: Marc Date: Mon, 10 Aug 2026 15:09:29 +0100 Subject: [PATCH 14/53] Update EIP-7906: specify handling of reserved `must be 0` inputs Merged by EIP-Bot. --- EIPS/eip-7906.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/EIPS/eip-7906.md b/EIPS/eip-7906.md index a8625c9aaaaa96..bafd79bc72ec69 100644 --- a/EIPS/eip-7906.md +++ b/EIPS/eip-7906.md @@ -163,6 +163,10 @@ For params `0x00`–`0x05`, the accessed slot or address is added to the respect `codehash_before` is equal to the empty-code hash for undeployed contracts. +### Reserved Inputs + +Any `in2`/`in3` operand marked *must be 0* in the parameter tables above MUST be zero; supplying a non-zero value causes an exceptional halt. + ### Results Ordering Balance and storage slot changes returned by the `TXTRACE` opcode are enumerated in ascending order sorted by the affected address as a numerical `uint160` value. From 5d4e0e613cdedc30733db6f382c47379ebb5c31c Mon Sep 17 00:00:00 2001 From: Marc Date: Mon, 10 Aug 2026 15:10:00 +0100 Subject: [PATCH 15/53] Update EIP-7906: specify EIP-7928 recording of TXDIFF state reads Merged by EIP-Bot. --- EIPS/eip-7906.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7906.md b/EIPS/eip-7906.md index bafd79bc72ec69..4e1c8e756b2c63 100644 --- a/EIPS/eip-7906.md +++ b/EIPS/eip-7906.md @@ -159,7 +159,7 @@ The actual nonce value is not observable through `TXTRACE` or `TXDIFF`. - Balance and codehash params (`0x02`–`0x05`): `COLD_ACCOUNT_ACCESS_COST` (2600) if the address is not in the accessed addresses set; `WARM_STORAGE_READ_COST` (100) otherwise. - Per-address view and flags params (`0x06`–`0x0A`): a flat cost of `TXTRACE_GAS_COST`. These params are answered entirely from the transaction-local state diff and never read the live state. -For params `0x00`–`0x05`, the accessed slot or address is added to the respective access list after the call. Params `0x06`–`0x0A` do not interact with the [EIP-2929](./eip-2929.md) access lists. +For params `0x00`–`0x05`, the accessed slot or address is added to the [EIP-2929](./eip-2929.md) access list after the call, and — where [EIP-7928](./eip-7928.md) is active — recorded in the block-level access list, like any other state-reading opcode. `TXTRACE` and `EVENTDATACOPY` read only already-recorded diff and log data and therefore add no new accesses. Params `0x06`–`0x0A` do not interact with the [EIP-2929](./eip-2929.md) access lists. `codehash_before` is equal to the empty-code hash for undeployed contracts. From 4cb50077ebfedd47ea0473038c080b1d985108de Mon Sep 17 00:00:00 2001 From: Marc Date: Mon, 10 Aug 2026 15:10:51 +0100 Subject: [PATCH 16/53] Update EIP-7906: define `contracts_deployed` precisely and specify absent-topic halts Merged by EIP-Bot. --- EIPS/eip-7906.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-7906.md b/EIPS/eip-7906.md index 4e1c8e756b2c63..2c1079acfe2af4 100644 --- a/EIPS/eip-7906.md +++ b/EIPS/eip-7906.md @@ -77,9 +77,9 @@ The available parameters are listed in the table below. | 0x0D | index in `events_count` | `events_address` - the address of the contract that emitted the event | | 0x0E | index in `events_count` | `event_topic_count` - the number of topics of the event (0–4) | | 0x0F | index in `events_count` | `event_topic0` - the first topic of the event; exceptional halt if no topic | -| 0x10 | index in `events_count` | `event_topic1` - the second topic of the event | -| 0x11 | index in `events_count` | `event_topic2` - the third topic of the event | -| 0x12 | index in `events_count` | `event_topic3` - the fourth topic of the event | +| 0x10 | index in `events_count` | `event_topic1` - the second topic of the event; exceptional halt if no such topic | +| 0x11 | index in `events_count` | `event_topic2` - the third topic of the event; exceptional halt if no such topic | +| 0x12 | index in `events_count` | `event_topic3` - the fourth topic of the event; exceptional halt if no such topic | | 0x13 | index in `events_count` | `event_data_len` - the byte length of the event's non-indexed data | | 0x14 | must be 0 | `gas_pre_charge` - the total amount deducted from the gas payer | | 0x15 | must be 0 | `gas_payer_address` - the address charged the gas pre-charge | @@ -97,6 +97,8 @@ The `before` values reflect the transaction prestate values recorded before the An address will appear in `balances_changed` when its balance at the time of the `TXTRACE` call differs from its balance at transaction start. This includes the gas fee pre-charge applied to the gas payer address. Callers computing the net ETH transferred to or from an address can look up the gas payer via `gas_payer_address` (param `0x15`) and subtract `gas_pre_charge` (param `0x14`) from that address's balance delta. +An address appears in `contracts_deployed` when its code hash changed during the transaction from the empty-code hash to a non-empty code hash that is not an [EIP-7702](./eip-7702.md) delegation designator. An account that a `CREATE`/`CREATE2` leaves with empty code is not enumerated, as it has no code change. + ### Transaction Diff Lookup Opcode While `TXTRACE` enumerates the full state diff, it has no mechanism to directly query the diff for one specific account's balance, codehash, or storage slot. From d7f6f26dd7b183e3f58143b966fc61ee152b062b Mon Sep 17 00:00:00 2001 From: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Date: Mon, 10 Aug 2026 10:59:21 -0400 Subject: [PATCH 17/53] Update EIP-1: allow links to sys-asm Merged by EIP-Bot. --- EIPS/eip-1.md | 18 ++++++++++++++++++ config/eipw.toml | 2 ++ 2 files changed, 20 insertions(+) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index b3f77918ba4bab..9c0b2a5d16077b 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -218,6 +218,24 @@ Permitted Execution Client Specifications URLs must anchor to a specific commit, The Ethereum Execution Client Specifications repository also contains the Ethereum Execution Specification Tests, under its `tests/` directory. Links to specific commits of those test files are permitted under the same rule. +### Ethereum System Contract Implementations + +Links to the Ethereum System Contract Implementations repository may be included using normal markdown syntax, such as: + +```markdown +[Ethereum System Contract Implementations](https://github.com/ethereum/sys-asm/blob/83f9801245ff56878a450b5625801101b9a225a1/README.md) +``` + +Which renders to: + +[Ethereum System Contract Implementations](https://github.com/ethereum/sys-asm/blob/83f9801245ff56878a450b5625801101b9a225a1/README.md) + +Permitted URLs must anchor to a specific commit, and so must match this regular expression: + +```regex +^(https://github.com/ethereum/sys-asm/(blob|commit)/[0-9a-f]{40}/.*|https://github.com/ethereum/sys-asm/tree/[0-9a-f]{40}/.*)$ +``` + ### Consensus Layer Specifications Links to specific commits of files within the Ethereum Consensus Layer Specifications may be included using normal markdown syntax, such as: diff --git a/config/eipw.toml b/config/eipw.toml index a4b00089db824b..8b96c384f8aa10 100644 --- a/config/eipw.toml +++ b/config/eipw.toml @@ -148,6 +148,8 @@ exceptions = [ '^https://www\.w3\.org/TR/[0-9][0-9][0-9][0-9]/.*$', '^https://[a-z]*\.spec\.whatwg\.org/commit-snapshots/[0-9a-f]{40}/$', '^https://www\.rfc-editor\.org/rfc/.*$', + '^https://(www\.)?github\.com/ethereum/sys-asm/(blob|tree)/[a-f0-9]{40}/.+$', + '^https://(www\.)?github\.com/ethereum/sys-asm/commit/[a-f0-9]{40}$', '^https://www\.unicode\.org/reports/tr[0-9]+/tr[0-9]+-[0-9]+\.html$', ] From 2d3c5e59e47103df15e51aafc815ba0b234e3388 Mon Sep 17 00:00:00 2001 From: Cayman Date: Mon, 10 Aug 2026 11:23:39 -0400 Subject: [PATCH 18/53] Update EIP-8282: Cleanup and Tweaks Merged by EIP-Bot. --- EIPS/eip-8282.md | 165 ++++++++++++++++++++++++++--------------------- 1 file changed, 93 insertions(+), 72 deletions(-) diff --git a/EIPS/eip-8282.md b/EIPS/eip-8282.md index ab44fb76a626f5..45e570a246207d 100644 --- a/EIPS/eip-8282.md +++ b/EIPS/eip-8282.md @@ -2,7 +2,7 @@ eip: 8282 title: Builder Execution Requests description: Predeploy builder deposit and exit request contracts for EIP-7732 builders on the EIP-7685 request bus -author: Cayman (@wemeetagain), Nico Flaig , Justin Traglia +author: Cayman (@wemeetagain), Nico Flaig , Felix Lange , Justin Traglia discussions-to: https://ethereum-magicians.org/t/eip-8282-builder-execution-requests/28699 status: Review type: Standards Track @@ -13,24 +13,19 @@ requires: 1559, 7685, 7732 ## Abstract -Predeploy two [EIP-7685](./eip-7685.md) request contracts for [EIP-7732](./eip-7732.md) builders, modelled on the request bus that [EIP-7002](./eip-7002.md) (withdrawals) and [EIP-7251](./eip-7251.md) (consolidations) use: - -- a builder **deposit** contract that takes a raw 184-byte request — `pubkey ++ withdrawal_credentials ++ amount ++ signature` — and appends it to its queue. It serves both first deposits and top-ups: the consensus layer registers a builder on a `pubkey`'s first appearance and credits additional stake on later deposits. The signature is carried in the record and verified by the consensus layer on dequeue. -- a builder **exit** contract that takes a raw 48-byte `pubkey` and appends a full-exit record authorized by the caller's address (recorded as `source_address`). - -Each contract maintains an in-state request queue drained by an end-of-block `SYSTEM_ADDRESS` system call; the dequeued records become the contract's [EIP-7685](./eip-7685.md) `request_data`, committed in the block `requests_hash`, and each accepted request is also emitted as an anonymous log. Neither touches the validator deposit contract or the validator request predeploys; for builders created after the fork, they replace EIP-7732's onboarding through the validator deposit flow. +This EIP introduces two [EIP-7685](./eip-7685.md) request types and corresponding predeploy contracts for [EIP-7732](./eip-7732.md) builders. A builder deposit contract handles initial registration and stake top-ups. A builder exit contract lets a builder's `execution_address` trigger a full exit. Both contracts follow the request-bus pattern of [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md). Builders no longer onboard through the validator deposit flow or exit through the voluntary-exit operation. ## Motivation -[EIP-7732](./eip-7732.md) introduces builders as a separate, staked consensus-layer class. A builder is created by a deposit, can have stake added, and must be able to exit. Today EIP-7732 sources this lifecycle from the *validator* flows: a builder is registered by an ordinary validator deposit request whose withdrawal credential carries the `0xB0` `BUILDER_WITHDRAWAL_PREFIX`, and a builder exits through a builder branch of the consensus-layer voluntary-exit operation. This EIP instead gives builders their own dedicated [EIP-7685](./eip-7685.md) request contracts. +[EIP-7732](./eip-7732.md) introduces builders as a separate, staked consensus-layer actor, but reuses validator flows for their lifecycle. A builder is registered by a validator deposit whose withdrawal credential carries the `0xB0` `BUILDER_WITHDRAWAL_PREFIX`, and it exits through a builder branch of the voluntary-exit operation. Dedicated builder request types improve on this in several ways. -**Dedicated request types remove cross-actor coupling.** Routing builders through the validator contracts forces the consensus layer to decide, on every request, whether it acts on the validator set or the builder set (today by inspecting the credential prefix). Dedicated builder request types make the actor explicit from the request type alone, so the validator and builder registries are keyed independently. A single public key can then be registered as both a validator and a builder. Under EIP-7732 the two cannot coexist for one key — a builder deposit is routed to the builder registry only when the key is not already a validator or pending validator, so deposit *routing*, not an explicit prohibition, keeps each key in at most one registry. Keying by request type removes that coupling: the registries become independent, and a key may appear in both with distinct indices and lifecycles (the only practical consequence is implementation-side; see [Security Considerations](#security-considerations)). +Dedicated types make the actor explicit from the request type alone. The consensus layer no longer routes deposits by inspecting credential prefixes, and the validator and builder registries are keyed independently. -**The deposit bounds a consensus-side denial-of-service surface.** A builder deposit's proof-of-possession is verified *inline* by the consensus layer when the deposit is processed — unlike a validator deposit, which is deferred to the churn-limited `pending_deposits` queue. Carried on the validator deposit request, builder deposits inherit its high per-payload ceiling, so an attacker submitting invalid-signature builder deposits at the 1-ETH builder minimum could force a full payload's worth of proof-of-possession checks. The coupled deposit request scheme also requires verifying all matching pending validator deposit signatures at builder deposit verification time. A *dedicated* request bus **separates** builder deposits from validator deposits — isolating the builder-side verification work — and caps them at `MAX_DEPOSIT_REQUESTS_PER_BLOCK` per block. The cap and separation are what bound the builder-side verification the consensus layer performs per block. +A builder deposit's proof-of-possession is verified inline when the deposit is processed, unlike a validator deposit's, which is deferred to the churn-limited `pending_deposits` queue. Builder deposits carried on the validator deposit request inherit its high per-payload ceiling. A dedicated request type isolates the verification work and caps it at `MAX_DEPOSIT_REQUESTS_PER_BLOCK` per block. -**Exit gains a cold-key path builders lack today.** EIP-7732 lets a builder exit only via a voluntary exit signed by its BLS key — the same hot key it uses to sign bids. The exit contract instead authorizes a full exit by the builder's `execution_address` (the address that owns its stake), exactly as [EIP-7002](./eip-7002.md) lets a validator's withdrawal credential trigger an exit. Routing builder exits through this request makes the consensus-layer voluntary-exit operation validator-only again. +Under [EIP-7732](./eip-7732.md), a builder can only exit with a signature from its BLS key, the same hot key that signs its bids. The exit contract instead authorizes exit by the builder's `execution_address`, as [EIP-7002](./eip-7002.md) does for validators. -Builders that must exist at the fork are unaffected: EIP-7732's fork-transition onboarding of builder-credentialed pending deposits is retained (see [Changes to EIP-7732](#changes-to-eip-7732)); only post-fork onboarding moves to the deposit contract. The deployed validator deposit contract is left untouched, and builder stake withdrawals continue to flow through EIP-7732's existing full-balance sweep. +Builders that must exist at the fork are unaffected. The [EIP-7732](./eip-7732.md) fork-transition onboarding of builder-credentialed pending deposits is retained, and only post-fork onboarding moves to the new contract. ## Specification @@ -38,8 +33,6 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ### Constants -The `0x03`/`0x04` request types MUST be unique across **all** active [EIP-7685](./eip-7685.md) request types; final allocation is coordinated in consensus-specs. - | Name | Value | Comment | | --- | --- | --- | | `BUILDER_DEPOSIT_CONTRACT_ADDRESS` | `0x0000bFF46984e3725691FA540a8C7589300D8282` | Predeploy address of the builder deposit contract | @@ -53,67 +46,70 @@ The `0x03`/`0x04` request types MUST be unique across **all** active [EIP-7685]( | `TARGET_EXIT_REQUESTS_PER_BLOCK` | `2` | Per-block request count above which the fee rises for the exit contract | | `MIN_REQUEST_FEE` | `1` | Minimum request fee, in wei | | `REQUEST_FEE_UPDATE_FRACTION` | `17` | Controls the fee's rate of change | -| `EXCESS_INHIBITOR` | `2**256-1` | Excess value that makes the fee getter revert before the first system call (as in [EIP-7002](./eip-7002.md)/[EIP-7251](./eip-7251.md)); set at deployment, cleared by the first system call | | `BUILDER_MIN_DEPOSIT` | `1000000000000000000` | Minimum credited stake for a deposit, in wei (1 ETH — the [EIP-7732](./eip-7732.md) builder minimum) | | `BUILDER_DEPOSIT_CONTRACT_RUNTIME_CODE` | *see [Reference Implementation](#reference-implementation)* | Runtime bytecode of the builder deposit contract | | `BUILDER_EXIT_CONTRACT_RUNTIME_CODE` | *see [Reference Implementation](#reference-implementation)* | Runtime bytecode of the builder exit contract | +Final request-type values MUST be unique across all active [EIP-7685](./eip-7685.md) request types. Allocation is coordinated in consensus-specs, where the existing types are defined ([`electra/beacon-chain.md`](https://github.com/ethereum/consensus-specs/blob/e310d1c0d316e4dcc822164966c5bfa592adae2b/specs/electra/beacon-chain.md)). + ### Deployment -Each predeploy is deployed exactly as the [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) request contracts are: by a one-time presigned transaction from a single-use deployer account (the Nick's-method scheme), so that `BUILDER_DEPOSIT_CONTRACT_ADDRESS` and `BUILDER_EXIT_CONTRACT_ADDRESS` are the addresses cryptographically derived from those transactions. Each contract's init code sets its `excess` slot to `EXCESS_INHIBITOR`, so no request can be enqueued until the inhibitor is cleared (see [Request fee](#request-fee)). The addresses above are derived from the presigned deployment transactions for the current reference bytecode; they will change if the runtime bytecode changes before it is audited and frozen (see [Reference Implementation](#reference-implementation)). +Both contracts are deployed by a `CREATE2` factory ([EIP-7997](./eip-7997.md)). Each address is determined by the factory, a salt, and the contract's init code. The salt was mined so that the addresses above result from the current reference bytecode. -The deployment transactions MUST be included before the fork that activates this EIP. If there is no code at either predeploy address once the EIP is active, every block from activation onward MUST be invalid — the same handling [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) specify for their predeploys. +The contracts MUST be deployed before the fork that activates this EIP. If there is no code at either address once the EIP is active, every block from activation onward MUST be invalid. ### Request queue and system call -Both predeploys follow the [EIP-7002](./eip-7002.md) / [EIP-7251](./eip-7251.md) request-bus pattern, reusing those contracts' storage layout: the [EIP-1559](./eip-1559.md)-style `excess` counter in slot 0, the per-block request `count` in slot 1, the FIFO queue's head and tail indices in slots 2 and 3, and the queued records from slot 4 onward. There is no ABI: like EIP-7002/EIP-7251, each contract dispatches on the caller and on `calldatasize` alone. +Both predeploys follow the [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) contract design, with minor tweaks, and reuse their storage layout. There is no Solidity-compatible ABI. Each contract dispatches on the caller and on `calldatasize` alone. Calls that match none of the cases below MUST revert. + +#### Write path -- From `SYSTEM_ADDRESS` (the end-of-block system call): the predeploy MUST dequeue up to `MAX_REQUESTS_PER_BLOCK` records (oldest first), return their concatenation as that contract's `request_data`, advance its queue head past the returned records (resetting head and tail to zero when the queue fully drains, so the storage slots are reused), then update `excess` from the number of requests added in the block (`excess = max(0, excess + count - TARGET_REQUESTS_PER_BLOCK)`, treating a current value of `EXCESS_INHIBITOR` as `0` so the first system call clears the inhibitor) and reset that count. Records beyond the per-block cap remain queued for subsequent blocks. -- From any other caller with calldata of exactly the contract's input size: the write path. The predeploy MUST validate the request and the value sent (see the request sections below), append one record to its queue, increment the per-block count, and emit the accepted request as an anonymous log (`LOG0`, no topics). -- From any other caller with empty calldata: the fee getter. The predeploy MUST return the current fee without modifying state, and MUST revert if any value is attached (preventing accidentally lost funds). -- Any other calldata size MUST revert. +A call from any address other than `SYSTEM_ADDRESS`, with calldata of exactly the contract's input size, submits a request. The contract MUST validate the request and the value sent (see below), append one record to its queue, increment the per-block count, and emit the accepted record as an anonymous log. -The execution layer prepends the contract's request-type byte and includes `request_type ++ request_data` in the block requests list, committed via the `requests_hash` ([EIP-7685](./eip-7685.md)). The logs are informational only — the canonical flow of a request into the chain is the `requests_hash`. +#### Fee getter -The end-of-block system call to each predeploy follows the same rules [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) specify, restated here because [EIP-7685](./eip-7685.md) does not: the call is made as `SYSTEM_ADDRESS` with a dedicated gas limit of `30_000_000`; the gas it consumes does not count against the block gas limit and no value is transferred; and **if any of the predeploys' system calls fails or returns an error, the block MUST be invalid.** +A call from any address other than `SYSTEM_ADDRESS`, with empty calldata, returns the current fee without modifying state. The contract MUST revert if any value is attached. + +#### System call + +At the end of each block, the contract is called by `SYSTEM_ADDRESS`. If any calldata is included, the queue is permanently disabled via an inhibitor. If no calldata is included, it MUST dequeue up to its per-block maximum of records (`MAX_DEPOSIT_REQUESTS_PER_BLOCK` or `MAX_EXIT_REQUESTS_PER_BLOCK`, oldest first), return their concatenation as its `request_data`, and reset the per-block count. Records beyond the cap remain queued for subsequent blocks. + +The execution layer prepends the contract's request-type byte and includes `request_type ++ request_data` in the block requests list, committed via the `requests_hash` ([EIP-7685](./eip-7685.md)). The system call follows the same rules as in [EIP-7002](./eip-7002.md). It runs with a dedicated gas limit of `30_000_000` that does not count against the block gas limit. If either contract's system call fails, the block MUST be invalid. ### Request fee -Each request carries a fee, computed exactly as in [EIP-7002](./eip-7002.md): +Each request carries a fee, computed as in [EIP-7002](./eip-7002.md): ``` fee = fake_exponential(MIN_REQUEST_FEE, excess, REQUEST_FEE_UPDATE_FRACTION) ``` -where `fake_exponential` is the integer approximation of `MIN_REQUEST_FEE · e^(excess / REQUEST_FEE_UPDATE_FRACTION)` used by [EIP-1559](./eip-1559.md). Because `excess` grows whenever a block contains more than `TARGET_REQUESTS_PER_BLOCK` requests and decays otherwise, the fee rises super-linearly under sustained demand and returns to `MIN_REQUEST_FEE` when demand subsides. The fee is charged on top of any staked value (see the request sections below) and is left locked in the contract. +where `fake_exponential` is the [EIP-1559](./eip-1559.md)-style integer approximation of `MIN_REQUEST_FEE * e**(excess / REQUEST_FEE_UPDATE_FRACTION)`. The fee rises super-linearly while blocks contain more than the target number of requests and decays back to `MIN_REQUEST_FEE` otherwise. It is charged on top of any staked value and is left locked in the contract. -As in EIP-7002/EIP-7251, each contract's `excess` is initialized to `EXCESS_INHIBITOR` at deployment, and the fee getter reverts while `excess == EXCESS_INHIBITOR`. Since a request is only appended after its fee is paid, this blocks every request between deployment and the first end-of-block system call; that call clears the inhibitor (treating the prior `excess` as `0`), and normal fee operation runs from the activation block onward. +Both contracts are modified to apply fee increases for each write path, rather than at end-of-block, as in [EIP-7002](./eip-7002.md). ### Deposit requests -A deposit request is submitted by calling the deposit contract with calldata of exactly `184` bytes: - -| Bytes | Field | -| --- | --- | -| `0:48` | `pubkey` — 48-byte BLS public key | -| `48:80` | `withdrawal_credentials` — 32-byte commitment (`version` byte + `execution_address`) | -| `80:88` | `amount` — big-endian `uint64`, in gwei ([EIP-7002](./eip-7002.md)'s input convention) | -| `88:184` | `signature` — 96-byte BLS proof-of-possession | +A deposit request is submitted by calling `BUILDER_DEPOSIT_CONTRACT_ADDRESS` with calldata of exactly `184` bytes: -A deposit request serves both a builder's first deposit and subsequent top-ups. The contract MUST reject the request unless both of the following hold: +| Bytes | Field | Description | +| --- | --- | --- | +| `0:48` | `pubkey` | 48-byte BLS public key | +| `48:80` | `withdrawal_credentials` | 32-byte commitment (`version` byte + `execution_address`) | +| `80:88` | `amount` | Big-endian `uint64`, in gwei | +| `88:184` | `signature` | 96-byte BLS proof-of-possession | -1. `amount * 1 gwei >= BUILDER_MIN_DEPOSIT`. -2. `msg.value >= fee`, where `fee` is the current request fee, **and** `msg.value - fee >= amount * 1 gwei` — the value beyond the fee fully funds the stake. Any value beyond `amount * 1 gwei + fee` is retained by the contract and not credited to the builder. +A deposit request serves both a builder's first deposit and subsequent top-ups. The contract MUST reject the request unless `amount * 1 gwei >= BUILDER_MIN_DEPOSIT` and `msg.value >= amount * 1 gwei + fee`. Any value beyond `amount * 1 gwei + fee` is retained by the contract and not credited to the builder. -On success it MUST append the 184 input bytes to its queue and emit them as an anonymous log (which therefore carries the amount big-endian, as submitted). The dequeued `BUILDER_DEPOSIT_REQUEST_TYPE` record is `pubkey (48) ++ withdrawal_credentials (32) ++ amount (8, little-endian) ++ signature (96)`: the input verbatim, with the amount converted to its little-endian SSZ encoding, as [EIP-7002](./eip-7002.md) returns its amount. The `signature` is carried in the record and verified by the consensus layer, which checks the proof-of-possession only on the `pubkey`'s first appearance and treats a later deposit to an existing builder as a stake top-up (see [Consensus-layer processing of records](#consensus-layer-processing-of-records)). +On success the contract queues the 184 input bytes. The dequeued record is the input verbatim with `amount` converted to little-endian, as in [EIP-7002](./eip-7002.md). The contract does not verify the `signature`. It is carried in the record and verified by the consensus layer. Submitters SHOULD verify the proof-of-possession off-chain before broadcasting a first deposit. ### Exit requests -An exit request is submitted by calling the exit contract with calldata of exactly `48` bytes: the `pubkey` of the builder to exit. The contract MUST require `msg.value >= fee` (the same request fee as the deposit contract); it stakes no value and moves no ETH on the execution layer. On success it MUST append a `BUILDER_EXIT_REQUEST_TYPE` record of `source_address (20) ++ pubkey (48)` to its queue, where `source_address` is `msg.sender`, and emit the record as an anonymous log. +An exit request is submitted by calling `BUILDER_EXIT_CONTRACT_ADDRESS` with calldata of exactly `48` bytes, the `pubkey` of the builder to exit. The contract MUST require `msg.value >= fee`. No value is staked. On success it queues a record of `source_address (20) ++ pubkey (48)`, where `source_address` is `msg.sender`. -Authorization is by `source_address`, as in [EIP-7002](./eip-7002.md): the caller proves control of the builder by transacting from the builder's `execution_address`. The contract records `msg.sender` verbatim and performs no further check; the consensus layer honours the request only when `source_address` equals the target builder's `execution_address` (see [Consensus-layer processing of records](#consensus-layer-processing-of-records)). +Authorization is by `source_address`, as in [EIP-7002](./eip-7002.md). The contract records `msg.sender` and performs no further check. The consensus layer honors the request only when `source_address` equals the target builder's `execution_address`. -### Consensus layer request objects +### Consensus layer processing The consensus layer decodes each dequeued record into one of two SSZ containers, selected by request type: @@ -129,58 +125,83 @@ class BuilderExitRequest(Container): pubkey: Bytes48 ``` -A type's `request_data` is the concatenation of the fixed-size SSZ serializations of its records — 184 bytes per `BuilderDepositRequest` (`pubkey ++ withdrawal_credentials ++ amount ++ signature`) and 68 bytes per `BuilderExitRequest` (`source_address ++ pubkey`), with `amount` little-endian — exactly the bytes the system call returns, in the same order. `BuilderDepositRequest` is the validator [EIP-6110](./eip-6110.md) `DepositRequest` without the `index` field; the consensus layer verifies its `signature` (the proof-of-possession) on the builder's first registration. - -### Consensus-layer processing of records +A type's `request_data` is the concatenation of the fixed-size SSZ serializations of its records, which is exactly the bytes the system call returns, in the same order. `BuilderDepositRequest` is the [EIP-6110](./eip-6110.md) `DepositRequest` without the `index` field. -Both request types are applied immediately when processed — a `BuilderDepositRequest` is **not** routed through the validator `pending_deposits` queue, so a builder's balance is credited without an activation-churn queue, preserving EIP-7732's existing behavior. (A newly registered builder still becomes active for bidding and exit only once its deposit epoch is finalized, per Gloas `is_active_builder`; only the churn queue is skipped, not finality.) +Detailed state-transition behavior is specified in consensus-specs. In summary: -- A `BuilderDepositRequest` (type `0x03`) for a `pubkey` **not** yet in the builder set is a first deposit, handled by Gloas `process_builder_deposit_request`. The consensus layer registers the builder if the proof-of-possession `signature` over the `DepositMessage` `(pubkey, withdrawal_credentials, amount)` under `DOMAIN_BUILDER_DEPOSIT` is valid (`is_valid_builder_deposit_signature`) — a builder-specific signing domain, distinct from the validator deposit's `DOMAIN_DEPOSIT` (see [Security Considerations](#security-considerations)). On a valid signature it adds the builder with `balance = amount`, `execution_address` = the credential's last 20 bytes (`withdrawal_credentials[12:]`), and `version = withdrawal_credentials[0]` — the first credential byte is recorded as the builder's *version* (the only currently defined value is `PAYLOAD_BUILDER_VERSION`, `0`), **not** checked against a fixed prefix. A record whose signature is invalid is ignored (consumed, stake forfeited). There is no on-chain credential-prefix check on this path: the `0xB0` `BUILDER_WITHDRAWAL_PREFIX` is used only to mark deposits for builder onboarding *at the fork* (see [Changes to EIP-7732](#changes-to-eip-7732)) and is deprecated afterward. -- A `BuilderDepositRequest` (type `0x03`) for a `pubkey` **already** in the builder set is a top-up: it credits `amount` to the existing entry, and the record's `withdrawal_credentials` and `signature` are ignored — the registration is unchanged. This mirrors the validator deposit contract, where the proof-of-possession is checked only on a pubkey's first appearance and later deposits are stake additions. A builder index is reclaimed only once the builder has exited and its balance has swept to zero (`get_index_for_new_builder`); until the index is reclaimed, a deposit to that **exited** `pubkey` is still a top-up, not a fresh registration. Per `process_builder_deposit_request`, the top-up always credits `amount` to the exited entry; and *only* if that entry has already swept to zero (`withdrawable_epoch != FAR_FUTURE_EPOCH` and `balance == 0`) does it additionally *reset* `withdrawable_epoch` to `current_epoch + MIN_BUILDER_WITHDRAWABILITY_DELAY`, re-arming the withdrawal delay on the newly credited balance and deferring index reclamation. A top-up to an exited builder that has **not yet** swept simply adds to the balance, which still sweeps at the already-scheduled `withdrawable_epoch`. It does **not** reactivate the builder for bidding (`is_active_builder` requires `withdrawable_epoch == FAR_FUTURE_EPOCH`); the stake ultimately sweeps to the entry's `execution_address`. Re-registering the key as a fresh builder requires waiting for its index to be recycled. -- A `BuilderExitRequest` (type `0x04`) is handled by Gloas `process_builder_exit_request` and MUST be ignored unless its `pubkey` is a registered, active builder (`is_active_builder`: its deposit epoch is finalized and it is not already exiting), its `source_address` equals that builder's `execution_address`, and the builder has no pending balance to withdraw (`get_pending_balance_to_withdraw_for_builder == 0`). When all hold it runs `initiate_builder_exit` (`withdrawable_epoch = current_epoch + MIN_BUILDER_WITHDRAWABILITY_DELAY`). Like EIP-7002's `process_withdrawal_request`, it authorizes by `source_address` (no BLS signature) and silently returns on any failed check — the record is **consumed and discarded, not re-queued**, and the fee is spent. There is no builder-version check on exit; the `execution_address`, fixed at registration, is the sole authorizer. Because an active builder routinely has a non-zero pending balance from recent bid payments, a legitimate exit may be dropped until those settle, in which case the caller must resubmit once the pending balance has been swept. (The execution layer dequeues the record deterministically regardless, so a dropped request never affects `requests_hash` agreement.) +- A `BuilderDepositRequest` for a `pubkey` not in the builder registry registers a new builder if its `signature` is a valid proof-of-possession over `(pubkey, withdrawal_credentials, amount)` under `DOMAIN_BUILDER_DEPOSIT`, a builder-specific signing domain. A record with an invalid signature is ignored and its stake forfeited. Deposits are applied immediately rather than routed through the validator `pending_deposits` queue. +- A `BuilderDepositRequest` for an already-registered `pubkey` is a top-up. The `amount` is credited and the record's `withdrawal_credentials` and `signature` are ignored, as with validator deposits. +- A `BuilderExitRequest` initiates a full exit only if its `pubkey` is an active builder, its `source_address` equals that builder's `execution_address`, and the builder has no pending balance to withdraw. Otherwise the record is dropped rather than re-queued, and the request must be resubmitted. ### Changes to EIP-7732 -This EIP modifies EIP-7732's builder lifecycle on the consensus layer: +#### Deposit routing + +The builder branch of `process_deposit_request` is removed, so a deposit to the validator deposit contract is always an ordinary validator deposit. Builders are created and topped up only through `BUILDER_DEPOSIT_REQUEST_TYPE`. A post-fork deposit to the validator contract with a `0xB0` credential mints a validator that cannot withdraw its balance, so builder deposits MUST be sent to the builder deposit contract. + +#### Fork-transition onboarding -- **Deposit routing.** Builder onboarding and top-ups move off the validator deposit flow. Gloas no longer overrides `process_deposit_request` — the former builder branch (the `apply_deposit_for_builder` path) is removed, so the function reverts to its validator-only [EIP-6110](./eip-6110.md) behavior — and builders are created and topped up **only** through `BUILDER_DEPOSIT_REQUEST_TYPE`, handled by the new `process_builder_deposit_request`. A consequence operators must heed: a deposit to the **validator** deposit contract is now always an ordinary validator deposit, even if its `withdrawal_credentials` carries the `0xB0` prefix. Such a deposit is queued in `pending_deposits` and mints a validator that cannot withdraw its balance (a `0xB0` credential is neither a BLS nor an execution withdrawal credential). Builder deposits MUST therefore be sent to the builder deposit contract. -- **Fork-transition onboarding (at the Gloas fork).** `onboard_builders_from_pending_deposits`, run once by `upgrade_to_gloas`, is retained: builder-credentialed deposits already in `pending_deposits` at the upgrade are onboarded as builders, so builders exist from the first slot of the fork. This is the **only** path that onboards builders through the validator deposit contract. Operators seed the initial set by depositing to the existing deposit contract with a `BUILDER_WITHDRAWAL_PREFIX` (`0xB0`) credential before the fork — late enough that the deposit is still pending at the upgrade (a deposit applied earlier would create a stranded validator). These seed deposits are validated under `DOMAIN_DEPOSIT` (the only domain the validator deposit contract signs for) by `is_valid_deposit_signature`, and each onboarded builder is recorded with `version = PAYLOAD_BUILDER_VERSION`. After the fork, `BUILDER_WITHDRAWAL_PREFIX` is deprecated; a `0xB0`-credentialed deposit that misses the snapshot is processed as the stranded validator above, so the operator must onboard through `BUILDER_DEPOSIT_REQUEST_TYPE` instead. No `pubkey` is onboarded by more than one path. -- **Exit routing.** Gloas no longer overrides `process_voluntary_exit` — its former builder branch is removed, making the voluntary-exit operation validator-only again — and builders exit only via `BUILDER_EXIT_REQUEST_TYPE`, handled by the new `process_builder_exit_request`. +The one-time [EIP-7732](./eip-7732.md) onboarding of builder-credentialed pending deposits at the fork is retained, so builders exist from the first slot. This is the only path that onboards builders through the validator deposit contract. The `0xB0` `BUILDER_WITHDRAWAL_PREFIX` is deprecated afterward. + +#### Exit routing + +The builder branch of `process_voluntary_exit` is removed, making the voluntary-exit operation validator-only. Builders exit only through `BUILDER_EXIT_REQUEST_TYPE`. ## Rationale -- **Two predeploys, two request types.** Mirroring withdrawals (`0x01`) and consolidations (`0x02`) — each a single-type request predeploy — builder deposits (`0x03`) and exits (`0x04`) are separate predeploys sharing a common queue implementation. An empty-calldata `SYSTEM_ADDRESS` call returns a flat `request_data`, so the execution layer needs no new read semantics, and the consensus layer routes by request type rather than by inspecting credentials. +### Two predeploys, two request types -- **One request for deposits and top-ups.** A single deposit request serves both: a deposit to a new `pubkey` registers a builder (the consensus layer verifies the proof-of-possession), and a deposit to an existing builder tops up its stake — exactly as the validator deposit contract does. A top-up cannot redirect a builder's withdrawal target, because the consensus layer ignores the supplied `withdrawal_credentials` and `signature` for an existing builder; and a junk deposit to a new `pubkey` cannot register a builder without a valid proof-of-possession. +This mirrors withdrawals (`0x01`) and consolidations (`0x02`). The execution layer needs no new read semantics, and the consensus layer routes by request type rather than by inspecting credentials. -- **Exit by `execution_address`; voluntary exit becomes validator-only.** A builder's BLS key is hot — it signs bids continuously — so authorizing exit with that key is undesirable. Routing exit through the `execution_address` (the cold address that owns the builder's stake and receives its withdrawals) mirrors EIP-7002's rationale for letting `0x01` credentials trigger validator exits, and removing the builder branch from the voluntary-exit operation gives builders a single, well-defined exit authorizer. Losing the `execution_address` key strands no funds that were not already stranded: that address is where the builder's balance is swept regardless. +### One request for deposits and top-ups -- **EIP-1559-style request fee.** Each request carries the same demand-responsive fee as EIP-7002/EIP-7251: super-linear above `TARGET_REQUESTS_PER_BLOCK`, decaying back to `MIN_REQUEST_FEE` when demand subsides. Together with the per-block cap and the per-deposit stake, the fee meters submission to each predeploy. +This matches the validator deposit contract. The proof-of-possession is checked on a `pubkey`'s first appearance, and later deposits credit stake. A top-up cannot redirect a builder's withdrawals because its `withdrawal_credentials` and `signature` are ignored. -- **Onboarding via the fork transition.** Some applications depend on builders existing from the first slot of the fork. EIP-7732 already onboards builder-credentialed pending deposits during the fork upgrade; retaining that — rather than relying on post-fork deposits to the new contract, which cannot populate the first slot — keeps the initial builder set available immediately. This onboarding runs once, atomically, inside `upgrade_to_gloas`, so the per-block cap and request fee — which meter ongoing, adversarial submission to the steady-state contract — do not apply to it. Its cost is not constant-bounded: it processes the entire `pending_deposits` queue and verifies a proof-of-possession per new builder, which the consensus-layer spec notes may be slow and which clients SHOULD pre-verify and cache in the slots before the fork. +### Exit by `execution_address` -## Backwards Compatibility +A builder's BLS key is hot, since it signs bids continuously, so it should not also authorize exits. Routing exit through the cold `execution_address` mirrors the [EIP-7002](./eip-7002.md) rationale for validator withdrawal credentials and gives builders a single, well-defined exit authorizer. + +### Request fee -This EIP is additive at the execution layer: it introduces new contracts at previously empty addresses. It does not modify the validator deposit contract at `0x00000000219ab540356cbb839cbe05303d7705fa`, the validator withdrawal/consolidation predeploys, or any existing validator's lifecycle. +The same demand-responsive fee as [EIP-7002](./eip-7002.md) and [EIP-7251](./eip-7251.md) meters submission, together with the per-block caps and the per-deposit stake. -At the consensus layer it modifies EIP-7732 (see [Changes to EIP-7732](#changes-to-eip-7732)): post-fork builder onboarding moves from the validator deposit request to `BUILDER_DEPOSIT_REQUEST_TYPE`, and builder exits move from the voluntary-exit operation to `BUILDER_EXIT_REQUEST_TYPE`. The fork-transition onboarding of builder-credentialed pending deposits is unchanged, so builders present at the fork are unaffected. The new request types are additive — blocks that contain no builder requests produce empty `request_data` for these types, which [EIP-7685](./eip-7685.md) excludes from the `requests_hash`. +### Onboarding at the fork -## Reference Implementation +Some applications depend on builders existing from the first slot of the fork, which post-fork deposits to the new contract cannot provide. The existing [EIP-7732](./eip-7732.md) onboarding path is therefore retained for the initial builder set. +## Backwards Compatibility +This EIP is additive at the execution layer. It introduces new contracts at previously empty addresses and does not modify the validator deposit contract or the validator request predeploys. At the consensus layer it modifies the [EIP-7732](./eip-7732.md) builder lifecycle as described in [Changes to EIP-7732](#changes-to-eip-7732). Builders onboarded at the fork are unaffected. + +## Reference Implementation + +See [`src/builder_deposits`](https://github.com/ethereum/sys-asm/tree/3bba94c696bc46beeecef05db6c2df0f18b4b239/src/builder_deposits) and [`src/builder_deposits`](https://github.com/ethereum/sys-asm/tree/3bba94c696bc46beeecef05db6c2df0f18b4b239/src/builder_exits). ## Security Considerations -- **Deposit proof-of-possession at the consensus layer.** The consensus layer verifies the proof-of-possession over the `DepositMessage` `(pubkey, withdrawal_credentials, amount)` under `DOMAIN_BUILDER_DEPOSIT` on a builder's first registration, and ignores the signature for top-ups. The per-block cap bounds how many such verifications the consensus layer performs per block; see *Spam and state growth* below for the full anti-abuse picture. -- **Cross-class deposit signatures.** Builder deposits are signed under `DOMAIN_BUILDER_DEPOSIT`, a signing domain distinct from the validator deposit's `DOMAIN_DEPOSIT`. The separate domain prevents cross-contract replay between the two deposit classes: a *validator* deposit proof-of-possession cannot be resubmitted as a builder deposit, and a *builder* deposit proof-of-possession cannot be resubmitted to the validator deposit contract — each contract's consensus-layer handler verifies only its own domain, so the two classes cannot cross-register. The single exception is fork-transition onboarding: the initial builder set is seeded through the validator deposit contract *before* the fork, so those seed deposits are necessarily signed under `DOMAIN_DEPOSIT` and validated under it by `onboard_builders_from_pending_deposits`, with the `0xB0` `BUILDER_WITHDRAWAL_PREFIX` on the credential distinguishing them for builder onboarding; after the fork the prefix is deprecated and steady-state builder deposits use `DOMAIN_BUILDER_DEPOSIT`. Like `DOMAIN_DEPOSIT`, the builder domain is chain- and fork-agnostic, so a builder's *own* public proof-of-possession remains replayable as a top-up (see *Replayable deposit records* below) — but only within the builder class, funding stake the original signer already authorized, and it can redirect nothing. -- **Exit authorization.** The exit contract records `msg.sender` as `source_address` and performs no further check. Because the request carries no signature, this is the sole authorization: the consensus layer MUST initiate an exit only when `source_address` equals the target builder's `execution_address`, or an arbitrary caller could exit a builder it does not control. A builder's only exit authorizer is therefore its `execution_address`; the voluntary-exit (BLS-key) path is removed for builders. -- **Custodial-split exit standoff.** A builder's exit precondition requires its pending balance to be zero (`get_pending_balance_to_withdraw_for_builder == 0`), every winning bid adds a pending payment, and the `execution_address` is the builder's sole exit authorizer (the BLS voluntary-exit path is removed). When the `execution_address` (the capital owner) and the BLS key (the bidding operator) are held by different parties — a custodial or staking-pool arrangement this design explicitly enables — the operator can keep the pending balance non-zero by continuing to win bids, so the capital owner cannot satisfy the exit precondition and the stake stays locked (a builder that never exits is never swept). The standoff is self-limiting, since the operator's bids must keep being included on-chain, but the protocol gives the `execution_address` holder no on-chain lever to halt bidding. Parties delegating builder operation SHOULD retain off-chain (contractual or operational) control over the operator's bidding, so a delegated builder can always be brought to a state in which it can exit. -- **Same public key as validator and builder.** Because the registries are keyed by independent request types, one public key may exist as both a validator and a builder. The two are distinct entries with distinct indices and distinct lifecycles; neither request type can act on the other registry. There is no shared-slashing or cross-registry safety concern. The only implementation consideration is that builder indices are **reusable** — an exited builder's index may later be reassigned to a different key (`process_builder_deposit_request` notes this) — so clients that cache builder state by index MUST account for reuse. -- **Replayable deposit records.** A deposit's `(pubkey, withdrawal_credentials, amount, signature)` is public in calldata, so a third party can submit a further `0x03` record for an already-registered builder at an arbitrary amount (funding it themselves). The consensus layer treats any `0x03` record for an already-registered `pubkey` as a top-up — crediting stake but ignoring the credentials and signature — so the replay cannot redirect a builder's withdrawals or re-register it; it is a harmless funded stake addition. -- **Spam and state growth.** The per-block cap bounds only the drain rate — the consensus-layer verifications and the `request_data` size per block — not enqueue: within a block, appends are limited only by gas, and the in-state queue grows across blocks, reclaiming slots only when it fully drains. Queue growth is instead gated by the value locked per record: every deposit locks at least `BUILDER_MIN_DEPOSIT` (1 ETH) plus the fee, so growing the queue by N records costs at least N ETH locked. A griefer submitting **valid** proofs-of-possession forfeits nothing — the stake becomes a real, withdrawable builder balance (a capital-lock for `MIN_BUILDER_WITHDRAWABILITY_DELAY`, not a burn) — so post-fork onboarding can be throttled behind a FIFO wall of attacker deposits for the cost of locking capital; the cap plus FIFO ordering, not the fee, is the binding throttle. This is tolerable because the time-critical initial builder set is seeded before the fork through the uncapped onboarding path, not through the steady-state contract. -- **Locked funds.** The request fee, any overpayment or sub-gwei remainder, and the principal of a first deposit the consensus layer rejects for an invalid proof-of-possession are permanently locked in the predeploy (which has no withdrawal path) and irrecoverable by anyone, including an honest depositor who submits a bad signature, since the execution layer does not verify BLS and the consensus-layer rejection is silent. This mirrors EIP-7002/EIP-7251; submitters SHOULD verify the proof-of-possession off-chain before broadcasting. (As in those contracts, the fee getter reverts when value is attached, so a mistaken value-bearing fee query cannot lose funds.) `BUILDER_MIN_DEPOSIT` is enforced only at the execution layer (as the validator deposit contract enforces its own minimum), with no consensus-layer re-assertion. -- **System-read access control and per-block cap.** Only `SYSTEM_ADDRESS` may invoke the end-of-block dequeue; any other empty-calldata call is the fee getter and does not modify state, so a non-system caller cannot drain or replay the queue. Each contract returns at most `MAX_REQUESTS_PER_BLOCK` records per block, bounding both the size each predeploy contributes to the block requests and the consensus-layer work to process them; excess records remain queued for later blocks. -- **Validator-contract co-existence.** The validator deposit contract and the validator request predeploys are unmodified; this EIP changes only EIP-7732's builder onboarding and exit routing (see [Changes to EIP-7732](#changes-to-eip-7732)). +### Exit authorization + +The exit contract records `msg.sender` as `source_address` and performs no further check. The request carries no signature, so the `source_address` check during [consensus layer processing](#consensus-layer-processing) is the only exit authorization; without it an arbitrary caller could exit any builder. + +### Signing-domain separation + +Builder deposits are signed under `DOMAIN_BUILDER_DEPOSIT`, distinct from the validator `DOMAIN_DEPOSIT`, so deposit proofs-of-possession cannot be replayed across the two classes. Fork-transition seed deposits are made through the validator deposit contract and are necessarily signed under `DOMAIN_DEPOSIT`. + +### Replayable deposit records + +A deposit's fields are public in calldata, so a third party can resubmit them for an already-registered builder at an amount it funds itself. Such a replay is a top-up whose credentials and signature are ignored. It credits stake and redirects nothing. + +### Custodial-split exit standoff + +Exit requires a zero pending balance, every winning bid adds pending balance, and only the `execution_address` can authorize exit. Where the `execution_address` (capital owner) and the BLS key (bidding operator) are held by different parties, an operator that keeps winning bids can indefinitely block the owner's exit. Delegating parties should retain off-chain control over the operator's bidding. + +### Spam and state growth + +The per-block caps bound the drain rate, not enqueue, so the in-state queues can grow across blocks. Growth is gated by value, since each deposit locks at least `BUILDER_MIN_DEPOSIT` plus the fee. An attacker submitting valid proofs-of-possession forfeits nothing, because the stake remains a withdrawable builder balance, so post-fork onboarding can be delayed behind a backlog of attacker deposits at the cost of locked capital. This is tolerable because the time-critical initial builder set is seeded through the fork transition rather than the steady-state contract. + +### Locked funds + +The request fee, any overpayment, and the principal of a first deposit that the consensus layer rejects for an invalid proof-of-possession are permanently locked in the predeploy. The execution layer does not verify BLS signatures, so the off-chain proof-of-possession check advised in [Deposit requests](#deposit-requests) is a submitter's only protection against losing a first deposit's principal. ## Copyright From f9b2533b136c75134545e13a0e82a6181129226b Mon Sep 17 00:00:00 2001 From: Fredrik Date: Mon, 10 Aug 2026 21:20:13 +0200 Subject: [PATCH 19/53] Update EIP-7906: Fix author handle in eip-7906.md Merged by EIP-Bot. --- EIPS/eip-7906.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7906.md b/EIPS/eip-7906.md index 2c1079acfe2af4..690fc1d2f7a765 100644 --- a/EIPS/eip-7906.md +++ b/EIPS/eip-7906.md @@ -2,7 +2,7 @@ eip: 7906 title: Transaction Assertions via State Diff Opcode description: An opcode that provides a mechanism to restrict the outcomes of transaction execution -author: Alex Forshtat (@forshtat), Shahaf Nacson (@shahafn), Dror Tirosh (@drortirosh), Yoav Weiss (@yoavw), Fredrik Svantes (@fredrik0x) +author: Alex Forshtat (@forshtat), Shahaf Nacson (@shahafn), Dror Tirosh (@drortirosh), Yoav Weiss (@yoavw), Fredrik Svantes (@0xfredrik) discussions-to: https://ethereum-magicians.org/t/eip-restricted-behavior-transaction-type/23130 status: Draft type: Standards Track From bd90171e51aabafad9043b8b47acdb6e6eb724f6 Mon Sep 17 00:00:00 2001 From: kevaundray Date: Tue, 11 Aug 2026 00:15:37 +0100 Subject: [PATCH 20/53] Add EIP: Hash-Chain RANDAO Merged by EIP-Bot. --- EIPS/eip-8321.md | 419 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 EIPS/eip-8321.md diff --git a/EIPS/eip-8321.md b/EIPS/eip-8321.md new file mode 100644 index 00000000000000..5f7c43156745a3 --- /dev/null +++ b/EIPS/eip-8321.md @@ -0,0 +1,419 @@ +--- +eip: 8321 +title: Hash-Chain RANDAO +description: Replace the BLS-signature RANDAO reveal with a post-quantum hash-chain commit-reveal scheme +author: Kevaundray Wedderburn (@kevaundray), Benedikt Wagner (@benedikt-wagner), Tom Wambsgans (@TomWambsgans), Justin Drake (@JustinDrake), Thomas Coratger (@tcoratger) +discussions-to: https://ethereum-magicians.org/t/eip-8321-hash-chain-randao/28942 +status: Draft +type: Standards Track +category: Core +created: 2026-07-05 +requires: 7916 +--- + +## Abstract + +Replace the BLS-signature-based Random Decentralized Autonomous Organization (RANDAO) reveal with a hash-chain commit-reveal scheme. RANDAO's resistance to grinding currently relies on BLS signatures being *unique*, so that a proposer cannot bias its contribution. Since BLS relies on pre-quantum hardness assumptions, a quantum computer can recover a validator's key and predict its future reveals. + +A hash chain relies only on standard hash-function security: collision resistance to prevent grinding (the property that replaces BLS's uniqueness) and preimage resistance for unpredictability. Both are believed to hold against quantum attack, and this removes the dependency on the signature scheme entirely. Each validator commits to the tip of a generated hash chain. When proposing a block, the validator reveals the preimage of its currently stored commitment; the protocol verifies that the revealed value is indeed the preimage to the current stored commitment for that validator, folds the preimage into the RANDAO accumulator, and stores the preimage as the validator's new commitment. + +A commitment is registered once, via a new per-block-capped beacon operation (similar to `BLSToExecutionChange`); it cannot be updated in place, so a validator that ever needs a new chain exits and re-enters. Validators that have not yet registered a commitment continue to use the legacy BLS reveal; this is a transitional path intended for removal in a later fork. + +We note the simplicity: the protocol holds only the current commitment (32 bytes) and walks one link back per proposal for that validator. + +## Motivation + +The primary driver is post-quantum readiness. + +Today's RANDAO contribution is a BLS signature over the epoch number. Its security rests on the *uniqueness* of BLS signatures: given the message and public key, exactly one valid signature exists, so a proposer cannot grind their own contribution to bias the randomness. + +BLS is not post-quantum safe, so a cryptographically relevant quantum computer (CRQC) can recover a validator's secret key from its public key. Uniqueness still holds, but the attacker can compute the validator's reveals itself, predicting the chain's future randomness, and thus the proposer schedule, far in advance. + +Prediction also amplifies bias, beyond merely leaking the schedule. The standard reveal-or-withhold attack requires the attacker to control `k` *consecutive* proposer slots at the tail of an epoch to choose among `2**k` candidate mixes, because it cannot evaluate a candidate without knowing the contributions that land after its own. An attacker that can predict every honest contribution evaluates each candidate outright, so (assuming honest proposers always reveal) any `k` of its slots in the mixing period (the span of slots whose reveals feed the target seed) work; they need not be consecutive or at the end of the epoch. + +Most uses of signatures, such as block proposals and attestations, can move to any secure post-quantum scheme. RANDAO, however, additionally depends on signature *uniqueness*, and most post-quantum schemes do not provide it, allowing one to grind for a favorable RANDAO contribution. The hash-based signature scheme currently planned for the consensus layer (a generalized eXtended Merkle Signature Scheme (XMSS) ([RFC 8391](https://www.rfc-editor.org/rfc/rfc8391)), commonly referred to as the lean signature scheme) is grindable in exactly this way, since it includes a *salt* component. + +A hash chain sidesteps both problems in a simple way. There is no signature, it is just chaining hashes together. Grinding would require building a chain around a hash collision: if a proposer could find two values that hash to the same word, it could place that word in its chain and later choose which of the two preimages to reveal, biasing its contribution. This is exactly the freedom BLS's uniqueness denies, and collision resistance denies it here. Preimage resistance separately keeps each reveal unpredictable to others until it is published. Both properties are believed to hold even against a quantum attacker, with reduced but adequate security. + +The commit-reveal structure also preserves RANDAO's existing security model, since the whole chain is fixed at commitment time, long before the validator knows its proposal slots or the mixes it might want to bias, so the proposer's only remaining lever is the same as the one it has today: reveal, or withhold and forfeit the block. + +Note: This EIP does not make beacon chain randomness post-quantum secure end to end; block signatures and the registration operation's signature still use BLS. It incrementally introduces a post-quantum version of RANDAO, so that a later post-quantum fork which changes the signature-scheme and sets the initial hash-chain commitment at deposit time can complete the transition. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). + +These changes are applied to the consensus specifications (`ethereum/consensus-specs`) at a fork to be scheduled; functions and constants not defined here retain their meaning from those specifications. + +### Cryptographic Functions + +`blake3(data: bytes) -> Bytes32` is the BLAKE3 hash function (version 1) in its default unkeyed hash mode, with no derive-key context, restricted to its default 32-byte output. All hashing introduced by this EIP uses `blake3` (see Rationale); the consensus specifications' `hash` helper continues to serve the legacy reveal path. + +### Constants + +| Name | Value | Description | +| - | - | - | +| `DOMAIN_RANDAO_COMMITMENT_REGISTRATION` | `DomainType('0x0F000000')` | Domain for signed commitment registrations | +| `HASH_CHAIN_RANDAO_DST` | `b'HASH_CHAIN_RANDAO'` | Domain-separation tag prefixed to each hash-chain link | + +### Preset + +| Name | Value | Description | +| - | - | - | +| `COMMITMENT_REGISTRATION_DELAY` | `Epoch(3)` | Epochs before a new commitment becomes active; MUST be at least `MIN_SEED_LOOKAHEAD + 2` (see Rationale) | +| `MAX_RANDAO_COMMITMENT_REGISTRATIONS` | `uint64(128)` | Maximum commitment registration operations per block | + +### Hash Chain Construction (Off-Chain) + +A validator generates a uniformly random 32-byte chain secret `c_0` and computes a chain of length `n`; every chain value `c_i` is a `Bytes32`, matching the BLAKE3 output width: + +```text +c_i = blake3(HASH_CHAIN_RANDAO_DST + c_{i-1}) for i in 1..n +``` + +where `blake3` is defined in the Cryptographic Functions section above. `HASH_CHAIN_RANDAO_DST` is the fixed byte-string domain-separation prefix defined in the Constants section above, so hash-chain links cannot collide with hashes used elsewhere in the protocol. It carries no per-link index, so a validator still needs to store only chain values, not their positions. + +Nothing in the construction is specific to BLAKE3; any collision- and preimage-resistant hash with a 32-byte output serves (see Rationale for why BLAKE3 over the consensus specifications' `hash` helper). Note that a commitment binds the hash function it was generated with, so a later fork that migrates to a different hash either keeps verifying previously registered chains under BLAKE3 or has validators re-register under the new hash. + +Chain values MUST NOT be the zero word: `process_randao` rejects a zero reveal (the zero word marks an unregistered validator), and a zero commitment cannot be registered. The seed `c_0` is chosen non-zero, and every other `c_i` is a BLAKE3 output, so a zero link occurs only with negligible probability (about `n / 2**256`). Even so, a validator MUST check that no `c_i` is the zero word and regenerate the chain if any link is zero. + +The validator publishes `c_n` as their commitment and stores the chain (or the chain secret plus periodic checkpoints if the chain is large). Reveals are consumed in reverse order: the first reveal is `c_{n-1}`, the next is `c_{n-2}`, and so on. Each revealed value becomes the new on-chain commitment, so the protocol requires no knowledge of `n` or of the validator's position in the chain. + +Validators SHOULD choose `n` large enough that the chain outlasts the validator, since it cannot be extended in place. `n >= 2**16` (~65,000 links) is RECOMMENDED. The whole chain can be generated in milliseconds, and storing every link takes ~2 MB. This exact value is of course arbitrary: the protocol never learns or enforces `n`, and since generation and storage stay cheap, most operators lose nothing by choosing a larger `n`. + +This bounded lifetime is the one structural difference from BLS, where a public key is a commitment that never expires, a hash chain instead lasts for its length. It is not a practical constraint though since we can generate a large enough chain that will last for centuries. + +#### Chain Exhaustion + +A commitment cannot be updated in place, so a chain cannot be extended once registered. The chain is exhausted only when its stored commitment reaches the secret seed `c_0`, whose preimage the validator does not hold. A validator whose chain runs out can no longer propose on the hash-chain path and must exit and re-enter as a new validator to obtain a fresh chain. + +With the recommended `n` this never happens in practice. A validator proposes on the order of 100 times per year even in aggressive futures, so a chain of `2**16` links lasts for centuries; sizing `n` generously (it is cheap) makes exhaustion a non-issue. The same applies to a lost or mis-generated chain secret: there is no in-place recovery, so the remedy is exit and re-entry, and the chain secret SHOULD be guarded like the signing key (see Security Considerations). + +### Containers + +#### New Containers + +```python +class RandaoCommitmentRegistration(Container): + validator_index: ValidatorIndex + commitment: Bytes32 # the hash-chain commitment to register +``` + +```python +class SignedRandaoCommitmentRegistration(Container): + message: RandaoCommitmentRegistration + signature: BLSSignature +``` + +```python +class PendingRandaoCommitment(Container): + validator_index: ValidatorIndex + commitment: Bytes32 + activation_epoch: Epoch +``` + +#### Modified Containers + +`BeaconBlockBody` gains two fields and retains `randao_reveal` transitionally: + +```python +class BeaconBlockBody(Container): + randao_reveal: BLSSignature # transitional; MUST be the G2 point at infinity once the proposer has an active commitment + # ... existing fields ... + hash_chain_reveal: Bytes32 # [New in this EIP] zero unless the proposer has an active commitment + randao_commitment_registrations: List[SignedRandaoCommitmentRegistration, MAX_RANDAO_COMMITMENT_REGISTRATIONS] # [New in this EIP] +``` + +The new fields are appended after all existing fields, following the convention since Capella of adding fields at the end. + +`BeaconState` gains a commitment registry and a pending queue. `randao_commitments` is indexed by validator index, holding one entry per registry member; a zero entry means no commitment is registered and the legacy BLS reveal path applies. The `Validator` container is unchanged. + +```python +class BeaconState(Container): + # ... existing fields ... + randao_commitments: List[Bytes32, VALIDATOR_REGISTRY_LIMIT] # [New in this EIP] + pending_randao_commitments: ProgressiveList[PendingRandaoCommitment] # [New in this EIP] +``` + +The pending queue is a `ProgressiveList` ([EIP-7916](./eip-7916.md)): it is almost always near-empty (worst-case steady state is ~12,300 entries, see Security Considerations), so a progressive shape avoids both an arbitrary capacity constant and the hashing overhead of a large fixed-limit list. `randao_commitments` stays a fixed-limit `List` because it holds one entry per registry member and must track the length of the other per-validator lists, which share the `VALIDATOR_REGISTRY_LIMIT` bound. + +### Block Processing + +#### Modified `process_randao` + +```python +def process_randao(state: BeaconState, body: BeaconBlockBody) -> None: + epoch = get_current_epoch(state) + proposer_index = get_beacon_proposer_index(state) + proposer = state.validators[proposer_index] + if state.randao_commitments[proposer_index] != Bytes32(): + # Hash chain reveal [New in this EIP] + assert body.hash_chain_reveal != Bytes32() + assert blake3(HASH_CHAIN_RANDAO_DST + body.hash_chain_reveal) == state.randao_commitments[proposer_index] # check proposer knows preimage + assert body.randao_reveal == G2_POINT_AT_INFINITY # bls randao reveal should be empty + mix = blake3(get_randao_mix(state, epoch) + body.hash_chain_reveal) + state.randao_commitments[proposer_index] = body.hash_chain_reveal + else: + # Legacy BLS reveal + assert body.hash_chain_reveal == Bytes32() # hash-chain reveal should be empty + signing_root = compute_signing_root(epoch, get_domain(state, DOMAIN_RANDAO)) + assert bls.Verify(proposer.pubkey, signing_root, body.randao_reveal) + mix = xor(get_randao_mix(state, epoch), hash(body.randao_reveal)) + state.randao_mixes[epoch % EPOCHS_PER_HISTORICAL_VECTOR] = mix +``` + +Note the structure of the hash-chain path: + +- Verification checks the proposer's chain step (`blake3(HASH_CHAIN_RANDAO_DST + reveal) == commitment`). +- The accumulator folds in the raw reveal with `mix = blake3(mix + reveal)`. +- `G2_POINT_AT_INFINITY` is the existing BLS point-at-infinity signature constant already defined in the consensus specs. + +The hash accumulator has no efficiently computable inverse, so a validator that copies another's commitment cannot cancel the victim's contribution: re-injecting the same revealed value produces a fresh, unrelated mix rather than undoing it. This is why the hash-chain path can fold in the raw reveal directly, with no assumption on the mixed-in value being unique per validator. The legacy BLS path keeps its existing `xor` accumulator; the two coexist only until the BLS path is sunset. + +The non-zero assert protects the sentinel: a zero entry in `randao_commitments` means "unregistered", and the reveal is stored as the next commitment. Without the guard, a validator that committed to the zero word as a chain value would, upon revealing it, silently store the sentinel and flip onto the legacy branch, while its client, still believing itself registered, produced invalid blocks indefinitely. With the guard, the zero-revealing block is itself invalid, so a validator that committed the zero word simply cannot propose (hence the rule above that no chain value may be the zero word). So "zero means unregistered" is an enforced invariant. + +#### Modified `process_operations` + +`process_operations` gains a loop over the new operation, appended after the existing operations so that existing processing is unchanged: + +```python +def process_operations(state: BeaconState, body: BeaconBlockBody) -> None: + # ... existing operation processing (proposer slashings, attester slashings, + # attestations, deposits, voluntary exits, bls_to_execution_changes) ... + for_ops(body.randao_commitment_registrations, process_randao_commitment_registration) # [New in this EIP] +``` + +#### New `process_randao_commitment_registration` + +```python +def process_randao_commitment_registration(state: BeaconState, signed_registration: SignedRandaoCommitmentRegistration) -> None: + registration = signed_registration.message + assert registration.validator_index < len(state.validators) + assert registration.commitment != Bytes32() + # Register-only: valid only while the validator is unregistered (stored commitment is zero) + assert state.randao_commitments[registration.validator_index] == Bytes32() + validator = state.validators[registration.validator_index] + domain = compute_domain( + DOMAIN_RANDAO_COMMITMENT_REGISTRATION, + genesis_validators_root=state.genesis_validators_root, + ) + signing_root = compute_signing_root(registration, domain) + assert bls.Verify(validator.pubkey, signing_root, signed_registration.signature) + queue_randao_commitment(state, registration.validator_index, registration.commitment) +``` + +Called from `process_operations` for each element of `body.randao_commitment_registrations`. This is the one-time registration path: it moves a validator from the legacy BLS reveal onto its hash chain, and works regardless of proposal schedule. It is valid only while the validator is unregistered (its stored commitment is zero). The signing domain is computed against the genesis fork version (similar to `BLSToExecutionChange`) so that messages remain valid across forks. + +Registration is single-use by construction, covering two windows with two mechanisms. Once a registration has **activated**, `randao_commitments[validator_index]` is non-zero, so any replay fails the unregistered check in this handler. While it is still **pending** (queued but not yet activated), the stored entry is still zero, but the one-pending rule in `queue_randao_commitment` rejects a second submission. Together these leave no gap from inclusion onward. This mirrors the replay-safety of `BLSToExecutionChange`, whose handler likewise asserts the credential has not already been changed. + +#### New `queue_randao_commitment` + +At most one registration per validator may be pending at any time; a block containing a registration for a validator with an in-flight one is invalid. + +```python +def queue_randao_commitment(state: BeaconState, index: ValidatorIndex, commitment: Bytes32) -> None: + # Rejects a second registration for the same validator, both across blocks and + # within a single block: the first op appends this entry, so a later op for the + # same index fails this assert (mirrors how voluntary exits self-reject in-block). + assert all(pending.validator_index != index for pending in state.pending_randao_commitments) + state.pending_randao_commitments.append(PendingRandaoCommitment( + validator_index=index, + commitment=commitment, + activation_epoch=get_current_epoch(state) + COMMITMENT_REGISTRATION_DELAY, + )) +``` + +The resulting lifecycle, worked through to be more explicit: + +- A registration included in epoch `N` is queued with activation epoch `N + COMMITMENT_REGISTRATION_DELAY` (`N + 3` with the preset value). +- The validator stays on the legacy BLS path throughout epochs `N` to `N + 2`; its proposals in that window are BLS reveals as before. +- At the epoch transition into `N + 3`, the pending entry is consumed and the hash chain becomes active; from then on the validator reveals from its chain. + +Activation is a property of the canonical state, not of the validator's broadcast history. A validator MUST continue producing legacy BLS reveals until `randao_commitments[validator_index]` is non-zero in the state it proposes against, even if it has observed its registration included in some block: if that block is orphaned, the pending entry never enters the canonical queue. The message stays valid in that case (the stored commitment is still zero) and remains includable: it persists in operation pools, as with `bls_to_execution_change`. + +### Epoch Processing + +#### New `process_pending_randao_commitments` + +Called from `process_epoch`, immediately after `process_registry_updates`. Pending commitments are applied in queue order once their activation epoch is reached. The one-pending-registration-per-validator rule enforced in `queue_randao_commitment` guarantees entries never conflict. + +```python +def process_pending_randao_commitments(state: BeaconState) -> None: + next_epoch = Epoch(get_current_epoch(state) + 1) + remaining = [] + for pending in state.pending_randao_commitments: + if pending.activation_epoch <= next_epoch: + state.randao_commitments[pending.validator_index] = pending.commitment + else: + remaining.append(pending) + state.pending_randao_commitments = ProgressiveList[PendingRandaoCommitment](remaining) +``` + +### Gossip + +A new global gossip topic `randao_commitment_registration` carries `SignedRandaoCommitmentRegistration` messages. Because a validator registers at most once, first-seen-per-validator deduplication suffices, exactly as for `bls_to_execution_change`. The rules are evaluated in order, so the cheap checks and the seen check precede signature verification. + +- **[REJECT]** `commitment` is zero, or `validator_index` is unknown. +- **[IGNORE]** a `SignedRandaoCommitmentRegistration` for `validator_index` has already been seen, or a pending registration for it already exists in the node's view of the state. +- **[REJECT]** the validator is already registered (a non-zero `randao_commitments` entry in the node's view of the head state). +- **[REJECT]** the signature is invalid. + +### Fork Transition + +At the fork epoch, the `upgrade_to_*` function initializes `randao_commitments` with one zero entry per registry member and `pending_randao_commitments` as empty: + +```python +def upgrade_to_(pre: ) -> BeaconState: + post = BeaconState( + # ... existing fields carried over from `pre` ... + randao_commitments=[Bytes32() for _ in range(len(pre.validators))], # [New in this EIP] + pending_randao_commitments=[], # [New in this EIP] + ) + return post +``` + +This establishes the invariant that `len(state.randao_commitments) == len(state.validators)`, which `process_randao` and `process_randao_commitment_registration` rely on when indexing by validator index. To preserve the invariant for validators onboarded after the fork, `add_validator_to_registry` is modified to append a zero entry alongside the other per-validator lists: + +```python +def add_validator_to_registry(state: BeaconState, + pubkey: BLSPubkey, + withdrawal_credentials: Bytes32, + amount: uint64) -> None: + index = get_index_for_new_validator(state) + validator = get_validator_from_deposit(pubkey, withdrawal_credentials, amount) + set_or_append_list(state.validators, index, validator) + set_or_append_list(state.balances, index, amount) + set_or_append_list(state.previous_epoch_participation, index, ParticipationFlags(0b0000_0000)) + set_or_append_list(state.current_epoch_participation, index, ParticipationFlags(0b0000_0000)) + set_or_append_list(state.inactivity_scores, index, uint64(0)) + set_or_append_list(state.randao_commitments, index, Bytes32()) # [New in this EIP] +``` + +A validator added this way starts unregistered and uses the legacy path until it registers. All validators start on the legacy BLS reveal path and migrate by broadcasting a `SignedRandaoCommitmentRegistration`. At `MAX_RANDAO_COMMITMENT_REGISTRATIONS = 128` per block, the full current validator set (~1M) can register in under two days of full blocks; there is no deadline, and unregistered validators simply continue on the legacy path. + +### Sunset of the Legacy Path + +The BLS reveal branch in `process_randao`, and the `randao_reveal` field itself, are transitional and SHOULD be removed in a later fork after registration has saturated, naturally the fork that reworks deposits for post-quantum signatures, at which point initial hash chain commitments move into the validator onboarding flow and the `RandaoCommitmentRegistration` signature migrates to the post-quantum scheme. + +Note: the `RandaoCommitmentRegistration` operation registers a validator's initial hash chain only. A validator that loses its chain secret must exit and re-enter. Once the post-quantum fork sets initial commitments at deposit time, the operation is no longer needed and can be deprecated alongside the BLS reveal path. + +## Rationale + +### Why a Hash Accumulator on the Hash-Chain Path + +The mixed-in contribution must be unpredictable before the reveal: the mix must never absorb a value derivable from pre-reveal public state. This rules out folding in `blake3(HASH_CHAIN_RANDAO_DST + reveal)`, which for a hash chain is by definition the validator's stored commitment, already public on-chain. The raw reveal is the opposite: it is the secret preimage, unknown to everyone until the proposer publishes it, so folding it in is safe. + +The complication is that hash-chain commitments carry no identity and are trivially copyable. A validator can register a value it did not generate by including a copy of another validator's current commitment, via a perfectly valid, freshly signed registration. Under a linear XOR accumulator this enables a cancellation attack. +A hash accumulator, `mix = blake3(mix + reveal)`, closes this at the root: the hash has no efficiently computable inverse, so re-injecting a copied reveal produces a fresh, unrelated mix rather than undoing anything. + +Because the accumulator itself neutralizes copyability, the hash-chain path folds in the raw reveal with no per-validator personalization. + +### Why BLAKE3 Instead of the Consensus `hash` + +The scheme needs nothing beyond standard collision and preimage resistance; the choice of BLAKE3 is forward-looking rather than security-driven. BLAKE3 is fast in software, and recent results on proving it efficiently in binary-field proof systems make it the leading candidate hash for the post-quantum consensus layer. + +### Why One Link per Block Proposed + +The legacy reveal is a signature over the epoch, so two proposals by the same validator in one epoch reveal the same value. Consuming one link per block is simpler (no per-epoch bookkeeping), makes every block contribute fresh entropy, and costs nothing, since chains are cheap to generate at any reasonable length. + +We also note that with consolidations, the probability of a validator proposing multiple times in the same epoch increases, effectively cancelling out their RANDAO contribution. + +### Why the Protocol Does Not Track Chain Length + +Storing only the current commitment and requiring a preimage per proposal makes the chain length a purely private, off-chain parameter. The protocol state cost is one 32-byte entry per validator regardless of chain length, and validators can size chains so that the chain outlasts the validator. The only reason to store the chain length would be to mandate a specific length for every validator, which seems unnecessarily restrictive. + +### Why an Activation Delay on Registration, and Why `MIN_SEED_LOOKAHEAD + 2` + +The scheme's grinding resistance comes entirely from the commitment predating the validator's knowledge of what it would want to bias. If a validator could register a chain just before proposing and it became active instantly, it could grind: generate many candidate chains, compute the mix each would produce at the upcoming slot, and register the most favourable one. We add a delay, sized so that the registrant cannot even know *whether* it will propose in the activation epoch at the time the registration is included. + +Proposer duties for epoch `E` are drawn from the RANDAO mix as of the end of epoch `E - MIN_SEED_LOOKAHEAD - 1`, i.e. `E - 2` with the current consensus-specs preset `MIN_SEED_LOOKAHEAD = 1`. For a registration included in epoch `N`: + +- Duties through epoch `N + 1` fixed at the end of `N - 1` or earlier: already known at inclusion. +- Duties for `N + 2` fix at the end of `N`, which is nearly over at inclusion: still grindable. +- Duties for `N + 3` fix at the end of `N + 1`: entirely after inclusion. + +The earliest safe activation epoch is therefore `N + MIN_SEED_LOOKAHEAD + 2 = N + 3`, met exactly by `COMMITMENT_REGISTRATION_DELAY = 3`; the new commitment is first usable from the validator's first proposal in that epoch. The constants table states the bound symbolically so it survives a future change to the preset. + +### Why at Most One Pending Registration per Validator + +Without the one-pending rule, a validator's stored entry stays zero until activation, so multiple registrations for it would all pass the unregistered check and could be queued at once. That enables queue stuffing: the entire `MAX_RANDAO_COMMITMENT_REGISTRATIONS` budget could be filled with registrations for a single validator, costing the network 128 signature verifications and 128 queue entries for a single state effect, and crowding legitimate registrations out of the shared per-block budget. + +The one-pending rule also keeps gossip sound: the "IGNORE if a pending registration exists" rule is only meaningful if a further registration for that validator is guaranteed redundant. With the rule, every included registration corresponds to a distinct validator making its one-time transition, and duplicates are invalid rather than merely wasteful. + +### Why Registration Is One-Time, and Replay-Safe + +A commitment can be registered but never updated in place. This is a deliberate simplification: because a chain can be sized to outlast the validator (see Chain Exhaustion), in-place rotation is never needed for exhaustion, and a lost chain secret is treated like a lost signing key, recovered by exiting and re-entering rather than by a protocol operation. + +Replay-safety falls out of the unregistered check. A registration is valid only while `randao_commitments[validator_index]` is zero. Once it activates, the entry is non-zero, so any later replay of the message is invalid; and while the registration is merely pending, the one-pending rule blocks a second submission. This is the analogue of the idempotence predicate that makes `BLSToExecutionChange` replay-safe, whose handler asserts the credentials are still BLS-prefixed, which the first application falsifies. + +### Why Keep a Legacy Fallback Instead of a Registration Deadline + +There is no urgent need for validators to be fully post-quantum yet, so a hard deadline buys little; unregistered validators keep functioning on the BLS path in the meantime. There will also likely be a long tail of validators who never submit the message because they run custom software. We therefore defer the forced cutover to a fork that must touch these code paths anyway, the post-quantum switchover, which also lets us exercise the new code paths first. + +## Backwards Compatibility + +This EIP requires a scheduled consensus-layer hard fork. Within the fork, the change is backwards compatible from the validator's perspective: unregistered validators continue proposing exactly as today. Downstream consumers of `randao_mixes` (including the execution layer's [EIP-4399's](./eip-4399.md) `PREVRANDAO`) are unaffected; the mix remains a 32-byte accumulator updated once per block, only the provenance of contributions changes. + +## Test Cases + +State-transition test vectors to be provided in the consensus-specs test suite. + +## Security Considerations + +### Biasability Is Unchanged + +The proposer's only degree of freedom is still withholding: reveal and propose, or withhold and forfeit the block plus its rewards. This is the same one-bit-per-proposer bias RANDAO has today, with the same economic cost. The validator freely choosing its own chain values (whereas a BLS reveal is uniquely determined by the key and epoch, leaving no freedom) does not add grinding power, because the entire chain is fixed before the validator knows its proposal slots or the co-contributions to any future mix. + +### Registration Cannot Be Used Reactively + +A validator that sees a proposal duty approaching cannot register a favourable chain to influence the outcome. Activation is derived from the inclusion epoch, the only event the protocol observes: registration activates `COMMITMENT_REGISTRATION_DELAY` epochs after inclusion, strictly after every epoch whose proposer-duty seed was fixed (or partially accumulated) at inclusion, so the chain is always fixed before the seed that draws any duty it could serve. Signing earlier than inclusion only means committing with less information. + +Note: This argument assumes the registrant cannot predict the contributions that land between inclusion and the fixing of the target seed. That holds today (a BLS reveal is computable only by its key holder) and after migration (a hash-chain reveal is protected by preimage resistance), but an attacker that already holds a CRQC during the transition could predict every remaining legacy contribution and grind its one-time registration against them. + +Timing games around inclusion add nothing: an unregistered validator stays on the BLS path until activation, and once registered it cannot re-register, so there is no second chain to time. + +Nor can registrations be replayed by third parties: once a validator is registered its stored entry is non-zero, so any replay fails the unregistered check. + +### Degenerate Chains + +A validator may choose pathological values for its *own* chain, for example deriving the chain secret from a publicly known constant like the genesis hash, so that all its reveals are predictable in advance and contribute no effective entropy. + +This cannot be exhaustively restricted, and we do not try to, because RANDAO's security does not assume that *every* contribution is honest. If this were the case, then a validator choosing to add nothing by withholding would also break the security; one honest contributor per mixing period suffices. + +We do forbid the pathological case of using the zero word, since this would collide with the unregistered sentinel when revealed, so `process_randao` rejects zero reveals. + +### Chain Loss and Theft + +Losing the chain secret makes a validator unable to produce valid blocks on the hash-chain path, and there is no in-place recovery: a commitment cannot be re-registered. The remedy is to exit and re-enter as a new validator. Funds are unaffected (withdrawal does not depend on the chain), and the failure mode is missed proposals, not slashing risk. + +Theft of the chain secret alone lets an attacker predict (not choose) the validator's future contributions. In effect this is equivalent to leaking the validator's entire list of future BLS-RANDAO reveals: the attacker learns every future contribution in advance, but can neither choose them nor sign anything else on the validator's behalf. It is therefore strictly less power than theft of the signing key today, which gives the attacker that same prediction plus the ability to sign the validator's blocks and attestations. Validator clients should treat the chain secret with the same custody standards as signing keys. As a safety measure, it should not be derived in a way that links it to the signing key: a hash chain, taken to its limit, eventually reveals its seed, whereas a secret key must never be revealed. + +### Reveal Exposure in Orphaned Blocks + +The legacy BLS reveal signs the epoch number, so a reveal exposed in a block that never makes the canonical chain is worthless outside that epoch. A hash-chain reveal has no such time binding: a reveal published in an *orphaned* block remains the validator's mandatory next contribution at whatever future slot it next proposes. An observer who collects reveals from orphaned blocks (or losing forks) accumulates known future co-contributions. + +Because a chain cannot be retired in place, there is no cheap remediation, but none is needed: the exposure is harmless. A published-but-not-yet-consumed reveal only makes that one future contribution predictable rather than secret, which is no worse than the validator withholding it, and RANDAO tolerates predictable contributions (one honest contributor per mixing period suffices). A validator sufficiently concerned about a specific exposed chain can exit and re-enter, but this is unwarranted in practice. + +### Erroneous Commitments + +Preimage possession is unverifiable at registration: the protocol cannot distinguish a commitment whose chain the validator holds from a typo or the output of a buggy key-derivation. + +Because registration is one-time, a bad commitment cannot be corrected in place: the validator can never propose on the hash-chain path, and the only remedy is to exit and re-enter. This makes an erroneous registration as costly as losing the chain secret, and it does not exist under BLS reveals, where there is nothing to misconfigure beyond the signing key itself. Validator clients should therefore verify a commitment by walking its full chain before registering, and treat the chain secret with the same care as the signing key. + +### Quantum Adversaries + +The scheme rests on two properties of BLAKE3. Grinding resistance rests on collision resistance: a proposer that could find a collision could give a chain link two preimages and choose between them at reveal time to bias its contribution. + +Unpredictability rests on preimage resistance: a reveal cannot be derived from the public commitment before it is published. The post-quantum security of the scheme is therefore comparable to the collision resistance of BLAKE3, which is believed to remain adequate against a quantum adversary. The transitional BLS reveal path and the BLS signature on `RandaoCommitmentRegistration` remain quantum-vulnerable, as do block signatures generally; this EIP removes RANDAO's structural dependence on signature uniqueness so that the eventual post-quantum fork is a signature-scheme swap rather than a randomness redesign. + +### Denial of Service via Registrations + +Registration confers no randomness advantage, so spamming registrations is a pure-cost DoS vector. It is bounded on every surface: + +- **Blocks.** The operations list is capped at `MAX_RANDAO_COMMITMENT_REGISTRATIONS` per block (at most 128 additional BLS verifications). +- **Gossip.** A validator registers at most once, so first-seen-per-validator deduplication (as for `bls_to_execution_change`) bounds gossip to one signature verification per validator, ever. Non-validators cannot participate: their messages fail signature validation and incur gossipsub peer penalties. Messages for an already-registered validator fail the head-state REJECT check, also penalized. +- **State.** `queue_randao_commitment` enforces at most one pending registration per validator, and the queue is additionally bounded by inclusion rates: at most `MAX_RANDAO_COMMITMENT_REGISTRATIONS` entries per block, each resident for `COMMITMENT_REGISTRATION_DELAY` epochs, giving a worst-case steady state of ~12,300 entries. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From 17cf419a3413184e8bb75f11e1fa9c2b5bfde942 Mon Sep 17 00:00:00 2001 From: kevaundray Date: Tue, 11 Aug 2026 01:30:11 +0100 Subject: [PATCH 21/53] Update EIP-7666: Add author Merged by EIP-Bot. --- EIPS/eip-7666.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7666.md b/EIPS/eip-7666.md index ec776aa2607011..62db5cd7f538a2 100644 --- a/EIPS/eip-7666.md +++ b/EIPS/eip-7666.md @@ -2,7 +2,7 @@ eip: 7666 title: EVM-ify the identity precompile description: Remove the identity precompile, and put into place a piece of EVM code that has equivalent functionality -author: Vitalik Buterin (@vbuterin) +author: Vitalik Buterin (@vbuterin), Kevaundray Wedderburn (@kevaundray) discussions-to: https://ethereum-magicians.org/t/eip-7561-evm-ify-the-identity-precompile/19445 status: Stagnant type: Standards Track From 002b27b5e70e97b4b86038636cdcb0d47ff8ba45 Mon Sep 17 00:00:00 2001 From: nixo <23272494+nixorokish@users.noreply.github.com> Date: Mon, 10 Aug 2026 18:50:23 -0600 Subject: [PATCH 22/53] Update EIP-7666: Move to Draft Merged by EIP-Bot. --- EIPS/eip-7666.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7666.md b/EIPS/eip-7666.md index 62db5cd7f538a2..2ee805be0bd093 100644 --- a/EIPS/eip-7666.md +++ b/EIPS/eip-7666.md @@ -4,7 +4,7 @@ title: EVM-ify the identity precompile description: Remove the identity precompile, and put into place a piece of EVM code that has equivalent functionality author: Vitalik Buterin (@vbuterin), Kevaundray Wedderburn (@kevaundray) discussions-to: https://ethereum-magicians.org/t/eip-7561-evm-ify-the-identity-precompile/19445 -status: Stagnant +status: Draft type: Standards Track category: Core created: 2024-03-31 From 6e421f7412bd682116d3929dd023dba2256049bb Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Tue, 11 Aug 2026 03:13:06 +0200 Subject: [PATCH 23/53] Add EIP: RowDAS - Distributed Blob Reconstruction Merged by EIP-Bot. --- EIPS/eip-8371.md | 158 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 EIPS/eip-8371.md diff --git a/EIPS/eip-8371.md b/EIPS/eip-8371.md new file mode 100644 index 00000000000000..3dadc752d5bf9e --- /dev/null +++ b/EIPS/eip-8371.md @@ -0,0 +1,158 @@ +--- +eip: 8371 +title: RowDAS - Distributed Blob Reconstruction +description: Distribute reconstruction load in the network through row-level cell messaging. +author: Csaba Kiraly (@cskiraly), Marco Munizaga (@MarcoPolo) +discussions-to: https://ethereum-magicians.org/t/eip-8371-rowdas-distributed-blobspace-reconstruction/29320 +status: Draft +type: Standards Track +category: Networking +created: 2026-08-05 +requires: 7594, 8136 +--- + +## Abstract + +PeerDAS (Peer Data Availability Sampling, [EIP-7594](./eip-7594.md)) requires supernodes to provide reconstruction, and this puts a high burden on supernodes that scales linearly with blob count. RowDAS enables distributed blobspace reconstruction using partial-message-based row topics, allowing all nodes to contribute to reconstruction, while significantly reducing the load on supernodes, leading to a more efficient and more resilient DAS construct. + +## Motivation + +[EIP-7594](./eip-7594.md) PeerDAS was designed with a simple but powerful-enough erasure coding based reconstruction model where any node receiving at least half of the 128 columns should reconstruct the whole extended blob content belonging to a block. As the number of blobs grows, however, the reconstruction burden on every supernode also grows linearly with blob count. + +Moreover, supernodes execute largely redundant work: each one of them reconstructing all missing blobs, without the means to distribute this work efficiently in the network. + +This EIP introduces distributed blobspace reconstruction, where different nodes prioritize the reconstruction of different parts of the blobspace, leading to a faster, less CPU-intensive, and more resilient construct. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). + +The EIP introduces new Gossipsub topics, changes to the rules of reconstruction, and a few minor changes to how current column topics operate. + +In this document, a *supernode* is any node subscribed to 64 or more of the 128 column subnets, and thus able to reconstruct the entire blobspace on its own. + +### Parameters + +| Constant | Value | +| - | - | +| `ROW_SUBNET_COUNT` | `128` | + +### Column topics + +Regarding column topics [EIP-7594](./eip-7594.md) already mandates the following: + +> Once the node obtains a column through reconstruction, the node MUST expose the new column as if it had received it over the network. If the node is subscribed to the subnet corresponding to the column, it MUST send the reconstructed DataColumnSidecar to its topic mesh neighbors. If instead the node is not subscribed to the corresponding subnet, it SHOULD still expose the availability of the DataColumnSidecar as part of the gossip emission process. + +This is extended to allow cell-level operation towards peers that support it using the following rules: + +- Prior to reconstructing, a node MAY also use advertisements received as part of the Gossipsub "fanout" mechanism to collect relevant cells from other peers across column subnets it is not subscribed to. + +- After reconstruction, a node SHOULD use the Gossipsub "fanout" mechanism to provide cells from the reconstructed blob to peers across column subnets it is not subscribed to. A node MAY choose to only advertise to a random subset of these columns rather than all columns. This allows the node to provide another path for cell dissemination to the network. A node MAY choose to delay these fanout messages in order to conserve bandwidth by not competing with other nodes who are subscribed to the column topic, and can provide the cell instead. + +### Row topics + +Similar to column subnets, we introduce new row subnets: `data_row_{subnet_id}`. These resemble, but are not to be confused with, the deprecated `blob_sidecar_{subnet_id}` topics. Their properties: + +- A row subnet MUST use Cell-Level Deltas ([EIP-8136](./eip-8136.md)) without eager push. Like for Cell-Level Deltas in column subnets, the GroupID for a message in the row subnet is the block root. Since cells might arrive from three different sources (`getBlobs`, columns, rows) a node MAY choose to delay the request of cells from rows. +- The number of row subnets is `ROW_SUBNET_COUNT`, a fixed constant independent of the blob count. Blob rows are mapped to subnets with a per-slot pseudo-random permutation, reusing the consensus-layer swap-or-not shuffle: + + ```python + def get_blob_row_subnet(blob_index: BlobIndex, slot: Slot) -> RowSubnetIndex: + seed = hash(b"ROW_SUBNET" + uint_to_bytes(uint64(slot))) + return RowSubnetIndex( + compute_shuffled_index(uint64(blob_index), uint64(ROW_SUBNET_COUNT), seed) + ) + ``` + + Being a permutation, the mapping assigns distinct subnets to the blobs of a slot as long as the blob count does not exceed `ROW_SUBNET_COUNT`. Changing every slot, it distributes load evenly across the network, including which subnets are idle when the blob count is below `ROW_SUBNET_COUNT`. The seed depends only on the slot, so the mapping is computable without access to chain state. If the blob count exceeds `ROW_SUBNET_COUNT`, a subnet carries multiple rows in a slot; the bitmap of a row subnet covers the cells of all rows mapped to it, ordered by `blob_index`. +- Each node derives a single designated row subnet from its node ID, reusing the hash-based derivation of custody column selection in [EIP-7594](./eip-7594.md), but with a different byte window for domain separation: + + ```python + def get_row_subnet(node_id: NodeID) -> RowSubnetIndex: + return RowSubnetIndex( + bytes_to_uint64(hash(uint_to_bytes(uint256(node_id)))[8:16]) + % ROW_SUBNET_COUNT + ) + ``` + + Since custody group derivation uses bytes `[0:8]` of the same hash, taking bytes `[8:16]` keeps the row assignment decorrelated from custody assignment at no extra hashing cost. A supernode MUST subscribe to its designated row subnet. Other nodes SHOULD subscribe to theirs if they support Cell-Level Deltas. Subscription carries no custody obligation. + +A peer MAY limit the number of cells it serves a peer on the row subnet to just half of all the cells, as the rest can be reconstructed. + +As a node receives cells from any source (either from row subnets, column subnets, or `getBlobs`), it SHOULD send updated bitmap states to its peers. A node MAY choose to debounce these updates. + +### Reconstruction + +A node, even if not a supernode, SHOULD collect at least 64 cells on each row mapped to its designated row subnet and expose these in updated bitmap states to its peers. It MAY also decide to reconstruct these rows. If it does, it SHOULD send its updated bitmap state to its peers. + +Similar to PeerDAS, a supernode MUST contribute to reconstruction. However, reconstruction becomes a two-phase process: + +- 1st phase: a supernode MUST reconstruct the rows mapped to its designated row subnet, and it MUST send updated bitmap states to its peers. A small random delay (recommended range TBD) before reconstruction is allowed to desynchronise nodes in the network and reduce overall load. +- 2nd phase: after a slightly longer random delay (recommended range TBD), during which cells are collected from `getBlobs`, columns, and rows, a supernode MUST do a second reconstruction phase, reconstructing all missing rows, and sharing the results as defined above. + +## Rationale + +Row topics were part of the DAS discussion from the early days, well before PeerDAS was designed. FullDAS (described in the ethresear.ch post "FullDAS: towards massive scalability with 32MB blocks and beyond") introduced cell-level messaging over both column and row topics, with cross-seeding and in-network reconstruction. It also introduced bitmap representations of partial IHAVE messages, but without the exact protocol details. + +The Gossipsub Partial Message Extension introduced the mapping of bitmap-based partial message representations into Gossipsub, opening the way to use them on columns in [EIP-8136](./eip-8136.md), which builds on that extension and cites its specification. + +Until now, while we have developed the tools to implement better schemes, we remained with the original simplified PeerDAS construct. At the same time, blob count scaling made the CPU and bandwidth requirement of supernodes more of a point of contention. Reliance on supernodes, while abundant on current mainnet, is also a point of concentration leading to a protocol with less resilience than desirable. + +This EIP corrects some of these shortcomings, making sure supernodes are not doing (as much) useless work, and reconstruction is possible (although not yet mandated) even without supernodes. + +### What it is not + +This EIP is not FullDAS. It does not introduce sub-linear (cell-level) sampling. The bandwidth requirement of sampling nodes is still proportional to the number of blobs. + +It also does not introduce column-wise encoding, so protection and reconstruction is still only along the row axis. + +Finally, it does not directly help L2 nodes retrieve individual blobs (although there are possible extensions in that direction). However, it helps them run supernodes with fewer resources, leading to a net gain. + +### Possible extension to retrieve individual blobs + +With the introduction of PeerDAS, L2 nodes have the problem that retrieving a specific blob from a CL client requires them to either be a supernode, or to download it on request through columns. By introducing row topics with allocation rooted in the nodeID, it is easier for nodes to identify which node they can download the relevant blob from. We reserve this for further consideration. + +### Design decisions + +**Why are non-supernodes part of the row topics?** + +This is to enable the possibility of reconstructing without supernodes. The additional traffic of one row, most probably already suppressed by `getBlobs`, is worth it in our opinion. + +**Why are non-supernodes not required to reconstruct?** + +While mandated reconstruction would be desirable from the perspective of not relying on supernodes at all, this would introduce extra CPU load on nodes, and we try to avoid this in this phase. It is still recommended to activate this reconstruction path with a delay as a resilience mechanism. + +**Why a fixed number of row subnets, instead of one per blob?** + +Tying the subnet count to the maximum blob count would change every node's subnet assignment at each Blob Parameter Only fork, tearing down and re-forming all row meshes simultaneously, exactly when network stability matters most. A fixed count keeps node-to-subnet assignments stable across forks, and the blob count only affects the stateless per-slot blob-to-subnet mapping. The cost is somewhat thinner per-subnet coverage (nodes are spread over `ROW_SUBNET_COUNT` subnets even when fewer rows exist) and having to define the multi-row-per-subnet general case. + +**Why `ROW_SUBNET_COUNT = 128`?** + +The constant is chosen to keep the expected number of nodes per subnet in a healthy band across plausible participation scenarios. Since each node subscribes to a single row subnet, the expected team size behind a subnet is the number of participating nodes divided by `ROW_SUBNET_COUNT`. This team size has a floor: it must stay several times the Gossipsub mesh degree (accounting for the binomial spread of hash-based assignment and for churn), and it should give a high probability of at least one supernode — a mandatory reconstructor — per subnet. Pushing the constant higher than needed thins subnets towards this floor, while a lower constant increases traffic duplication, as each active subnet's row flows to its entire team. + +With approx. 12K nodes and 3K supernodes on mainnet, `ROW_SUBNET_COUNT = 128` yields ~94 nodes and ~23 supernodes per subnet at full participation, and remains workable even at partial early adoption of Cell-Level Deltas. The value is also above currently planned maximum blob counts, so in practice each subnet carries at most one row per slot, while the construct remains well defined for higher blob counts: per-node row load is bounded by `blob_count / ROW_SUBNET_COUNT` rows per slot. If the network size changes by an order of magnitude, raising or lowering the constant remains possible, at the cost of a one-time reshuffle of subnet assignments. + +**Why a pseudo-random per-slot permutation, and not a simple rotation?** + +With fewer rows than subnets, some subnets are idle in a given slot, so the mapping has to change over time for every node to contribute equally. A simple rotation (`(blob_index + slot) % ROW_SUBNET_COUNT`) achieves this only over a full cycle: each subnet would be active for `blob_count` consecutive slots and then idle for the rest of the cycle, making per-node load bursty. The pseudo-random permutation redraws the active subnet set every slot, evening out load also on short time horizons. A permutation (rather than an independent hash per blob) is needed to avoid mapping two blobs of a slot to the same subnet; `compute_shuffled_index` provides one that clients already implement. Note that the mapping remains publicly predictable; unpredictability would add little, since the block proposer controls blob indices and could steer a blob to a chosen subnet under any public mapping. Guarantees against targeted suppression continue to come from the column topics. + +**Why only a single row, and why is it not dependent on custody?** + +As of August 2026, mainnet has approx. 12K nodes of which 3K are supernodes. The latter is much more than what we expected initially. With current and planned blob counts, even a single row creates abundant overlap. + +## Backwards Compatibility + +Row topics are limited to peers that have libp2p Gossipsub implementations supporting Cell-Level Deltas. The portion of peers that supports the extension is already reaching considerable numbers on mainnet, even before Glamsterdam. We expect the majority of peers to support it after the Glamsterdam fork and [EIP-8136](./eip-8136.md). For peers that do not support the extension, `getBlobs` and column topics are still fully available. + +## Security Considerations + +The EIP changes DAS networking, but it does not change the custody allocation and the probabilistic guarantees of PeerDAS. + +New Gossipsub topics might introduce new attack vectors. Since row distribution is a new additional recovery path, and the old paths are mainly intact, it is not expected that this adversely affects the system, except for a relatively small traffic overhead of bitmap-based signaling. +An exception to this is the two-phase reconstruction process. Here the 2nd phase, the full reconstruction, is explicitly delayed. This delay is, however, something implementations already practice, and it is a one-time (instead of hop-by-hop) delay. + +Since the row subnet count is a fixed constant and node-to-subnet assignments do not depend on the blob count, Blob Parameter Only forks ([EIP-7892](./eip-7892.md)) do not affect row subnet subscriptions; only the blob-to-subnet mapping changes with the blob count, and that mapping is stateless per slot. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From b325d33d61f18c8bc9f5f2b9b9c59f8bf702141a Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Tue, 11 Aug 2026 03:55:30 +0200 Subject: [PATCH 24/53] Update EIP-8371: role split, phased reconstruction, security analysis Merged by EIP-Bot. --- EIPS/eip-8371.md | 55 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/EIPS/eip-8371.md b/EIPS/eip-8371.md index 3dadc752d5bf9e..9cdf48fe3b522f 100644 --- a/EIPS/eip-8371.md +++ b/EIPS/eip-8371.md @@ -29,7 +29,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S The EIP introduces new Gossipsub topics, changes to the rules of reconstruction, and a few minor changes to how current column topics operate. -In this document, a *supernode* is any node subscribed to 64 or more of the 128 column subnets, and thus able to reconstruct the entire blobspace on its own. +In this document, a *supernode* is a node subscribed to all 128 column subnets, following the customary use of the term. A *row reconstructor* is any node subscribed to 64 or more of the 128 column subnets, and thus holding enough cells to reconstruct any row on its own; every supernode is also a row reconstructor. On mainnet, the row reconstructor class notably includes staking nodes whose validator custody requirement reaches 64 or more custody groups. ### Parameters @@ -60,11 +60,13 @@ Similar to column subnets, we introduce new row subnets: `data_row_{subnet_id}`. def get_blob_row_subnet(blob_index: BlobIndex, slot: Slot) -> RowSubnetIndex: seed = hash(b"ROW_SUBNET" + uint_to_bytes(uint64(slot))) return RowSubnetIndex( - compute_shuffled_index(uint64(blob_index), uint64(ROW_SUBNET_COUNT), seed) + compute_shuffled_index( + uint64(blob_index) % ROW_SUBNET_COUNT, uint64(ROW_SUBNET_COUNT), seed + ) ) ``` - Being a permutation, the mapping assigns distinct subnets to the blobs of a slot as long as the blob count does not exceed `ROW_SUBNET_COUNT`. Changing every slot, it distributes load evenly across the network, including which subnets are idle when the blob count is below `ROW_SUBNET_COUNT`. The seed depends only on the slot, so the mapping is computable without access to chain state. If the blob count exceeds `ROW_SUBNET_COUNT`, a subnet carries multiple rows in a slot; the bitmap of a row subnet covers the cells of all rows mapped to it, ordered by `blob_index`. + Being a permutation, the mapping assigns distinct subnets to the blobs of a slot as long as the blob count does not exceed `ROW_SUBNET_COUNT`. Changing every slot, it distributes load evenly across the network, including which subnets are idle when the blob count is below `ROW_SUBNET_COUNT`. The seed depends only on the slot, so the mapping is computable without access to chain state. If the blob count exceeds `ROW_SUBNET_COUNT`, blob indices that are equal modulo `ROW_SUBNET_COUNT` share a subnet, so a subnet carries up to `ceil(blob_count / ROW_SUBNET_COUNT)` rows in a slot; the bitmap of a row subnet covers the cells of all rows mapped to it, ordered by `blob_index`. - Each node derives a single designated row subnet from its node ID, reusing the hash-based derivation of custody column selection in [EIP-7594](./eip-7594.md), but with a different byte window for domain separation: ```python @@ -75,20 +77,29 @@ Similar to column subnets, we introduce new row subnets: `data_row_{subnet_id}`. ) ``` - Since custody group derivation uses bytes `[0:8]` of the same hash, taking bytes `[8:16]` keeps the row assignment decorrelated from custody assignment at no extra hashing cost. A supernode MUST subscribe to its designated row subnet. Other nodes SHOULD subscribe to theirs if they support Cell-Level Deltas. Subscription carries no custody obligation. + Since custody group derivation uses bytes `[0:8]` of the same hash, taking bytes `[8:16]` keeps the row assignment decorrelated from custody assignment at no extra hashing cost. A row reconstructor MUST subscribe to its designated row subnet. Other nodes SHOULD subscribe to theirs if they support Cell-Level Deltas. Subscription carries no custody obligation. -A peer MAY limit the number of cells it serves a peer on the row subnet to just half of all the cells, as the rest can be reconstructed. +Row subnets carry partial messages only; no full-message equivalent is defined for them. A node MUST NOT subscribe to a row subnet unless it supports the Partial Messages Extension, and the subscription requirements above apply only to nodes with such support. A node MAY prune row subnet mesh peers that do not support the extension. Note that the non-discrimination guidance of [EIP-8136](./eip-8136.md) applies to column topics, where full-message fallback exists; on row subnets there is nothing to fall back to, while column topics and `getBlobs` remain fully available to nodes without the extension. + +Row subnet membership is computable from a peer's node ID alone, so no ENR extension is needed for discovery. A node SHOULD locate peers of its designated row subnet by applying `get_row_subnet` to the node IDs it discovers (e.g., through discv5 lookups), and SHOULD maintain enough connections to same-subnet peers to sustain a healthy Gossipsub mesh, keeping in mind that subnet members are a small fraction (approx. `1 / ROW_SUBNET_COUNT`) of the overall node population and are unlikely to appear in sufficient numbers among randomly selected peers. + +The exact wire format — SSZ containers, bitmap encoding, and GroupID derivation — is to be defined in the ethereum/consensus-specs repository, following the approach of [EIP-8136](./eip-8136.md). The semantics this EIP requires of it are: the bitmap of a row subnet covers the rows mapped to the subnet in `blob_index` order, and within a row follows `cell_index` order; the GroupID is derived from the block root, analogously to column topics. A cell received on a row subnet MUST be verified against the corresponding blob KZG commitment before it is forwarded or used, and peers providing invalid cells MUST be penalized under the same rules as on column subnets. + +A peer MAY limit the number of cells it serves a peer on the row subnet to just half of the cells of each mapped row, as the rest of that row can be reconstructed. The limit applies per row: serving fewer than 64 cells of a row does not allow its reconstruction, regardless of cells served from other rows. As a node receives cells from any source (either from row subnets, column subnets, or `getBlobs`), it SHOULD send updated bitmap states to its peers. A node MAY choose to debounce these updates. ### Reconstruction -A node, even if not a supernode, SHOULD collect at least 64 cells on each row mapped to its designated row subnet and expose these in updated bitmap states to its peers. It MAY also decide to reconstruct these rows. If it does, it SHOULD send its updated bitmap state to its peers. +A node, even if not a row reconstructor, SHOULD collect at least 64 cells on each row mapped to its designated row subnet and expose these in updated bitmap states to its peers. Note that these cells need not come from the node's own custody: the row subnet pools the custody cells of all its members, so sufficient cells can be collected through the row subnet itself. + +Similar to PeerDAS, reconstruction duties attach to nodes holding enough columns, but reconstruction becomes a phased process. Reconstruction of a row is REQUIRED only once a node holds at least 64 distinct verified cells of that row; subscription alone does not imply possession, so all reconstruction obligations below are conditional on this. -Similar to PeerDAS, a supernode MUST contribute to reconstruction. However, reconstruction becomes a two-phase process: +- 1st phase: a row reconstructor MUST reconstruct each row mapped to its designated row subnet for which it holds sufficient cells, and it MUST send updated bitmap states to its peers. Note that a row reconstructor can satisfy this phase from its own column subscriptions, without foreign row information. A small random delay (recommended range TBD) before reconstruction is allowed to desynchronise nodes in the network and reduce overall load. +- 2nd phase: after a slightly longer random delay (recommended range TBD), during which cells are collected from `getBlobs`, columns, and rows, a supernode SHOULD — and any other row reconstructor MAY — do a second reconstruction phase, reconstructing all missing rows for which it holds sufficient cells, and sharing the results as defined above. This matches the reconstruction behavior PeerDAS already recommends for nodes holding half the columns, with an added delay. The stronger expectation is placed on supernodes because only a node subscribed to all column subnets can observe rows completing elsewhere and cancel the redundant work; row reconstructors with fewer subscriptions lack this signal. +- 3rd phase: after a delay longer than the 2nd-phase delay (recommended range TBD), any node subscribed to a row subnet SHOULD reconstruct the rows mapped to that subnet that are still incomplete and for which it holds sufficient cells, sharing the results as defined above. This provides a reconstruction path that does not depend on row reconstructors or supernodes at all. Its expected CPU cost is near zero, since this phase activates only when the earlier phases have failed to complete a row. -- 1st phase: a supernode MUST reconstruct the rows mapped to its designated row subnet, and it MUST send updated bitmap states to its peers. A small random delay (recommended range TBD) before reconstruction is allowed to desynchronise nodes in the network and reduce overall load. -- 2nd phase: after a slightly longer random delay (recommended range TBD), during which cells are collected from `getBlobs`, columns, and rows, a supernode MUST do a second reconstruction phase, reconstructing all missing rows, and sharing the results as defined above. +All delays are measured from the moment the node first obtains the block root of a valid block for the slot. Reconstruction obligations attach to at most one block root per slot: the block root on the node's current head branch, or the first valid block root seen. For any additional (equivocating or competing) block roots of the same slot, reconstruction is OPTIONAL, so that equivocation cannot amplify reconstruction work. A node MUST cancel a pending reconstruction of a row that completes through other means before the timer fires. The delays MUST be bounded by a maximum (value TBD), so that the recovery path is not postponed indefinitely under network degradation. ## Rationale @@ -114,13 +125,13 @@ With the introduction of PeerDAS, L2 nodes have the problem that retrieving a sp ### Design decisions -**Why are non-supernodes part of the row topics?** +**Why are nodes without reconstruction duties part of the row topics?** -This is to enable the possibility of reconstructing without supernodes. The additional traffic of one row, most probably already suppressed by `getBlobs`, is worth it in our opinion. +This is to enable the possibility of reconstructing without supernodes. Even custody-minimum nodes contribute: with roughly 94 members each custodying at least 4 randomly assigned columns, a row subnet collectively covers well over 64 distinct columns with high probability, forming a virtual reconstructor even when no individual member could reconstruct alone. The additional traffic of one row, most probably already suppressed by `getBlobs`, is worth it in our opinion. -**Why are non-supernodes not required to reconstruct?** +**Why are ordinary nodes not required to reconstruct?** -While mandated reconstruction would be desirable from the perspective of not relying on supernodes at all, this would introduce extra CPU load on nodes, and we try to avoid this in this phase. It is still recommended to activate this reconstruction path with a delay as a resilience mechanism. +While mandated (MUST) reconstruction would be desirable from the perspective of not relying on supernodes at all, it would introduce unconditional CPU load on ordinary nodes. Instead, the 3rd reconstruction phase is a SHOULD, with a delay long enough that it activates only in the rare case when the earlier phases have not completed a row: the expected load is near zero, while the network retains a reconstruction path that works without row reconstructors. **Why a fixed number of row subnets, instead of one per blob?** @@ -128,13 +139,13 @@ Tying the subnet count to the maximum blob count would change every node's subne **Why `ROW_SUBNET_COUNT = 128`?** -The constant is chosen to keep the expected number of nodes per subnet in a healthy band across plausible participation scenarios. Since each node subscribes to a single row subnet, the expected team size behind a subnet is the number of participating nodes divided by `ROW_SUBNET_COUNT`. This team size has a floor: it must stay several times the Gossipsub mesh degree (accounting for the binomial spread of hash-based assignment and for churn), and it should give a high probability of at least one supernode — a mandatory reconstructor — per subnet. Pushing the constant higher than needed thins subnets towards this floor, while a lower constant increases traffic duplication, as each active subnet's row flows to its entire team. +The constant is chosen to keep the expected number of nodes per subnet in a healthy band across plausible participation scenarios. Since each node subscribes to a single row subnet, the expected team size behind a subnet is the number of participating nodes divided by `ROW_SUBNET_COUNT`. This team size has a floor: it must stay several times the Gossipsub mesh degree (accounting for the binomial spread of hash-based assignment and for churn), and it should give a high probability of at least one row reconstructor — a node with a mandatory 1st-phase duty — per subnet. Pushing the constant higher than needed thins subnets towards this floor, while a lower constant increases traffic duplication, as each active subnet's row flows to its entire team. -With approx. 12K nodes and 3K supernodes on mainnet, `ROW_SUBNET_COUNT = 128` yields ~94 nodes and ~23 supernodes per subnet at full participation, and remains workable even at partial early adoption of Cell-Level Deltas. The value is also above currently planned maximum blob counts, so in practice each subnet carries at most one row per slot, while the construct remains well defined for higher blob counts: per-node row load is bounded by `blob_count / ROW_SUBNET_COUNT` rows per slot. If the network size changes by an order of magnitude, raising or lowering the constant remains possible, at the cost of a one-time reshuffle of subnet assignments. +With approx. 12K nodes and 3K supernodes on mainnet, `ROW_SUBNET_COUNT = 128` yields ~94 nodes and ~23 supernodes per subnet at full participation, and remains workable even at partial early adoption of Cell-Level Deltas. The value is also above currently planned maximum blob counts, so in practice each subnet carries at most one row per slot, while the construct remains well defined for higher blob counts: per-node row load is bounded by `ceil(blob_count / ROW_SUBNET_COUNT)` rows per slot. If the network size changes by an order of magnitude, raising or lowering the constant remains possible, at the cost of a one-time reshuffle of subnet assignments. **Why a pseudo-random per-slot permutation, and not a simple rotation?** -With fewer rows than subnets, some subnets are idle in a given slot, so the mapping has to change over time for every node to contribute equally. A simple rotation (`(blob_index + slot) % ROW_SUBNET_COUNT`) achieves this only over a full cycle: each subnet would be active for `blob_count` consecutive slots and then idle for the rest of the cycle, making per-node load bursty. The pseudo-random permutation redraws the active subnet set every slot, evening out load also on short time horizons. A permutation (rather than an independent hash per blob) is needed to avoid mapping two blobs of a slot to the same subnet; `compute_shuffled_index` provides one that clients already implement. Note that the mapping remains publicly predictable; unpredictability would add little, since the block proposer controls blob indices and could steer a blob to a chosen subnet under any public mapping. Guarantees against targeted suppression continue to come from the column topics. +With fewer rows than subnets, some subnets are idle in a given slot, so the mapping has to change over time for every node to contribute equally. A simple rotation (`(blob_index + slot) % ROW_SUBNET_COUNT`) achieves this only over a full cycle: each subnet would be active for `blob_count` consecutive slots and then idle for the rest of the cycle, making per-node load bursty. The pseudo-random permutation redraws the active subnet set every slot, evening out load also on short time horizons. A permutation (rather than an independent hash per blob) is needed to avoid mapping two blobs of a slot to the same subnet as long as the blob count does not exceed `ROW_SUBNET_COUNT`; `compute_shuffled_index` provides one that clients already implement. Note that the mapping remains publicly predictable; unpredictability would add little, since the block builder controls blob indices and could steer a blob to any of the subnets active in that slot under any public mapping. Guarantees against targeted suppression continue to come from the column topics. **Why only a single row, and why is it not dependent on custody?** @@ -148,8 +159,16 @@ Row topics are limited to peers that have libp2p Gossipsub implementations suppo The EIP changes DAS networking, but it does not change the custody allocation and the probabilistic guarantees of PeerDAS. -New Gossipsub topics might introduce new attack vectors. Since row distribution is a new additional recovery path, and the old paths are mainly intact, it is not expected that this adversely affects the system, except for a relatively small traffic overhead of bitmap-based signaling. -An exception to this is the two-phase reconstruction process. Here the 2nd phase, the full reconstruction, is explicitly delayed. This delay is, however, something implementations already practice, and it is a one-time (instead of hop-by-hop) delay. +New Gossipsub topics might introduce new attack vectors. Since row distribution is a new additional recovery path, and the old paths are mainly intact, it is not expected that this adversely affects the system, except for a bounded traffic overhead: bitmap-based signaling, plus, when blob data is partially withheld, up to half a row of futile cell pulls per row subnet member per mapped row. Reconstruction CPU cannot be triggered by unavailable data, as all reconstruction duties are gated on holding at least 64 distinct verified cells of a row. +An exception to this is the phased reconstruction process. Here the 2nd phase, the full reconstruction, is explicitly delayed. This delay is, however, something implementations already practice, and it is a one-time (instead of hop-by-hop) delay. + +A withholding block producer can trigger recovery work on a doomed block: releasing 64 columns' worth of cells for all rows except one — kept below the reconstruction threshold by withholding as little as a single cell — causes the network to reconstruct and cross-seed all recoverable rows while the block still ends up unavailable. This attack is inherited from PeerDAS rather than introduced by this EIP: under PeerDAS, every supernode performs this recovery work redundantly, while here the 1st phase distributes it at roughly one row per row reconstructor and the 2nd phase skips rows observed complete, so the total work strictly decreases. Since the 2nd phase is a SHOULD, supernodes can mitigate it further: observing the bitmaps of all column subnets, they can detect the unrecoverable row and legitimately skip collecting and reconstructing for the doomed block. + +Row dissemination is an optimization and MUST NOT weaken availability guarantees: nodes MUST NOT alter sampling or availability decision rules based on row subnet state, nor delay these decisions waiting for row dissemination; column topics and request-response remain the authoritative paths. + +Bitmap-based signaling introduces load of its own. Sending an update on every received cell can lead to quadratic message complexity, so nodes SHOULD debounce and rate-limit bitmap updates, and SHOULD bound the number of GroupIDs tracked per peer, in line with the guidance of [EIP-8136](./eip-8136.md). A peer that repeatedly advertises cells it then fails to provide SHOULD be treated in local peer scoring like a peer providing untimely messages. + +Since row subnet assignment is a static, public function of the node ID, an attacker can grind node IDs to concentrate on, or eclipse, a chosen row subnet. The impact is bounded: a suppressed row subnet degrades to the status quo, as the 2nd reconstruction phase and the column topics cover the affected rows. Since the row subnet count is a fixed constant and node-to-subnet assignments do not depend on the blob count, Blob Parameter Only forks ([EIP-7892](./eip-7892.md)) do not affect row subnet subscriptions; only the blob-to-subnet mapping changes with the blob count, and that mapping is stateless per slot. From 9ca2423fdd381d79778743ece889a95d0cf1ec46 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Tue, 11 Aug 2026 12:47:20 +0200 Subject: [PATCH 25/53] Update EIP-8261: Convert to Informational gas limit schedule recommendation Merged by EIP-Bot. --- EIPS/eip-8261.md | 228 +++++++++++++++-------------------------------- 1 file changed, 71 insertions(+), 157 deletions(-) diff --git a/EIPS/eip-8261.md b/EIPS/eip-8261.md index cae33eab69169b..3ff2c7b7f47ba2 100644 --- a/EIPS/eip-8261.md +++ b/EIPS/eip-8261.md @@ -1,86 +1,46 @@ --- eip: 8261 title: Gas Limit Schedule -description: Move the block gas limit to a hard-fork-scheduled, consensus-enforced parameter, removing proposer/builder/operator configurability. +description: Recommend an optional consensus layer gas limit schedule that serves as both the default target and the recommended maximum per fork. author: Barnabas Busa (@barnabasbusa) discussions-to: https://ethereum-magicians.org/t/eip-8261-gas-limit-schedule/28494 status: Draft -type: Standards Track -category: Core +type: Informational created: 2026-05-11 -requires: 1559, 7840, 7892 +requires: 1559, 7732, 7892, 7935 --- ## Abstract -This EIP removes the block gas limit from the set of values that node operators, validators, builders, and proposers can choose freely. Instead, the gas limit becomes a hard-fork-scheduled parameter, configured through a `gasLimitSchedule` on the execution layer and a `GAS_LIMIT_SCHEDULE` on the consensus layer. Each fork (including BPO-style lightweight "Gas Parameter Only" forks) pins a single, exact gas limit value. Producing or attesting to a block whose `gas_limit` differs from the scheduled value is a consensus error and renders the block invalid. The legacy ±1/1024 elasticity rule from [EIP-1559](./eip-1559.md) is removed and the validator gas-limit preference exposed via the Engine API is deprecated. +This EIP recommends that consensus layer clients source their gas limit preference from a hard-fork-keyed schedule — an optional `GAS_LIMIT_SCHEDULE` field in the consensus layer `config.yaml` — instead of hardcoded, release-scoped defaults. Each fork (including BPO-style lightweight "Gas Parameter Only" forks) pins a single value that plays two roles: it is the **default** gas limit that validator clients target in the absence of operator configuration, and the **recommended maximum**. Operators remain free to configure any value; clients should warn when a configured preference exceeds the scheduled value, but honor it — the maximum is a recommendation, not a rule. The schedule lives only on the consensus layer because, starting with Gloas ([EIP-7732](./eip-7732.md)), the CL drives the gas limit: the validator's preference flows through validator registrations and the builder pipeline, with no execution layer configuration involved. No consensus rules are changed: the [EIP-1559](./eip-1559.md) ±1/1024 elasticity rule remains the only gas-limit validity rule, and blocks above or below the scheduled value remain valid. ## Motivation -Today the block gas limit is effectively a free parameter set by each block proposer, plumbed through: +Today the block gas limit is set by each block proposer, driven by validator client "preferred gas limit" settings, client default configurations, and builder bids, with the ±1/1024 elasticity rule from [EIP-1559](./eip-1559.md) moving the realized limit block by block. -1. Execution layer client flags (e.g., `--miner.gaslimit`, `--gas-ceil`, `--target-gas-limit`). -2. The consensus layer validator client's "preferred gas limit", forwarded to the execution layer via `engine_forkchoiceUpdatedV*` payload attributes. -3. Builder bids in the MEV-Boost / PBS flow, which advertise a `gas_limit` chosen by the builder to match (or approximate) the proposer's preference. -4. Block-level "voting" via the ±1/1024 elasticity rule introduced in [EIP-1559](./eip-1559.md), allowing the gas limit to drift up or down per block. +The pain point this EIP addresses is that gas limit defaults are **release-scoped** rather than **fork-scoped**: a new default activates whenever an operator happens to update their node, not when the network intends the change to happen. This creates a concrete coordination problem for large increases. Suppose clients want to raise the default from 60M toward a substantially higher value for an upcoming fork: -This design has several drawbacks: +- If clients ship the new default in releases ahead of the fork, every node updated early starts voting the gas limit up *immediately* — before the fork's other capacity-relevant changes are active and before the network has agreed the new value is safe to reach. +- The alternative — shipping the new default in a back-to-back release immediately after the fork and asking all operators to update quickly — is operationally inconvenient and slow to take effect. +- Per-fork override flags (e.g., a `post__gas_limit` option) push the coordination burden onto every individual operator. -- **Operational risk.** A coordinated client-default change or a popular configuration push can move the gas limit by millions of gas in days, with no protocol-level safety net. Recent gas limit changes have been preceded by months of off-chain coordination precisely because there is no in-protocol gate. If clients ship a default that turns out to be unsafe at scale (e.g., worst-case block validation times, mempool blow-ups, state-growth surprises), there is no consensus rule preventing the network from reaching it. -- **Implicit governance.** Setting the gas limit on mainnet is currently an opaque social process performed by individual validators and large staking operators. This makes it difficult for client teams and researchers to commit to safe upper bounds that are guaranteed to be respected. -- **Asymmetry with blob parameters.** [EIP-7892](./eip-7892.md) already established BPO ("Blob Parameter Only") hard forks as the canonical, low-overhead path for scaling blob capacity. Blob `target`, `max`, and `baseFeeUpdateFraction` are now hard-fork-scheduled and consensus enforced. Block gas remains the only major capacity dial still set by social consensus among validators. -- **Builder/proposer surface area.** Builder bids and validator preferences carry a `gas_limit` field that must be validated, communicated, and reconciled across the EL, CL, and relay. Removing this field shrinks the trusted interface and removes a class of bugs. +There is also no single place where "the gas limit the network should run at" is written down: moving the network today requires either every client team shipping a new hardcoded default, or a large share of operators updating flags, coordinated socially over months. [EIP-7935](./eip-7935.md) demonstrated that tying a default gas limit recommendation to a hard fork works; this EIP generalizes that approach into a reusable, machine-readable schedule, mirroring how [EIP-7892](./eip-7892.md) handles blob parameters with `BLOB_SCHEDULE`. -The goal of this EIP is to make the gas limit behave like every other hard-fork parameter: a single value, agreed at fork time, enforced by consensus, changeable only through a fork (a normal fork, or a lightweight Gas Parameter Only fork modeled on [EIP-7892](./eip-7892.md)). +With Gloas ([EIP-7732](./eip-7732.md)), the consensus layer becomes the natural single home for this schedule: the gas limit a block is built to originates from the validator side of the builder flow, so a CL configuration entry can drive the network's gas limit end to end without any execution layer configuration. ## Specification The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). -### Activation - -Let `FORK_TIMESTAMP` denote the activation timestamp of the fork that includes this EIP. The rules below apply to any execution payload whose `timestamp >= FORK_TIMESTAMP`, and to any beacon block whose slot maps to an epoch at or after the corresponding consensus-layer fork epoch. +This EIP changes no consensus rules. The [EIP-1559](./eip-1559.md) gas limit validity rules (±1/1024 elasticity, 5000 minimum) are unchanged, and a block whose `gas_limit` differs from the scheduled value in either direction remains valid. Everything below is recommended client and tooling behavior. ### Gas limit schedule -The protocol gas limit at any timestamp `t >= FORK_TIMESTAMP` is determined by a `gasLimitSchedule` keyed by fork name. Each fork that changes the gas limit MUST add (or modify) its own entry. Subsequent forks that do not change the gas limit MUST copy the previous fork's value forward into their own entry. - -#### Execution layer configuration - -The chain configuration is extended with a `gasLimitSchedule` object and per-fork `Time` activation timestamps, following the convention established by [EIP-7840](./eip-7840.md) and [EIP-7892](./eip-7892.md): - -```json -{ - "gasLimitSchedule": { - "glamsterdam": 60000000, - "gpo1": 75000000, - "gpo2": 90000000 - }, - "glamsterdamTime": 1772000000, - "gpo1Time": 1780000000, - "gpo2Time": 1788000000 -} -``` - -`gpo` ("Gas Parameter Only") forks follow the same naming convention and lifecycle as BPO forks defined in [EIP-7892](./eip-7892.md). Activation timestamps are required only for forks at or after the activation fork of this EIP. - -Define: - -```python -def get_scheduled_gas_limit(timestamp: int, config: ChainConfig) -> int: - active_fork = config.fork_active_at(timestamp) - return config.gas_limit_schedule[active_fork] -``` - -`config.fork_active_at(timestamp)` returns the most recently activated fork (regular or `gpo`) whose `Time <= timestamp`. - -#### Consensus layer configuration - -A new `GAS_LIMIT_SCHEDULE` field is added to consensus layer configuration, mirroring the `BLOB_SCHEDULE` mechanism in [EIP-7892](./eip-7892.md). Entries represent gas limit changes that take effect at the start of the listed epoch: +The consensus layer `config.yaml` MAY be extended with a `GAS_LIMIT_SCHEDULE` field, mirroring the `BLOB_SCHEDULE` mechanism in [EIP-7892](./eip-7892.md). Entries represent recommended gas limit changes that take effect at the start of the listed epoch: ```yaml GAS_LIMIT_SCHEDULE: - - EPOCH: 500000 # Activation fork (e.g., Glamsterdam) + - EPOCH: 500000 # Activation fork (e.g., Gloas) GAS_LIMIT: 60000000 - EPOCH: 520000 # A future GPO fork GAS_LIMIT: 75000000 @@ -88,148 +48,102 @@ GAS_LIMIT_SCHEDULE: GAS_LIMIT: 90000000 ``` -**Requirements:** +`EPOCH` and `GAS_LIMIT` are `uint64` values; `GAS_LIMIT` matches the type of `ExecutionPayload.gas_limit` in the consensus specifications. -- Execution and consensus clients MUST share consistent gas-limit schedules. -- For every entry, the consensus-layer epoch start slot MUST map (via the slot-to-timestamp function) to the same activation timestamp used in the EL's `gasLimitSchedule` for that fork. -- The `GAS_LIMIT` value MUST equal the EL's `gasLimitSchedule[fork_name]` for that fork. +The field is OPTIONAL: CL clients MAY add support for it, and clients that do not recognize it ignore it, per the existing convention for unknown configuration keys. A client that is not using the parameter — because it has not implemented support, because the field is absent from its configuration, or because the duty's epoch predates the earliest schedule entry — simply keeps whatever default gas limit it used before; nothing about its behavior changes. -### Block-validity rule +`gpo` ("Gas Parameter Only") forks follow the same naming convention and lifecycle as BPO forks defined in [EIP-7892](./eip-7892.md): a lightweight fork whose only change is a new `GAS_LIMIT_SCHEDULE` entry. Each fork that changes the recommended gas limit adds its own entry; forks that do not change it need no new entry. -The execution payload header field `gas_limit` is now consensus-fixed. - -For any block with `timestamp >= FORK_TIMESTAMP`, the block is valid only if: +Define: +```python +def get_scheduled_gas_limit(epoch: Epoch, config: Config) -> int: + # Latest schedule entry whose EPOCH <= epoch + return max( + (entry for entry in config.GAS_LIMIT_SCHEDULE if entry.EPOCH <= epoch), + key=lambda entry: entry.EPOCH, + ).GAS_LIMIT ``` -block.header.gas_limit == get_scheduled_gas_limit(block.header.timestamp, config) -``` - -A block whose `gas_limit` does not match the scheduled value MUST be rejected by both execution and consensus clients. This applies symmetrically to: -- Block production (proposers and builders MUST set `gas_limit` to the scheduled value). -- Block import and re-execution. -- Beacon block / `ExecutionPayloadHeader` validation in the consensus layer. -- Attestation: validators MUST NOT attest to a block that violates this rule. +### Recommended client behavior -This replaces the legacy [EIP-1559](./eip-1559.md) elasticity rule. Specifically, the constraints - -``` -parent.gas_limit - parent.gas_limit // 1024 < block.gas_limit < parent.gas_limit + parent.gas_limit // 1024 -block.gas_limit >= 5000 -``` +For CL clients that support `GAS_LIMIT_SCHEDULE`, the scheduled value serves as both the default gas limit and the recommended maximum: -are no longer enforced for blocks at or after `FORK_TIMESTAMP`; they are superseded by the exact-match rule above. +- **Default.** When no operator preference is supplied, the client SHOULD use `get_scheduled_gas_limit(epoch)` as the gas limit preference, where `epoch` is the epoch of the slot the registration or proposal applies to. Clients supporting the schedule SHOULD NOT ship a separate hardcoded gas limit default; the schedule is the single source of defaults. +- **Recommended maximum.** If an operator-supplied preference exceeds the scheduled value, the client SHOULD honor it — since this EIP introduces no enforcement, there is nothing to enforce it against — but SHOULD log a clear warning, e.g., `configured gas limit 100000000 exceeds the recommended maximum of 90000000 for this fork`. Exceeding the recommendation is thereby a deliberate, visible operator decision rather than a silent one. +- **Operator preferences are always honored.** Values below the scheduled value work unchanged, as today. +- **Builders and relays.** Builders SHOULD produce, and relays SHOULD prefer, bids whose `gas_limit` does not exceed the scheduled value for the bid's slot. -### Engine API changes +#### Fork-boundary switching -Starting at the engine API version released alongside this EIP: +The schedule only delivers its benefit if the effective default changes exactly at the fork boundary, which requires new client logic: today, gas limit defaults are read once (at startup, or when a validator registration is created) and held constant. Under this EIP, the scheduled value SHOULD be looked up per duty — against the epoch of the slot being proposed or registered for — never against wall-clock time or a value cached at startup. A node running across a fork boundary then switches its preference at the first post-fork slot with no restart, no follow-up release, and no operator action. Since validator registrations are re-issued periodically, registrations naturally roll over to a new scheduled value as duties cross the fork epoch. -- The `payloadAttributes` object passed to `engine_forkchoiceUpdatedV*` MUST NOT include a proposer-supplied gas limit field. Any existing field carrying the proposer's preferred gas limit (e.g., `gasLimit` payload attribute on networks where it was added) is removed; if present, it MUST be ignored by the execution layer and SHOULD cause the call to be rejected with `-32602 invalid payload attributes`. -- When building a payload, the execution layer MUST set `gas_limit = get_scheduled_gas_limit(payloadAttributes.timestamp, config)`. It MUST NOT read this value from any operator-supplied configuration (CLI flag, JSON config, RPC, etc.). -- Execution layer clients SHOULD log a warning and ignore any operator-supplied gas-limit configuration at startup for timestamps at or after `FORK_TIMESTAMP`. Operator configuration MAY still apply to pre-fork blocks (e.g., for historical reproduction and replay). +Because the schedule is keyed by fork epoch, a release shipped months before a fork keeps using the current fork's value until the fork activates, then switches automatically. This makes it safe to ship large future increases well ahead of time: early updaters do not begin voting toward the new value before the fork is live. -### Validator client and builder API changes +#### The consensus layer drives the gas limit -- Validator clients MUST NOT expose or transmit a "preferred gas limit" setting that influences post-fork blocks. -- The builder API's `SignedBuilderBid` / `ExecutionPayloadHeader` MUST carry `gas_limit` equal to the scheduled value. Relays MUST reject builder bids whose `gas_limit` does not match `get_scheduled_gas_limit(timestamp, config)`. Proposers MUST NOT sign a header that violates this rule. -- The proposer's pre-registration with a relay (the "validator registration" carrying `gas_limit`) is deprecated for purposes of influencing the block's gas limit. Relays SHOULD continue to accept the field for backward compatibility but MUST ignore it when constructing post-fork bids. +Starting with Gloas ([EIP-7732](./eip-7732.md)), the gas limit a block is built to originates on the consensus layer side of the builder flow — the validator's preference, expressed through validator registrations and the payload bid path — rather than from execution layer configuration. The schedule therefore lives only in the CL `config.yaml`; no execution layer chain-configuration counterpart is needed, and EL gas limit flags retain their existing (pre-Gloas and local-tooling) meaning. -### Chain Specifics +Illustrative preference selection: -Testnets and devnets MUST include a `gasLimitSchedule` entry for genesis if their genesis is at or after this EIP's activation. For testnets that were live before the activation fork, the genesis entry is unnecessary; only the activation fork's entry is required. +```python +def effective_gas_limit_preference(operator_preference: Optional[int], epoch: Epoch, config: Config) -> int: + scheduled = get_scheduled_gas_limit(epoch, config) + if operator_preference is None: + return scheduled + if operator_preference > scheduled: + log.warning( + f"configured gas limit {operator_preference} exceeds the recommended " + f"maximum of {scheduled} for this fork" + ) + return operator_preference +``` -For private testnets exercising rapid scaling (e.g., shadowforks of `gpo` forks), the same mechanism is used: define a new `gpo` entry and the corresponding activation time. +The realized network gas limit continues to move under the [EIP-1559](./eip-1559.md) ±1/1024 rule, so a scheduled increase plays out as a gradual, bounded ramp starting at the fork boundary rather than an instant step. ## Rationale -### Why a schedule rather than a runtime parameter? - -A schedule (rather than, say, an on-chain vote or a moving average) keeps the change minimal, mirrors the established BPO mechanism from [EIP-7892](./eip-7892.md), and matches how the community already coordinates gas-limit changes in practice: socially, with months of lead time, tied to a specific upgrade window. Encoding that decision into config and enforcing it in consensus is the smallest change that gives the desired safety property. - -### Why remove validator/proposer choice entirely? +### Why fork-scoped defaults instead of release-scoped defaults? -Per-proposer choice was originally motivated by the desire to let stakers respond quickly to network conditions. In practice the mechanism is used for slow, coordinated changes ([EIP-7935](./eip-7935.md) being a recent example), not for rapid response. Meanwhile, the configurability creates risk: a single popular client default change can move the network's effective gas limit without any in-protocol gate. The `gpo` mechanism preserves the ability to move quickly when needed — a GPO fork can be scheduled with the same lead time as a BPO fork — while ensuring the change is explicit and auditable. +Keying the default on the duty's epoch rather than the release version decouples *shipping* a new gas limit from *activating* it — the same property hard forks already provide for every other parameter. This directly resolves the large-increase dilemma described in the Motivation: clients can ship the schedule entry for a big raise arbitrarily early, and no node will begin voting toward it until the fork (with whatever accompanying changes make the raise safe) is live. -### Why exact equality, not an upper bound? +### Why one value for both the default and the recommended maximum? -An upper bound (e.g., "block.gas_limit MUST NOT exceed scheduled value") would still allow proposers to set lower values, which preserves a class of edge cases (split views, builder/proposer disagreement, accidental misconfiguration that produces unusually small blocks). Exact equality is simpler, cheaper to verify, and forecloses these edge cases. If a future hard fork wants to reintroduce flexibility within a bounded range, it can do so explicitly. +The number the community coordinates on — "the gas limit for this fork" — is the number the network runs at and the number operators are asked not to exceed. A single dial means there is no second parameter to negotiate or get out of sync, and no untested operating region between a default and a higher ceiling. Operators who want to run below it can; running above it is possible (nothing in consensus prevents it) but happens against a clear warning, which is a much stronger signal than today's silently configurable free-for-all. -### Why is this consensus-breaking instead of a client-side default? +### Why does the schedule live only on the consensus layer? -The motivating concern is exactly that client-side defaults are not consensus-enforced. A misconfigured or malicious client could ship a default well above what the network has been tested for, and the protocol would accept those blocks. Moving the rule into consensus closes that gap. +Post-Gloas, the CL is authoritative for the gas limit in practice: the validator preference drives registrations, builder bids, and payload construction. A parallel execution layer schedule would be redundant configuration that could only ever agree with or diverge from the CL's — and divergence is a new failure mode with no benefit. One schedule, in the layer that actually drives the value, is the minimal design. EL clients require no changes at all under this EIP. -### Relationship to EIP-1559 - -[EIP-1559](./eip-1559.md) introduced the elasticity multiplier and the ±1/1024 gas-limit adjustment rule. The base-fee mechanism (target = `gas_limit / elasticity_multiplier`, max = `gas_limit`) is unchanged in spirit; it now uses the scheduled `gas_limit` as its input. The per-block adjustment rule is removed because the gas limit no longer varies block-to-block within a fork. - -### Relationship to EIP-7825 - -[EIP-7825](./eip-7825.md) caps per-transaction gas. This EIP caps (and fixes) per-block gas. The two are complementary: EIP-7825 prevents single-transaction DoS within a block; this EIP prevents the block-level capacity itself from drifting away from a tested safe value. - -## Backwards Compatibility +### Why informational rather than a consensus rule? -This change is consensus-breaking. Specifically: +An earlier draft of this EIP made the scheduled value a consensus-enforced maximum (and, before that, an exact-match requirement). This version is deliberately advisory: -- Blocks valid under the [EIP-1559](./eip-1559.md) elasticity rule but whose `gas_limit` differs from the scheduled value are invalid after `FORK_TIMESTAMP`. -- Execution layer client configuration related to gas limit (CLI flags, JSON keys) becomes a no-op for post-fork blocks. Clients SHOULD continue to honor these flags for historical replay and for pre-fork blocks. -- Validator client "preferred gas limit" settings become a no-op for post-fork blocks. -- Builder API consumers (relays, builders, proposer middleware) must be updated to set `gas_limit` to the scheduled value and to reject mismatches. +- **Adoptability.** A recommendation requires no fork, no engine API changes, and no coordination risk. The configuration field is optional, so CL teams can adopt it independently and incrementally, and it can accompany any fork as an informational companion, as [EIP-7935](./eip-7935.md) did. +- **Validator sovereignty is preserved.** Gas limit choice remains, in the limit, with proposers — this EIP changes the *defaults and social convention* around that choice, not the protocol. +- **It solves the actual coordination problem.** The premature-voting and back-to-back-release problems are default-management problems, and defaults are client behavior. Consensus enforcement addresses a different (drift-above-tested-envelope) risk, and can be pursued later as a separate Core EIP layered on the same schedule if the community wants it. -Tooling that reads `block.gas_limit` continues to work unchanged; the field is still present in the header, it is simply protocol-determined. +### Why warn rather than clamp out-of-range preferences? -## Test Cases +Clamping a preference down to the scheduled value would be enforcement — just relocated from consensus into the client. Without a consensus rule behind it, that would be dishonest in both directions: it implies a network ceiling that does not actually exist (any proposer running a non-conforming client could still exceed it), and it silently overrides an explicit operator decision that produces perfectly valid blocks. It would also fragment behavior across clients, since only those that adopt the optional schedule would clamp. A prominent warning keeps the mechanism honest: the schedule shapes defaults, and exceeding the recommended maximum remains possible but becomes a deliberate, visible act instead of a silent misconfiguration. -The following cases describe the expected validation behavior at and after `FORK_TIMESTAMP`. Let `S = get_scheduled_gas_limit(block.timestamp, config)`. +### Relationship to EIP-7935 -1. **Equal to schedule.** `block.gas_limit == S` → block valid (with respect to this rule). -2. **Above schedule.** `block.gas_limit == S + 1` → block invalid. -3. **Below schedule.** `block.gas_limit == S - 1` → block invalid. -4. **Within legacy elasticity, not on schedule.** `parent.gas_limit == S`, `block.gas_limit == S + S // 1024` → block invalid (legacy rule no longer applies). -5. **GPO transition block.** Block with `timestamp` exactly equal to `gpo1Time`: `block.gas_limit == gasLimitSchedule["gpo1"]` → valid; any other value → invalid. -6. **Pre-fork block at fork boundary.** Block with `timestamp == FORK_TIMESTAMP - 1` is still subject to the legacy rule; the new rule does not apply. -7. **Engine API payload attributes carrying gas-limit field.** `engine_forkchoiceUpdated` call with a non-empty proposer gas-limit attribute → call rejected with `-32602`. -8. **Builder bid mismatch.** Relay receives a builder bid with `gas_limit != S` → relay rejects bid. +[EIP-7935](./eip-7935.md) recommended a single default (60M) tied to a single fork (Fusaka). This EIP generalizes that one-off into a standing, machine-readable schedule so that every future change — including lightweight `gpo` forks — reuses the same mechanism instead of requiring a new EIP and a fresh round of client-default coordination. -## Reference Implementation - -Pseudocode for the execution-layer block validity check: - -```python -def validate_gas_limit(block: Block, parent: Block, config: ChainConfig) -> None: - if block.header.timestamp < config.activation_timestamp(THIS_EIP_FORK): - # Legacy EIP-1559 elasticity rule - delta = parent.header.gas_limit // 1024 - assert parent.header.gas_limit - delta < block.header.gas_limit < parent.header.gas_limit + delta - assert block.header.gas_limit >= 5000 - return - - scheduled = get_scheduled_gas_limit(block.header.timestamp, config) - if block.header.gas_limit != scheduled: - raise InvalidBlock( - f"gas_limit {block.header.gas_limit} != scheduled {scheduled}" - ) -``` +## Backwards Compatibility -Pseudocode for the consensus-layer execution payload header check: - -```python -def verify_execution_payload_header(state: BeaconState, header: ExecutionPayloadHeader) -> None: - scheduled = get_scheduled_gas_limit_cl(compute_epoch_at_slot(state.slot), state.config) - assert header.gas_limit == scheduled - # ... other existing checks ... -``` +No consensus rules change and no blocks become invalid. Existing operator settings keep working; the only behavioral changes, in CL clients that opt into the schedule, are that unconfigured validators derive their gas limit preference from the schedule instead of a hardcoded constant, and configured values above the scheduled maximum produce a warning (but are honored). CL clients that do not adopt the field, and all EL clients, are unaffected. Tooling that reads `block.gas_limit` is unaffected. ## Security Considerations -**Primary goal: prevent unsafe gas-limit drift.** The dominant risk this EIP addresses is that the network reaches a gas limit that has not been tested at scale, due to a coordinated default change in clients or staking pools. Encoding the limit in consensus closes this gap: no popular default and no validator preference can push the network past the scheduled value. - -**Liveness.** Because the rule is exact-equality, a misconfigured proposer or builder that produces a block with the wrong `gas_limit` orphans that slot rather than producing an invalid-but-followed chain. This is the intended behavior — incorrect gas-limit values are now a self-correcting safety condition rather than a silent capacity change — but it does mean that bugs in the schedule plumbing manifest as missed slots. Clients SHOULD validate the schedule at startup and refuse to start if the EL and CL disagree. +**The ceiling is advisory.** Nothing in consensus prevents a proposer from exceeding the scheduled value, so this EIP does not protect against a deliberately non-conforming actor. It does protect against the accidental paths — a default shipped early, a stale setting, an uncoordinated bump — which historically are how unintended gas limit movement happens. The ±1/1024 elasticity rule further rate-limits how fast any actor, conforming or not, can move the realized limit. -**Fork coordination risk.** This EIP creates a hard dependency between EL and CL gas-limit schedules. A divergence (EL says 90M, CL says 75M) will split the network at the fork boundary. The same risk exists today for BPO blob schedules; the same mitigations apply: schedule consistency checks at startup, devnet rehearsals, and clear off-chain coordination of `gpo` schedules. +**Herding on the schedule.** If most validators follow the schedule, the network's gas limit becomes highly predictable, which is the goal. It also means an error in a scheduled value propagates widely; scheduled values should receive the same devnet and worst-case-block testing that gas limit increases receive today (as described in [EIP-7935](./eip-7935.md)) before being added to a fork's configuration. -**Upgrade pressure.** Removing per-validator gas-limit voting removes one informal mechanism for the staking community to signal concerns about capacity. EIP authors and core devs SHOULD treat this as a reason to maintain visible, structured channels for capacity discussion (e.g., All Core Devs calls, public test results) ahead of any `gpo` fork. +**Partial adoption.** Because the field is optional, clients that do not support it keep their existing defaults, and their operators keep coordinating manually. The mechanism's coordination benefit is proportional to adoption; a mixed network is no worse than today, since non-supporting clients behave exactly as they do now. -**Privacy/MEV considerations.** Builders and relays no longer compete on or advertise gas limits. This is a small reduction in the builder-proposer interface and is not expected to affect MEV economics meaningfully, since post-fork the gas limit is the same across all blocks. +**Path to enforcement.** If the community later wants a hard guarantee that the network cannot exceed a tested envelope, a future Standards Track Core EIP can promote this schedule's value to a consensus-enforced maximum without changing the configuration format. ## Copyright From 3b0978c4df1736df0722c3a89881a91dd7e12516 Mon Sep 17 00:00:00 2001 From: kevaundray Date: Tue, 11 Aug 2026 12:25:08 +0100 Subject: [PATCH 26/53] Update EIP-7666: Add dependency on 3855 Merged by EIP-Bot. --- EIPS/eip-7666.md | 1 + 1 file changed, 1 insertion(+) diff --git a/EIPS/eip-7666.md b/EIPS/eip-7666.md index 2ee805be0bd093..6b0b4a6d131d9a 100644 --- a/EIPS/eip-7666.md +++ b/EIPS/eip-7666.md @@ -8,6 +8,7 @@ status: Draft type: Standards Track category: Core created: 2024-03-31 +requires: 3855 --- ## Abstract From f6b4668ef37612feba85aef151303f4100b79360 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Tue, 11 Aug 2026 13:26:39 +0100 Subject: [PATCH 27/53] Update EIP-8261: Clarify epoch-based activation Merged by EIP-Bot. --- EIPS/eip-8261.md | 82 +++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/EIPS/eip-8261.md b/EIPS/eip-8261.md index 3ff2c7b7f47ba2..2708b71dc5641d 100644 --- a/EIPS/eip-8261.md +++ b/EIPS/eip-8261.md @@ -1,7 +1,7 @@ --- eip: 8261 title: Gas Limit Schedule -description: Recommend an optional consensus layer gas limit schedule that serves as both the default target and the recommended maximum per fork. +description: Recommend an optional post-Gloas consensus layer gas limit schedule for epoch-based defaults and maximum recommendations. author: Barnabas Busa (@barnabasbusa) discussions-to: https://ethereum-magicians.org/t/eip-8261-gas-limit-schedule/28494 status: Draft @@ -12,19 +12,19 @@ requires: 1559, 7732, 7892, 7935 ## Abstract -This EIP recommends that consensus layer clients source their gas limit preference from a hard-fork-keyed schedule — an optional `GAS_LIMIT_SCHEDULE` field in the consensus layer `config.yaml` — instead of hardcoded, release-scoped defaults. Each fork (including BPO-style lightweight "Gas Parameter Only" forks) pins a single value that plays two roles: it is the **default** gas limit that validator clients target in the absence of operator configuration, and the **recommended maximum**. Operators remain free to configure any value; clients should warn when a configured preference exceeds the scheduled value, but honor it — the maximum is a recommendation, not a rule. The schedule lives only on the consensus layer because, starting with Gloas ([EIP-7732](./eip-7732.md)), the CL drives the gas limit: the validator's preference flows through validator registrations and the builder pipeline, with no execution layer configuration involved. No consensus rules are changed: the [EIP-1559](./eip-1559.md) ±1/1024 elasticity rule remains the only gas-limit validity rule, and blocks above or below the scheduled value remain valid. +This EIP recommends that, starting with Gloas ([EIP-7732](./eip-7732.md)), consensus layer clients source their gas limit preference from an optional `GAS_LIMIT_SCHEDULE` field in the consensus layer `config.yaml` instead of hardcoded, release-scoped defaults. Each entry activates at the start of its specified epoch and provides a value that plays two roles: it is the **default** gas limit that validator clients target in the absence of operator configuration, and the **recommended maximum**. The schedule is ignored before Gloas, preserving existing gas limit behavior. Operators remain free to configure any value; clients should warn when a configured preference exceeds the active scheduled value, but honor it because the maximum is a recommendation, not a rule. The schedule lives only on the consensus layer because post-Gloas the validator's preference flows through validator registrations and the builder pipeline, with no execution layer configuration involved. No consensus rules are changed: the [EIP-1559](./eip-1559.md) ±1/1024 elasticity rule remains the only gas-limit validity rule, and blocks above or below the scheduled value remain valid. ## Motivation Today the block gas limit is set by each block proposer, driven by validator client "preferred gas limit" settings, client default configurations, and builder bids, with the ±1/1024 elasticity rule from [EIP-1559](./eip-1559.md) moving the realized limit block by block. -The pain point this EIP addresses is that gas limit defaults are **release-scoped** rather than **fork-scoped**: a new default activates whenever an operator happens to update their node, not when the network intends the change to happen. This creates a concrete coordination problem for large increases. Suppose clients want to raise the default from 60M toward a substantially higher value for an upcoming fork: +The pain point this EIP addresses is that gas limit defaults are **release-scoped** rather than **epoch-based**: a new default activates whenever an operator happens to update their node, not at a network-coordinated epoch. This creates a concrete coordination problem for large increases. Suppose clients want to raise the default from 60M toward a substantially higher value at a future epoch: -- If clients ship the new default in releases ahead of the fork, every node updated early starts voting the gas limit up *immediately* — before the fork's other capacity-relevant changes are active and before the network has agreed the new value is safe to reach. -- The alternative — shipping the new default in a back-to-back release immediately after the fork and asking all operators to update quickly — is operationally inconvenient and slow to take effect. -- Per-fork override flags (e.g., a `post__gas_limit` option) push the coordination burden onto every individual operator. +- If clients ship the new default in releases ahead of the activation epoch, every node updated early starts voting the gas limit up *immediately*, before the network has agreed the new value is safe to reach. +- The alternative, shipping the new default in a back-to-back release immediately after the intended activation epoch and asking all operators to update quickly, is operationally inconvenient and slow to take effect. +- One-off override flags for each planned increase push the coordination burden onto every individual operator. -There is also no single place where "the gas limit the network should run at" is written down: moving the network today requires either every client team shipping a new hardcoded default, or a large share of operators updating flags, coordinated socially over months. [EIP-7935](./eip-7935.md) demonstrated that tying a default gas limit recommendation to a hard fork works; this EIP generalizes that approach into a reusable, machine-readable schedule, mirroring how [EIP-7892](./eip-7892.md) handles blob parameters with `BLOB_SCHEDULE`. +There is also no single place where "the gas limit the network should run at" is written down: moving the network today requires either every client team shipping a new hardcoded default, or a large share of operators updating flags, coordinated socially over months. [EIP-7935](./eip-7935.md) demonstrated that coordinating a default gas limit recommendation at a known epoch works; this EIP generalizes that approach into a reusable, machine-readable schedule, mirroring the epoch-based `BLOB_SCHEDULE` configuration format from [EIP-7892](./eip-7892.md). With Gloas ([EIP-7732](./eip-7732.md)), the consensus layer becomes the natural single home for this schedule: the gas limit a block is built to originates from the validator side of the builder flow, so a CL configuration entry can drive the network's gas limit end to end without any execution layer configuration. @@ -40,76 +40,88 @@ The consensus layer `config.yaml` MAY be extended with a `GAS_LIMIT_SCHEDULE` fi ```yaml GAS_LIMIT_SCHEDULE: - - EPOCH: 500000 # Activation fork (e.g., Gloas) + - EPOCH: 500000 # Gloas activation epoch GAS_LIMIT: 60000000 - - EPOCH: 520000 # A future GPO fork + - EPOCH: 520000 # A later scheduled increase GAS_LIMIT: 75000000 - - EPOCH: 540000 # A future GPO fork + - EPOCH: 540000 # Another scheduled increase GAS_LIMIT: 90000000 ``` `EPOCH` and `GAS_LIMIT` are `uint64` values; `GAS_LIMIT` matches the type of `ExecutionPayload.gas_limit` in the consensus specifications. -The field is OPTIONAL: CL clients MAY add support for it, and clients that do not recognize it ignore it, per the existing convention for unknown configuration keys. A client that is not using the parameter — because it has not implemented support, because the field is absent from its configuration, or because the duty's epoch predates the earliest schedule entry — simply keeps whatever default gas limit it used before; nothing about its behavior changes. +The field is OPTIONAL: CL clients MAY add support for it, and clients that do not recognize it ignore it, per the existing convention for unknown configuration keys. Supporting clients MUST ignore the schedule for duties before `GLOAS_FORK_EPOCH`. A client that is not using the parameter because the duty is pre-Gloas, the field is absent, or no schedule entry is active simply keeps its existing gas limit behavior. -`gpo` ("Gas Parameter Only") forks follow the same naming convention and lifecycle as BPO forks defined in [EIP-7892](./eip-7892.md): a lightweight fork whose only change is a new `GAS_LIMIT_SCHEDULE` entry. Each fork that changes the recommended gas limit adds its own entry; forks that do not change it need no new entry. +Each entry independently schedules a recommended gas limit change at its `EPOCH`. An entry MAY align with a protocol upgrade, but the schedule itself does not create or require a fork. Define: ```python -def get_scheduled_gas_limit(epoch: Epoch, config: Config) -> int: +def get_scheduled_gas_limit(epoch: Epoch, config: Config) -> Optional[int]: + if epoch < config.GLOAS_FORK_EPOCH: + return None + active_entries = [ + entry for entry in config.GAS_LIMIT_SCHEDULE + if entry.EPOCH <= epoch + ] + if not active_entries: + return None # Latest schedule entry whose EPOCH <= epoch - return max( - (entry for entry in config.GAS_LIMIT_SCHEDULE if entry.EPOCH <= epoch), - key=lambda entry: entry.EPOCH, - ).GAS_LIMIT + return max(active_entries, key=lambda entry: entry.EPOCH).GAS_LIMIT ``` ### Recommended client behavior -For CL clients that support `GAS_LIMIT_SCHEDULE`, the scheduled value serves as both the default gas limit and the recommended maximum: +For CL clients that support `GAS_LIMIT_SCHEDULE`, an active scheduled value serves as both the default gas limit and the recommended maximum: -- **Default.** When no operator preference is supplied, the client SHOULD use `get_scheduled_gas_limit(epoch)` as the gas limit preference, where `epoch` is the epoch of the slot the registration or proposal applies to. Clients supporting the schedule SHOULD NOT ship a separate hardcoded gas limit default; the schedule is the single source of defaults. -- **Recommended maximum.** If an operator-supplied preference exceeds the scheduled value, the client SHOULD honor it — since this EIP introduces no enforcement, there is nothing to enforce it against — but SHOULD log a clear warning, e.g., `configured gas limit 100000000 exceeds the recommended maximum of 90000000 for this fork`. Exceeding the recommendation is thereby a deliberate, visible operator decision rather than a silent one. +- **Default.** When no operator preference is supplied and `get_scheduled_gas_limit(epoch)` returns a value, the client SHOULD use it as the gas limit preference, where `epoch` is the epoch of the slot the registration or proposal applies to. Before Gloas or when no entry is active, the client SHOULD retain its existing default behavior. Clients SHOULD NOT introduce a separate release-scoped default for epochs covered by an active schedule entry. +- **Recommended maximum.** If an operator-supplied preference exceeds the active scheduled value, the client SHOULD honor it, since this EIP introduces no enforcement, but SHOULD log a clear warning, e.g., `configured gas limit 100000000 exceeds the recommended maximum of 90000000 at epoch 540000`. Exceeding the recommendation is thereby a deliberate, visible operator decision rather than a silent one. - **Operator preferences are always honored.** Values below the scheduled value work unchanged, as today. -- **Builders and relays.** Builders SHOULD produce, and relays SHOULD prefer, bids whose `gas_limit` does not exceed the scheduled value for the bid's slot. +- **Builders and relays.** When a schedule entry is active, builders SHOULD produce, and relays SHOULD prefer, bids whose `gas_limit` does not exceed the scheduled value for the bid's slot. -#### Fork-boundary switching +#### Epoch-based switching -The schedule only delivers its benefit if the effective default changes exactly at the fork boundary, which requires new client logic: today, gas limit defaults are read once (at startup, or when a validator registration is created) and held constant. Under this EIP, the scheduled value SHOULD be looked up per duty — against the epoch of the slot being proposed or registered for — never against wall-clock time or a value cached at startup. A node running across a fork boundary then switches its preference at the first post-fork slot with no restart, no follow-up release, and no operator action. Since validator registrations are re-issued periodically, registrations naturally roll over to a new scheduled value as duties cross the fork epoch. +The schedule only delivers its benefit if the effective default changes exactly at the configured epoch boundary, which requires new client logic: today, gas limit defaults are read once (at startup, or when a validator registration is created) and held constant. Under this EIP, the scheduled value SHOULD be looked up per duty against the epoch of the slot being proposed or registered for, never against wall-clock time or a value cached at startup. A running node then switches its preference at the first slot of the configured epoch with no restart, follow-up release, or operator action. Since validator registrations are re-issued periodically, registrations naturally roll over to a new scheduled value as duties cross the activation epoch. -Because the schedule is keyed by fork epoch, a release shipped months before a fork keeps using the current fork's value until the fork activates, then switches automatically. This makes it safe to ship large future increases well ahead of time: early updaters do not begin voting toward the new value before the fork is live. +Because the schedule is keyed by epoch, a release shipped months before an entry activates keeps using the current value until that epoch, then switches automatically. This makes it safe to ship large future increases well ahead of time: early updaters do not begin voting toward the new value before its configured activation epoch. #### The consensus layer drives the gas limit -Starting with Gloas ([EIP-7732](./eip-7732.md)), the gas limit a block is built to originates on the consensus layer side of the builder flow — the validator's preference, expressed through validator registrations and the payload bid path — rather than from execution layer configuration. The schedule therefore lives only in the CL `config.yaml`; no execution layer chain-configuration counterpart is needed, and EL gas limit flags retain their existing (pre-Gloas and local-tooling) meaning. +Starting with Gloas ([EIP-7732](./eip-7732.md)), the gas limit a block is built to originates on the consensus layer side of the builder flow — the validator's preference, expressed through validator registrations and the payload bid path — rather than from execution layer configuration. The schedule therefore lives only in the CL `config.yaml`; no execution layer chain-configuration counterpart is needed, and EL gas limit flags retain their existing pre-Gloas and local-tooling meaning. This EIP does not change gas limit selection before Gloas. Illustrative preference selection: ```python -def effective_gas_limit_preference(operator_preference: Optional[int], epoch: Epoch, config: Config) -> int: +def effective_gas_limit_preference( + operator_preference: Optional[int], + existing_default: int, + epoch: Epoch, + config: Config, +) -> int: scheduled = get_scheduled_gas_limit(epoch, config) + if scheduled is None: + return operator_preference if operator_preference is not None else existing_default if operator_preference is None: return scheduled if operator_preference > scheduled: log.warning( f"configured gas limit {operator_preference} exceeds the recommended " - f"maximum of {scheduled} for this fork" + f"maximum of {scheduled} at epoch {epoch}" ) return operator_preference ``` -The realized network gas limit continues to move under the [EIP-1559](./eip-1559.md) ±1/1024 rule, so a scheduled increase plays out as a gradual, bounded ramp starting at the fork boundary rather than an instant step. +The realized network gas limit continues to move under the [EIP-1559](./eip-1559.md) ±1/1024 rule, so a scheduled increase plays out as a gradual, bounded ramp starting at the activation epoch rather than an instant step. ## Rationale -### Why fork-scoped defaults instead of release-scoped defaults? +### Why epoch-based defaults instead of release-scoped defaults? -Keying the default on the duty's epoch rather than the release version decouples *shipping* a new gas limit from *activating* it — the same property hard forks already provide for every other parameter. This directly resolves the large-increase dilemma described in the Motivation: clients can ship the schedule entry for a big raise arbitrarily early, and no node will begin voting toward it until the fork (with whatever accompanying changes make the raise safe) is live. +Keying the default on the duty's epoch rather than the release version decouples *shipping* a new gas limit from *activating* it. This directly resolves the large-increase dilemma described in the Motivation: clients can ship the schedule entry for a big raise arbitrarily early, and no node will begin voting toward it until the configured epoch. An entry can align with a hard fork when desired, but the mechanism itself is only an epoch-based client configuration. ### Why one value for both the default and the recommended maximum? -The number the community coordinates on — "the gas limit for this fork" — is the number the network runs at and the number operators are asked not to exceed. A single dial means there is no second parameter to negotiate or get out of sync, and no untested operating region between a default and a higher ceiling. Operators who want to run below it can; running above it is possible (nothing in consensus prevents it) but happens against a clear warning, which is a much stronger signal than today's silently configurable free-for-all. +The number the community coordinates on for an epoch is the number the network runs at and the number operators are asked not to exceed. A single dial means there is no second parameter to negotiate or get out of sync, and no untested operating region between a default and a higher ceiling. Operators who want to run below it can; running above it is possible (nothing in consensus prevents it) but happens against a clear warning, which is a much stronger signal than today's silently configurable free-for-all. ### Why does the schedule live only on the consensus layer? @@ -119,7 +131,7 @@ Post-Gloas, the CL is authoritative for the gas limit in practice: the validator An earlier draft of this EIP made the scheduled value a consensus-enforced maximum (and, before that, an exact-match requirement). This version is deliberately advisory: -- **Adoptability.** A recommendation requires no fork, no engine API changes, and no coordination risk. The configuration field is optional, so CL teams can adopt it independently and incrementally, and it can accompany any fork as an informational companion, as [EIP-7935](./eip-7935.md) did. +- **Adoptability.** A recommendation requires no fork, no engine API changes, and no coordination risk. The configuration field is optional, so CL teams can adopt it independently and incrementally, and entries can activate at any coordinated post-Gloas epoch. - **Validator sovereignty is preserved.** Gas limit choice remains, in the limit, with proposers — this EIP changes the *defaults and social convention* around that choice, not the protocol. - **It solves the actual coordination problem.** The premature-voting and back-to-back-release problems are default-management problems, and defaults are client behavior. Consensus enforcement addresses a different (drift-above-tested-envelope) risk, and can be pursued later as a separate Core EIP layered on the same schedule if the community wants it. @@ -129,17 +141,17 @@ Clamping a preference down to the scheduled value would be enforcement — just ### Relationship to EIP-7935 -[EIP-7935](./eip-7935.md) recommended a single default (60M) tied to a single fork (Fusaka). This EIP generalizes that one-off into a standing, machine-readable schedule so that every future change — including lightweight `gpo` forks — reuses the same mechanism instead of requiring a new EIP and a fresh round of client-default coordination. +[EIP-7935](./eip-7935.md) recommended a single default (60M) tied to Fusaka's activation. This EIP generalizes that one-off into a standing, machine-readable epoch schedule so future changes reuse the same mechanism instead of requiring a new EIP and a fresh round of client-default coordination. ## Backwards Compatibility -No consensus rules change and no blocks become invalid. Existing operator settings keep working; the only behavioral changes, in CL clients that opt into the schedule, are that unconfigured validators derive their gas limit preference from the schedule instead of a hardcoded constant, and configured values above the scheduled maximum produce a warning (but are honored). CL clients that do not adopt the field, and all EL clients, are unaffected. Tooling that reads `block.gas_limit` is unaffected. +No consensus rules change and no blocks become invalid. Pre-Gloas behavior and existing operator settings remain unchanged. For post-Gloas duties covered by an active schedule entry, unconfigured validators derive their gas limit preference from the schedule instead of a hardcoded constant, and configured values above the scheduled maximum produce a warning but are honored. CL clients that do not adopt the field, and all EL clients, are unaffected. Tooling that reads `block.gas_limit` is unaffected. ## Security Considerations **The ceiling is advisory.** Nothing in consensus prevents a proposer from exceeding the scheduled value, so this EIP does not protect against a deliberately non-conforming actor. It does protect against the accidental paths — a default shipped early, a stale setting, an uncoordinated bump — which historically are how unintended gas limit movement happens. The ±1/1024 elasticity rule further rate-limits how fast any actor, conforming or not, can move the realized limit. -**Herding on the schedule.** If most validators follow the schedule, the network's gas limit becomes highly predictable, which is the goal. It also means an error in a scheduled value propagates widely; scheduled values should receive the same devnet and worst-case-block testing that gas limit increases receive today (as described in [EIP-7935](./eip-7935.md)) before being added to a fork's configuration. +**Herding on the schedule.** If most validators follow the schedule, the network's gas limit becomes highly predictable, which is the goal. It also means an error in a scheduled value propagates widely; scheduled values should receive the same devnet and worst-case-block testing that gas limit increases receive today (as described in [EIP-7935](./eip-7935.md)) before being added to a network's configuration. **Partial adoption.** Because the field is optional, clients that do not support it keep their existing defaults, and their operators keep coordinating manually. The mechanism's coordination benefit is proportional to adoption; a mixed network is no worse than today, since non-supporting clients behave exactly as they do now. From 169a65510927f58bdafdc67e840d53020e7a91ca Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Tue, 11 Aug 2026 15:41:12 +0200 Subject: [PATCH 28/53] Update EIP-8371: clarify individual blob retrieval aspect Merged by EIP-Bot. --- EIPS/eip-8371.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-8371.md b/EIPS/eip-8371.md index 9cdf48fe3b522f..329268ef949fe1 100644 --- a/EIPS/eip-8371.md +++ b/EIPS/eip-8371.md @@ -121,7 +121,11 @@ Finally, it does not directly help L2 nodes retrieve individual blobs (although ### Possible extension to retrieve individual blobs -With the introduction of PeerDAS, L2 nodes have the problem that retrieving a specific blob from a CL client requires them to either be a supernode, or to download it on request through columns. By introducing row topics with allocation rooted in the nodeID, it is easier for nodes to identify which node they can download the relevant blob from. We reserve this for further consideration. +Rollup nodes need the contents of their own rollup's blobs — typically a few per block — to derive L2 state. PeerDAS sharded the DAS matrix by column, while the consumer's unit of interest is a row: an ordinary node holds a few cells of every blob and the entirety of none. Today, an L2 node either finds the blob in the local execution layer via `getBlobs` (which fails for private blobs and past the mempool window), runs a supernode (paying full-blobspace bandwidth to retrieve a few blobs), or fetches on demand through column-granular request-response, downloading 64 columns — the full width of the blobspace, half its depth — to extract a single row. + +RowDAS does not define a retrieval protocol, but it makes targeted retrieval *addressable*: from `(slot, blob_index)`, anyone can compute the blob's row subnet, and from discovered node IDs, anyone can compute which nodes participate in it — a deterministically identifiable set of nodes that plausibly hold the complete row, with no lookup infrastructure. + +Turning this into actual retrieval is left to a future proposal, as it needs pieces that are out of scope here: a cell-granular request-response method (request specific cells of a specific row), a retention window during which row subnet members serve their rows (a deliberate revision of this EIP's no-custody-obligation stance, at a modest, evenly rotating storage cost of `blob_count / ROW_SUBNET_COUNT` rows per slot), and ideally resolution behind the existing APIs, so that a CL client can fetch, reconstruct, and return any requested blob without its operator running a supernode. ### Design decisions @@ -141,7 +145,7 @@ Tying the subnet count to the maximum blob count would change every node's subne The constant is chosen to keep the expected number of nodes per subnet in a healthy band across plausible participation scenarios. Since each node subscribes to a single row subnet, the expected team size behind a subnet is the number of participating nodes divided by `ROW_SUBNET_COUNT`. This team size has a floor: it must stay several times the Gossipsub mesh degree (accounting for the binomial spread of hash-based assignment and for churn), and it should give a high probability of at least one row reconstructor — a node with a mandatory 1st-phase duty — per subnet. Pushing the constant higher than needed thins subnets towards this floor, while a lower constant increases traffic duplication, as each active subnet's row flows to its entire team. -With approx. 12K nodes and 3K supernodes on mainnet, `ROW_SUBNET_COUNT = 128` yields ~94 nodes and ~23 supernodes per subnet at full participation, and remains workable even at partial early adoption of Cell-Level Deltas. The value is also above currently planned maximum blob counts, so in practice each subnet carries at most one row per slot, while the construct remains well defined for higher blob counts: per-node row load is bounded by `ceil(blob_count / ROW_SUBNET_COUNT)` rows per slot. If the network size changes by an order of magnitude, raising or lowering the constant remains possible, at the cost of a one-time reshuffle of subnet assignments. +With approx. 12K nodes on mainnet, of which approx. 2K are supernodes and approx. 500 more custody 64-127 columns (approx. 2.5K row reconstructors in total), `ROW_SUBNET_COUNT = 128` yields ~94 nodes and ~20 row reconstructors per subnet at full participation, and remains workable even at partial early adoption of Cell-Level Deltas. The value is also above currently planned maximum blob counts, so in practice each subnet carries at most one row per slot, while the construct remains well defined for higher blob counts: per-node row load is bounded by `ceil(blob_count / ROW_SUBNET_COUNT)` rows per slot. If the network size changes by an order of magnitude, raising or lowering the constant remains possible, at the cost of a one-time reshuffle of subnet assignments. **Why a pseudo-random per-slot permutation, and not a simple rotation?** @@ -149,7 +153,7 @@ With fewer rows than subnets, some subnets are idle in a given slot, so the mapp **Why only a single row, and why is it not dependent on custody?** -As of August 2026, mainnet has approx. 12K nodes of which 3K are supernodes. The latter is much more than what we expected initially. With current and planned blob counts, even a single row creates abundant overlap. +As of August 2026, mainnet has approx. 12K nodes, of which approx. 2K are supernodes custodying all 128 columns, and approx. 500 more custody 64-127 columns, qualifying them as row reconstructors. This is much more than what we expected initially. With current and planned blob counts, even a single row creates abundant overlap. ## Backwards Compatibility From f4d742b9538605bd8e8cae44e17ba45dfc034e88 Mon Sep 17 00:00:00 2001 From: pintail-xyz <192824+pintail-xyz@users.noreply.github.com> Date: Tue, 11 Aug 2026 17:34:26 +0100 Subject: [PATCH 29/53] Add EIP: Tapered Issuance Burn Merged by EIP-Bot. --- EIPS/eip-8363.md | 408 ++++++ assets/eip-8363/issuance-curve.svg | 1807 ++++++++++++++++++++++++ assets/eip-8363/operator-threshold.svg | 1795 +++++++++++++++++++++++ assets/eip-8363/transition.gif | Bin 0 -> 680471 bytes assets/eip-8363/yield-curve.svg | 1599 +++++++++++++++++++++ 5 files changed, 5609 insertions(+) create mode 100644 EIPS/eip-8363.md create mode 100644 assets/eip-8363/issuance-curve.svg create mode 100644 assets/eip-8363/operator-threshold.svg create mode 100644 assets/eip-8363/transition.gif create mode 100644 assets/eip-8363/yield-curve.svg diff --git a/EIPS/eip-8363.md b/EIPS/eip-8363.md new file mode 100644 index 00000000000000..6c90e8f1db6cc9 --- /dev/null +++ b/EIPS/eip-8363.md @@ -0,0 +1,408 @@ +--- +eip: 8363 +title: Tapered Issuance Burn +description: Burn a fraction of validator rewards that rises with the staking ratio, removing the issuance incentive to stake more than 50% of all ETH +author: pintail (@pintail-xyz), Jérôme de Tychey (@jdetychey), dapplion (@dapplion), pa7x1 (@pa7x1), Ladislaus von Daniels (@ladidan), Justin Drake (@justindrake) +discussions-to: https://ethereum-magicians.org/t/eip-8363-tapered-issuance-burn/29263 +status: Draft +type: Standards Track +category: Core +created: 2026-07-14 +--- + +## Abstract + +This EIP introduces a **tapered issuance burn**: at each epoch boundary each validator is charged a deduction for every duty it was assigned (attestation, block proposal, sync committee participation), sized as a fraction of the idealised reward for that duty, and the deducted ETH is burned. The burn fraction tapers linearly with the staking ratio, reaching 100% at a fixed *saturation balance*, so net staking yield declines as more ETH is staked. This removes the yield floor implicit in the current curve, letting the staking market settle where the yield meets the risk premium stakers demand. For a positive premium, this occurs at a staking ratio below 50%, beyond which issuance no longer incentivises further stake growth. + +Applied in full at the fork, the burn would reduce yields sharply at today's staking ratio, so the reduction is phased in over an 18-month transition by temporarily raising `BASE_REWARD_FACTOR`, which scales rewards, penalties, and the burn together. Net yield therefore begins close to today's level and moves gradually to the permanent curve, with the balance between micro-incentives preserved throughout. The taper's *shape*, however, is in full effect from activation: from day one, issuance no longer rewards growth beyond a 50% staking ratio. + +## Motivation + +The choice between staking and simply holding ETH is made on the gap between the yields the two options offer and the risks each carries. For staking these include liquidity, slashing, operational, and regulatory risks; liquid staking exchanges some of these for risks attaching to the token issuer, whether smart-contract and governance risks for on-chain protocols or counterparty risk for a centralised provider. Stake is therefore expected to keep flowing in for as long as the net incentive to stake, given by the nominal yield, exceeds the premium the marginal staker demands for bearing those risks. The staking market reaches equilibrium only if the nominal yield falls to the level of the staking risk premium. This risk premium is trending down owing to the maturity of staking setups at the infrastructure, smart contract and software level. Furthermore, the credibility of slashing is negatively impacted by large amounts of ETH at stake, further weighing on the staking risk premium. + +Under the current issuance curve there is no point at which the incentive to stake switches off: the yield falls only as $1/\sqrt{f}$ in the staking ratio $f$, and retains a floor of roughly 1.5% however much ETH is staked. Where stake growth comes to rest therefore depends on the marginal staker's risk premium staying above that floor. There is reason to think the premium may continue to fall: as the staking ecosystem matures, trusted low-friction custodians such as ETF providers emerge, and tooling and liquid staking reduce the costs and risks that justify it. Meanwhile, since issuance increases with staking ratio, dilution costs to unstaked ETH holders increase, adding greater incentive to stake to avoid this dilution. + +A drift toward a very high staking ratio is undesirable for two distinct reasons, which correspond to the two goals of this proposal: preserving Ethereum's **security, neutrality and resistance to capture**, and protecting **ETH's role as money**. + +### Security, neutrality, and resistance to capture + +Beyond a certain level, additional stake makes Ethereum *less* secure, not more: the marginal contribution of new stake to economic security falls as the ratio rises, while several risks compound. As an ever-larger share of the ETH supply is held by custodians and staking providers rather than its owners, the social layer is deprived of its ability to hold large operators to account, while solo stakers are forced out. + +- **Stake concentration leads to moral hazard.** A large operator that misbehaves can degrade consensus for its own gain, and its delegators bear the loss if slashing follows. This is a risk that should be priced by delegators, increasing the effective cost of delegated staking. But whenever one event puts a large share of the supply at risk (for example, a slashing event, or an exploit of the operator's own systems) the holders with most to lose are also the best resourced and best organised to coordinate a fork reversing it. The DAO rescue ([EIP-779](./eip-779.md)) is the precedent for the social layer overriding protocol rules at that scale. A dominant operator could therefore come to be treated as "too big to fail". The resulting moral hazard is self-reinforcing: anticipating rescue rather than ruin, delegators stop demanding compensation for tail risk, the discount makes the largest operators cheaper to stake with, and stake concentrates further still. +- **The social layer loses its backstop.** Meanwhile, a fork that *should* happen becomes much harder to coordinate: "social slashing" of a colluding coalition can only succeed if the wider economy coordinates on the forked chain. Since most ETH holders cannot run validators themselves, the incentive toward ever-higher staking participation pushes an ever-larger share of the supply into custody with a handful of exchanges, ETFs, and staking service providers. With the owners of ETH no longer in full control of it ("not your keys, not your coins"), the credibility of a fork which implements social slashing, and therefore its deterrent effect, is diminished. +- **Solo stakers are forced out.** Dilution erodes everyone's real return as the ratio climbs, but solo stakers, who in most jurisdictions pay income tax on their *nominal* yield, cross into negative dilution-adjusted returns well before large operators and holders of tax-shielded positions do (this includes accumulating exchange traded products (ETPs) and non-rebasing or wrapped liquid staking tokens (LSTs)). + +The consequence is the capture of both the validator set and the ETH supply by a small group of actors who are at much greater risk of coercion, undermining core Ethereum properties of neutrality and censorship resistance. + +Nothing in the current curve arrests these trends. Because total issuance keeps rising as the staking ratio climbs, a large operator's income grows with every validator it adds. This applies equally at every operator size, and at every staking ratio. Under this proposal increasing size is not rewarded, and this applies soonest for the largest operators, as set out in [The effect on large operators](#the-effect-on-large-operators). + +### ETH as money + +Within the Ethereum economy ETH is not only the asset that secures the chain and pays for blockspace. It is also that economy's money: its default collateral, unit of account, and medium of exchange. Performing those functions earns ETH a monetary premium, giving it value beyond what its use as a fee asset alone would command. + +Monetary premium benefits ETH holders, but its significance is not confined to them. Economic security depends directly on the value of ETH: the cost of attacking Ethereum is the market value of the stake an attacker must acquire and forfeit, so a higher ETH price places a greater real value at slashing risk behind the same quantity of stake. This is security that scales with the value of ETH rather than with the quantity of it staked, and it carries none of the risks set out above. The existing issuance curve, however, undermines the monetary role on which that premium rests: + +- **Excess issuance taxes holders.** Issuance to the staked base operates as a continuous dilution tax on holders of unstaked ETH, eroding the scarcity and monetary premium that underpin its value as money. This forces on every holder an artificial choice: accept the dilution, or take on the costs and risks of staking merely to avoid it. Neither leaves ETH functioning as neutral money: the first taxes holding it, the second makes holding it conditional on running infrastructure or trusting somebody who does. +- **Staking derivatives displace ETH itself.** At high staking ratios, yield-bearing LSTs and other staking derivatives come to dominate raw ETH as collateral and medium of exchange within the Ethereum economy, displacing the most neutral, permissionless, trustless asset available with intermediated claims on staked ETH. At a high staking ratio, holding unstaked ETH means accepting dilution, so the yield-bearing form is preferred for collateral, settlement, and savings alike, and each application that adopts it raises the cost of not adopting it. In consequence, liquidity fragments across competing derivatives and slippage rises on decentralised exchanges, while every application that settles in a staking derivative inherits its issuer's smart-contract, counterparty, and governance risk. +- **The social layer gains a dependency.** Once one or more ETH derivatives become the ecosystem's working money, the social layer becomes dependent on outside organisations, the derivatives they issue, and their governance processes. The applications that power the money thereby acquire outsized influence over the applications that use the money, making Ethereum a less desirable blockchain to build and develop on. + +By removing the issuance incentive for further stake growth, this proposal keeps issuance itself bounded: it peaks at a staking ratio of roughly 20% and falls beyond that point, settling at the ratio where yield equals the compensation stakers require for the costs and risks they bear. Each staking derivative then faces stronger competition from non-staked ETH, keeping a trustless asset at the foundation of the ecosystem. On the supply side of the ledger, the tapered burn complements the fee burn of [EIP-1559](./eip-1559.md). Together they protect the monetary role of unstaked ETH, and with it the real value of the stake that secures the chain. + +### Restoring an equilibrium + +This EIP proposes the minimal change needed to ensure that the issuance mechanism no longer drives stake growth beyond a 50% staking ratio: after computing rewards exactly as today, deduct from each validator a fraction of the idealised reward for each assigned duty, with that fraction tapering linearly in the staking ratio up to a fixed saturation point. The deducted ETH is not credited anywhere and is therefore in effect burned. At the 50% saturation ratio the burn cancels the issuance a validator earns for performing its duties. It therefore meets any positive risk premium at a staking ratio strictly below 50%, and the level of that premium is what fixes the equilibrium. + +The two goals are served by different aspects of this change. The **security and capture-resistance** goal is met by the *shape* of the tapered curve: with the burn fully cancelling issuance at 50%, issuance no longer incentivises staking beyond that ratio. The **ETH-as-money** goal is served additionally by the *level* of issuance. This proposal bounds it below today's curve, so that holders of ETH do not overpay for security through dilution. + +The reduction is phased in over an 18-month transition, during which the effective base reward factor decays from twice its current value back to today's, limiting the impact on existing stakers at activation. The tapered *shape* is nonetheless in full effect from the moment the transition begins: immediately after the fork, the issuance mechanism no longer rewards growth in the staking ratio beyond 50%, so the market has an equilibrium below that point. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) and [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174). + +Let $D$ denote `get_total_active_balance(state)` in Gwei, and let `SATURATION_BALANCE` (Gwei, $D_\text{sat}$) be a fixed constant set at the hard fork to approximately half the ETH supply. Define the **burn fraction** $b = \left(\frac{D}{D_\text{sat}}\right)^{3/2}$, clamped so that $b \le 1$. + +For each validator duty, a deduction of $b$ times the idealised reward for that duty MUST be applied (via `decrease_balance`) to every validator assigned the duty, immediately after rewards and penalties are applied for the epoch; the deducted ETH is destroyed. The deduction MUST be a function of effective balance and total active balance only — it is charged whether or not the duty was performed. The attestation portion of the deduction MUST be suspended while the chain is in an inactivity leak. + +The only modification to the existing rewards machinery is temporary: `get_base_reward_per_increment` MUST read a time-varying *effective* base reward factor that starts at `TRANSITION_BASE_REWARD_FACTOR` (128) and decays linearly to `BASE_REWARD_FACTOR` (64) over `TRANSITION_DURATION_EPOCHS` (≈ 18 months). Because both rewards and the burn's reference rewards derive from `get_base_reward_per_increment`, this elevation scales the whole schedule — rewards, penalties, and burn — uniformly, so the balance between them is preserved. Once the transition completes the effective factor is permanently 64, and `process_rewards_and_penalties` behaves exactly as it does today. + +### Constants + +The following constants are added: + +| Name | Value | Notes | +|---|---|---| +| `SATURATION_BALANCE` | `Gwei(60_250_000 * 10**9)` | Total active balance $D_\text{sat}$ at which the burn fraction reaches 100%; set at the hard fork to approximately half the current ETH supply | +| `TRANSITION_BASE_REWARD_FACTOR` | `Uint64(128)` | Effective base reward factor at the start of the transition — twice `BASE_REWARD_FACTOR` — decaying linearly to `BASE_REWARD_FACTOR` over the transition | +| `TRANSITION_START_EPOCH` | `Epoch(...)` | Epoch at which the transition begins; set at the hard fork to the activation epoch | +| `TRANSITION_DURATION_EPOCHS` | `Epoch(123_300)` | Transition length; $123{,}300 = 548 \times 225$ epochs $\approx 18$ months (225 epochs per day) | + +`SATURATION_BALANCE` is expressed as a balance rather than as the ratio $f_\text{sat}$ because the protocol observes `get_total_active_balance(state)` directly but has no notion of total ETH supply, so $f$ is not something the state transition can compute. Fixing $D_\text{sat} = f_\text{sat}\,S$ at the hard fork, using the supply at that time, means the effective saturation ratio drifts slowly as supply changes thereafter; the drift is small over any reasonable horizon, and a future EIP that made the protocol aware of total supply could recover $D_\text{sat}$ from $f_\text{sat}\,S$ directly. + +### Helper functions + +`get_issuance_burn` applies the burn fraction to a reward. It is expressed as the cube of a square-root ratio so that it can be computed as three successive `Uint64` multiply-divides, keeping every intermediate value within `Uint64` — consistent with the rest of the reward machinery, which never forms a value wider than 64 bits. The two square roots are computed once per epoch by the caller and passed in. + +```python +def get_issuance_burn(reward: Gwei, sqrt_active: Uint64, sqrt_sat: Uint64) -> Gwei: + # reward * (sqrt_active / sqrt_sat)**3 == reward * (D / SATURATION_BALANCE)**(3/2) + burn = Uint64(reward) + for _ in range(3): + burn = burn * sqrt_active // sqrt_sat + return Gwei(burn) +``` + +`get_participating_increments` returns the participating balance per attestation flag, the quantity `get_flag_index_deltas` scales each flag's reward by. It sums effective balances directly rather than calling `get_total_balance`, whose `max(EFFECTIVE_BALANCE_INCREMENT, ...)` floor exists to keep existing reward denominators from dividing by zero: here the quantity is a numerator, and an empty flag set must contribute nothing rather than a phantom increment. Effective balances are always whole multiples of `EFFECTIVE_BALANCE_INCREMENT`, so this changes no non-empty result. The floor remains in use for `get_total_active_balance`, where it is still needed as a divisor. + +The flags are kept separate rather than pre-summed because the existing machinery floors each flag's reward to Gwei independently. Summing the weighted participation first and flooring once yields $\lfloor x_s + x_t + x_h \rfloor$, which exceeds $\lfloor x_s \rfloor + \lfloor x_t \rfloor + \lfloor x_h \rfloor$ by up to 2 Gwei; at saturation, where the deduction equals its basis exactly, that difference would come out of a faultless validator's principal. + +```python +def get_participating_increments(state: BeaconState, epoch: Epoch) -> Sequence[Uint64]: + increments = [] + for flag_index in range(len(PARTICIPATION_FLAG_WEIGHTS)): + indices = get_unslashed_participating_indices(state, flag_index, epoch) + increments.append(Uint64(sum( + state.validators[index].effective_balance // EFFECTIVE_BALANCE_INCREMENT + for index in indices + ))) + return increments +``` + +`get_attestation_participation` collapses those into the single weighted total that `process_attestation` forms as its `proposer_reward_numerator`. Proposer issuance takes one floor over the whole weighted sum, so pre-summing is correct there. + +```python +def get_attestation_participation(state: BeaconState, epoch: Epoch) -> Uint64: + return Uint64(sum( + weight * increments + for weight, increments + in zip(PARTICIPATION_FLAG_WEIGHTS, get_participating_increments(state, epoch)) + )) +``` + +This EIP also relies on one lookup not present in the current specification: `get_beacon_proposer_index_at_slot`, the existing `get_beacon_proposer_index` generalised to an arbitrary slot in the epoch. + +### The base reward factor transition + +`get_base_reward_factor` returns the effective base reward factor for an epoch: `TRANSITION_BASE_REWARD_FACTOR` at the start of the transition, decaying linearly to `BASE_REWARD_FACTOR` over `TRANSITION_DURATION_EPOCHS`, and permanently `BASE_REWARD_FACTOR` thereafter. Because the factor is an integer, the decay is a staircase of 65 steps, each lasting `TRANSITION_DURATION_EPOCHS` divided by the boost — about 1,927 epochs, or 8.6 days. Each step moves the whole schedule by under one part in sixty-four, and moves rewards, penalties and the burn together, so the balance between them is unaffected. + +```python +def get_base_reward_factor(epoch: Epoch) -> Uint64: + # Elevated during the transition to cushion the yield reduction, decaying + # linearly from TRANSITION_BASE_REWARD_FACTOR at TRANSITION_START_EPOCH to + # BASE_REWARD_FACTOR after TRANSITION_DURATION_EPOCHS. Permanently + # BASE_REWARD_FACTOR — today's value — once the transition completes. + if epoch <= TRANSITION_START_EPOCH: + return TRANSITION_BASE_REWARD_FACTOR + elapsed = epoch - TRANSITION_START_EPOCH + if elapsed >= TRANSITION_DURATION_EPOCHS: + return BASE_REWARD_FACTOR + remaining = Uint64(TRANSITION_DURATION_EPOCHS - elapsed) + boost = Uint64(TRANSITION_BASE_REWARD_FACTOR - BASE_REWARD_FACTOR) + duration = Uint64(TRANSITION_DURATION_EPOCHS) + return BASE_REWARD_FACTOR + (boost * remaining + duration // 2) // duration +``` + +`get_base_reward_per_increment` is modified to use this factor in place of the `BASE_REWARD_FACTOR` constant; this is the sole change to the existing rewards machinery, and it reverts to today's behaviour once the transition completes: + +```python +def get_base_reward_per_increment(state: BeaconState) -> Gwei: + active = get_total_active_balance(state) + factor = get_base_reward_factor(get_current_epoch(state)) + return Gwei(EFFECTIVE_BALANCE_INCREMENT * factor // integer_squareroot(active)) +``` + +### Beacon chain state transition + +A new step, `process_issuance_burn`, MUST be added to `process_epoch` immediately after `process_rewards_and_penalties` and before `process_effective_balance_updates`. Running it there means effective balances still hold the epoch's values, so the proposer burn below charges exactly the proposers that were selected during the epoch. Each duty is charged where its issuance is paid: the attestation and proposer burns in this new epoch step, the sync committee burn in `process_sync_aggregate`. + +- **Attestation burn**: a burn of $b$ times the attestation reward a perfect attester earned, applied to every validator that was active in the previous epoch. That set, rather than the currently active one, is what `process_rewards_and_penalties` has just paid: it settles the previous epoch's attestations over `get_eligible_validator_indices`; +- **Proposer burn**: a burn of $b$ times an equal share of the epoch's proposer issuance, charged to each of the 32 proposers. Its basis reads participation from the *current* epoch, not the previous one: proposer rewards were credited during this epoch as its blocks included attestations and sync aggregates, so the current epoch's participation is what they were paid on; +- **Sync committee burn**: a burn of $b$ times the sync committee reward for each block, charged to each of the 512 sync committee members. Because sync committee rewards are paid per block rather than per epoch, this deduction is applied in `process_sync_aggregate` rather than in the epoch step. + +Each basis MUST be sized on the issuance the duty actually paid, not on what it would have paid under perfect network conditions: the attestation and proposer bases scale with the participating balance, and the sync committee burn is levied only when a block exists to pay the reward it offsets. Every one of those factors is a network-wide aggregate, so no deduction depends on the behaviour of the validator paying it; see [Why the burn uses idealised rewards](#why-the-burn-uses-idealised-rewards). + +Splitting the burn by duty, rather than applying a single uniform per-validator deduction, keeps the variance between validators low despite the rare duties of proposal and sync committee participation. Every deduction reads `base` from `get_base_reward_per_increment`, so during the transition all three scale with the elevated effective factor automatically, and no further change is needed. Only the attestation pass is suspended during an inactivity leak, for the reasons given in [Why the burn uses idealised rewards](#why-the-burn-uses-idealised-rewards). + +```python +def process_issuance_burn(state: BeaconState) -> None: + # Clamping sqrt_active to sqrt_sat keeps the burn fraction at or below 1. + sqrt_sat = integer_squareroot(SATURATION_BALANCE) + sqrt_active = min(integer_squareroot(get_total_active_balance(state)), sqrt_sat) + increment = EFFECTIVE_BALANCE_INCREMENT + base = get_base_reward_per_increment(state) + epoch = get_current_epoch(state) + previous_epoch = get_previous_epoch(state) + n_total = get_total_active_balance(state) // increment + attest_weight = TIMELY_SOURCE_WEIGHT + TIMELY_TARGET_WEIGHT + TIMELY_HEAD_WEIGHT + + # Both burns are sized on the balance that attested, each taken from the + # epoch whose issuance it offsets: process_rewards_and_penalties has just + # settled the previous epoch's attestations, while proposer rewards were + # credited during the current epoch, as its blocks included attestations. + flag_increments = get_participating_increments(state, previous_epoch) + proposer_participation = get_attestation_participation(state, epoch) + + # 1. Attestation burn — the validators active in the previous epoch, which + # is the set process_rewards_and_penalties has just paid. Each flag is + # floored separately, with the same numerator, denominator and order as + # get_flag_index_deltas, so the basis equals a perfect attester's reward + # exactly rather than exceeding it by the rounding of the three flags. + # Suspended during an inactivity leak, when attestation rewards are + # withheld entirely. + if not is_in_inactivity_leak(state): + for index in get_active_validator_indices(state, previous_epoch): + n = state.validators[index].effective_balance // increment + attest_reward = Gwei(sum( + n * base * weight * participating // (n_total * WEIGHT_DENOMINATOR) + for weight, participating + in zip(PARTICIPATION_FLAG_WEIGHTS, flag_increments) + )) + burn = get_issuance_burn(attest_reward, sqrt_active, sqrt_sat) + decrease_balance(state, index, burn) + + # 2. Proposer burn — the 32 proposers of the epoch. Proposer rewards are + # paid during a leak, so this pass is never suspended. A proposer is + # paid from two sources, and the basis carries both explicitly rather + # than relying on the two shares summing to PROPOSER_WEIGHT: its share + # of the attestation rewards it includes, per process_attestation, and + # its share of the sync committee reward, per process_sync_aggregate. + # Sync participation is not accumulated in the state, so attestation + # participation stands in for it; the error vanishes when the two + # streams agree and is bounded by 3.57% of the proposer component. + attestation_component = ( + base * proposer_participation + // ((WEIGHT_DENOMINATOR - PROPOSER_WEIGHT) * WEIGHT_DENOMINATOR // PROPOSER_WEIGHT) + ) + sync_component = ( + base * proposer_participation * SYNC_REWARD_WEIGHT * PROPOSER_WEIGHT + // (attest_weight * WEIGHT_DENOMINATOR * (WEIGHT_DENOMINATOR - PROPOSER_WEIGHT)) + ) + ideal_proposer_reward = Gwei( + (attestation_component + sync_component) // SLOTS_PER_EPOCH + ) + proposer_burn = get_issuance_burn( + ideal_proposer_reward, sqrt_active, sqrt_sat + ) + start_slot = compute_start_slot_at_epoch(epoch) + for slot in range(start_slot, start_slot + SLOTS_PER_EPOCH): + proposer = get_beacon_proposer_index_at_slot(state, Slot(slot)) + decrease_balance(state, proposer, proposer_burn) +``` + +The sync committee burn is applied in block processing instead, because sync committee rewards are paid per block. `process_sync_aggregate` MUST be modified to deduct $b$ times `participant_reward` from every committee member, alongside the rewards and penalties it already applies: + +```python +def process_sync_aggregate(state: BeaconState, sync_aggregate: SyncAggregate) -> None: + # ... signature verification and reward computation unchanged, yielding + # participant_reward, proposer_reward and committee_indices ... + + # Burn the tapered fraction of the sync committee issuance for this block. + sqrt_sat = integer_squareroot(SATURATION_BALANCE) + sqrt_active = min(integer_squareroot(get_total_active_balance(state)), sqrt_sat) + sync_burn = get_issuance_burn(participant_reward, sqrt_active, sqrt_sat) + + # Apply participant and proposer rewards + for participant_index, participation_bit in zip( + committee_indices, sync_aggregate.sync_committee_bits, strict=True + ): + if participation_bit: + increase_balance(state, participant_index, participant_reward) + increase_balance(state, get_beacon_proposer_index(state), proposer_reward) + else: + decrease_balance(state, participant_index, participant_reward) + decrease_balance(state, participant_index, sync_burn) +``` + +The deduction sits outside the participation branch, so it is charged to every committee member whether or not it participated: were only participants charged, a member could avoid the burn by abstaining, and the balance difference between participating and not would fall from twice `participant_reward` to $(2-b)$ times it. The proposer's share of the sync reward is deliberately left alone, since a deduction contingent on having produced a block would weaken the incentive to propose; it remains covered by the proposer pass above. + +The dominant new cost is one O(1)-per-validator deduction (the attestation burn), whose basis is three multiply-divides rather than one because each flag is floored separately. That deduction is foldable into the existing rewards/penalties pass, which already walks the same previous-epoch flags. The proposer pass adds a fixed pass over the 32 proposers, and the sync committee deduction adds one balance update per member to a loop `process_sync_aggregate` already runs. The one genuinely new traversal is `get_participating_increments` over the *current* epoch, needed for the proposer basis: no existing step in `process_epoch` totals current-epoch participating balance, so this is an additional walk of the participation flags that cannot be folded into existing work. + +## Rationale + +### Why a burn + +An alternative route to lower issuance would be to redesign the reward curve itself. The burn approach in this proposal is to be preferred, for the following reasons: + +- **A single parameter, with a natural value.** Reward curves engineered to exhibit several desirable properties at once (a cap on total issuance, a yield floor, a target ratio) tend to introduce several new parameters, each of which must be set and defended. The burn introduces exactly one, `SATURATION_BALANCE`, and its value has a natural focal point: half the ETH supply. (Temporary parameters are introduced to specify the transition, but `SATURATION_BALANCE` is the only permanently operative parameter this proposal introduces.) +- **A market-determined yield.** To avoid introducing a vulnerability to griefing attacks, rewards and penalties must remain matched. With matched incentives, a performing validator always earns a positive yield, so any reshaped reward curve without burn still imposes a floor on the yield, and stake growth stops only if the market's risk premium happens to sit above that floor. A deduction removes the floor: the staking ratio settles at the point where the yield meets the premium stakers demand, so the equilibrium yield is set by the market rather than by the shape of the curve. +- **Micro-incentives at full strength.** Reaching a low yield by scaling the reward and penalty schedule down weakens the per-duty incentives for correct and timely participation. With substantial MEV (here including priority fees) available, consensus rewards and penalties must remain large relative to the external incentives to misbehave (through block-timing games or reorgs, for example), or chain stability is put at risk. The burn leaves the entire schedule at its current magnitude and nets macro yield off afterwards. +- **Credible neutrality.** Any redirection of the deducted ETH, whether to other validators, a treasury, or any other recipient, would leave total issuance unchanged and so defeat the proposal's monetary purpose, while creating a new claimant whose incentives must be analysed and whose share can be lobbied over. Destroying it, as established by the base-fee burn of EIP-1559, is the neutral alternative: the value removed accrues pro rata to all ETH holders. + +### Why a 50% saturation ratio + +The saturation ratio is not a target. It marks where the issuance incentive is fully neutralised, with the market settling below it, wherever net yield meets the premium stakers demand. Several of the risks set out above are qualitatively different once a majority of ETH is staked: a rescue coalition drawn from stakers is then a majority of the economy by construction, and a fork opposing a captured validator set has no larger constituency left to appeal to. The same threshold governs ETH's monetary role. Once most ETH is staked, the derivatives representing it are drawn from a larger pool than the unstaked ETH they compete with, and liquidity and collateral acceptance tend to bestow moneyness on the larger pool. + +Furthermore, above half there is no next natural stopping place. Nothing distinguishes 60% from 70%, or 70% from 80%. Half the supply is the last figure that refers to anything beyond preference: it is the majority threshold the risks above turn on. A constant anchored that way is far harder to argue upward than one resting on a judgement of degree. The choice is also bounded from below. With today's ratio near 33%, a saturation point at or beneath it would clamp the burn at 100% on activation and take net consensus yield to zero for every validator, forcing stake out rather than curbing its growth. + +### Why the burn uses idealised rewards + +The same concern that keeps the reward schedule at full magnitude governs how each deduction is sized: were the burn to track the reward actually earned, every duty's marginal payoff would be multiplied by $(1-b)$, reducing the incentive for correct participation. The burn is sized instead on what perfect performance would have earned. That is, perfect performance with respect to the validator's *own conduct*, not the network's. A faultless attester's reward already scales with network participation, so the burn scales with it too; sized on the full-participation figure it would take the full amount out of a reduced reward, leaving that validator at a loss whenever the offline share of the network exceeded $1-b$. During an inactivity leak, where attestation rewards are withheld outright, the attestation deduction is accordingly suspended entirely. + +### Why the burn is split by duty + +Applying $b$ as a single, uniform per-validator deduction each epoch would be simpler to specify, but every validator only proposes and joins a sync committee rarely. A uniform deduction sized to also cover those infrequent, larger rewards would exceed a typical epoch's attestation reward as the burn fraction grows, leaving even a perfectly performing validator with a negative balance change in every epoch spent waiting for a rare duty assignment. Allocating the deduction by assigned duty avoids this: a validator that performs its attestation duties is never pushed into a negative balance change merely for lack of a proposal or sync-committee assignment, and each deduction stays proportionate to the reward on offer at each opportunity. + +### Deriving the burn fraction + +Expressed as a function of the staking ratio $f = D/S$ (with $S$ the total ETH supply), the current consensus-layer yield is $y(f) = \frac{B\,E}{\sqrt{f\,S}}$, with `BASE_REWARD_FACTOR` $B$ and epochs per year $E$. Issuance is the yield paid on the staked fraction, $i(f) = B\,E\sqrt{f/S}$. The burn fraction derived below is independent of $B$: it scales the reward whatever its magnitude. The permanent policy uses today's $B = 64$; during the transition $B$ is temporarily elevated, which lifts $y(f)$ uniformly without changing $b(f)$. + +The goal is to subtract from the yield a term that is zero at $f = 0$ and grows linearly to cancel the yield entirely at a saturation ratio $f_\text{sat}$, so that the net yield reaches zero there. Writing the result piecewise, $\tilde y(f) = y(f) - \frac{f}{f_\text{sat}}\,y(f_\text{sat})$ for $f \le f_\text{sat}$, and $\tilde y(f) = 0$ for $f > f_\text{sat}$. + +![Consensus layer net yield under the current curve and under the tapered issuance burn](../assets/eip-8363/yield-curve.svg) + +Consensus layer net yield under the current curve and under the tapered issuance burn in its permanent (post-transition) state, both with `BASE_REWARD_FACTOR` at today's value of 64. Under the tapered curve the burn cancels a performing validator's issuance at the 50% saturation ratio. + +Writing $\tilde y(f) = (1 - b(f))\,y(f)$ and solving for the burn fraction $b(f)$ that reproduces this linear taper gives $b(f) = \left(\frac{f}{f_\text{sat}}\right)^{3/2}$. + +The exponent of $3/2$ rather than $1$ follows from the reward curve's $f^{-1/2}$ shape: the *absolute* deduction needed is linear in $f$, but expressed as a fraction of a reward that itself scales as $f^{-1/2}$, it picks up an extra half power. With $f_\text{sat} = 50\%$, the resulting issuance curve is $\tilde i(f) = f\,\tilde y(f)$ for $f \le f_\text{sat}$ and zero above it. It no longer rises monotonically with $f$: it rises, peaks at $f^* = 2^{-7/3} \approx 19.8\%$, and is fully cancelled by the burn at $f_\text{sat}$. + +![Annual ETH issuance under the current curve and under the tapered issuance burn](../assets/eip-8363/issuance-curve.svg) + +Annual ETH issuance under the current curve and under the tapered issuance burn in its permanent (post-transition) state, both with `BASE_REWARD_FACTOR` at today's value of 64. The tapered curve peaks at $f^* = 2^{-7/3} \approx 19.8\%$ and is fully cancelled by the burn at $f = 1/2$. + +### The effect on large operators + +An operator's income from consensus issuance is its share of the stake multiplied by the total amount issued. Under the current curve both factors move in its favour as it grows: its share rises, and because issuance keeps rising with the staking ratio, so does the pot being shared. There is no size, and no staking ratio, at which adding another validator fails to increase its income. + +The tapered burn changes this. Issuance now peaks at a staking ratio of roughly 20% and declines beyond it, so an operator that keeps growing is claiming a larger share of a shrinking pot, and past some point the second effect dominates the first. The point at which an operator's income reduces from increased scale comes sooner the larger the operator already is. An operator holding half the stake finds that growth stops paying once about 31% of the ETH supply is staked. Every operator has such a point somewhere below the 50% saturation staking ratio, but the smaller it is, the closer that point sits to saturation. + +![The staking ratio beyond which an operator's income falls as it adds stake](../assets/eip-8363/operator-threshold.svg) + +The staking ratio beyond which an operator's income from consensus issuance falls as it adds stake, plotted against the share of total stake it already holds, with other operators' stake held fixed. Under the current curve no such point exists at any operator size or staking ratio. + +It should be noted that MEV is unaffected by the burn and accrues in proportion to an operator's share whatever the staking ratio, so it always rewards growth and will act to increase the staking ratio at which a large operator is no longer rewarded for further growth. + +### The transition period + +Imposed in full at the fork, the burn would cut the net yield at today's staking ratio ($f \approx 33\%$) by more than half, from about 2.6% to 1.2% — enough to prompt a substantial exit of stake on activation. `TRANSITION_BASE_REWARD_FACTOR` is set to 128 because doubling the factor lifts the net yield curve to cross the current one at $f \approx 31\%$, close to today's ratio: stakers begin at a yield near what they receive now, and the reduction arrives gradually rather than at the fork. + +The 18-month figure is measured from activation, but the window for participants to adjust is longer. A hard fork is generally *scheduled for inclusion* (SFI) six months or more before it goes live, and this proposal is fully specified and predictable from that moment. Adding that lead time gives ecosystem participants on the order of two years, from the change becoming certain to yields reaching their permanent level, in which to respond. + +![Net yield and annual issuance as the tapered issuance burn phases in over the transition](../assets/eip-8363/transition.gif) + +Net yield (left) and annual issuance (right) as the tapered issuance burn phases in, driven together by a single control. The animation sweeps the 18-month transition: at month 0 the effective base reward factor is 128, so net yield starts close to today's; by month 18 it has decayed to 64 and both curves reach their permanent shape. Throughout, the burn cancels a performing validator's issuance at the 50% saturation ratio, whatever the effective base reward factor. + +The transition defers none of the security benefit: the burn fraction reaches 100% at the saturation balance whatever the base reward factor, so from the first epoch after activation issuance no longer rewards growth in the staking ratio beyond 50%. + +### Issuance and MEV + +Lowering issuance raises the question about the role of MEV, since if consensus rewards reduce, MEV becomes a larger share of a validator's return. Block proposal timing games are the most pernicious distortions caused by MEV, but these are unaffected by this proposal, since the microincentive levels are preserved. By contrast, reducing issuance by reshaping the reward curve would instead shrink the proposer reward and increase the significance of MEV on a per-block basis. + +Summing MEV-Boost relay payments to proposers over the year to 31 July 2026 gives about 72,600 ETH across 2.42 million blocks, a mean of 0.030 ETH per block. Pricing the further 190,000 locally built blocks at that same mean (an upper bound, since locally built blocks receive lower execution layer rewards) puts total execution-layer rewards below 78,300 ETH. Against the roughly 40 million ETH staked today ($f \approx 33\%$) that is a return of at most 0.20%. Consensus issuance pays $64\sqrt{D}$ Gwei per epoch, with $D$ the total active balance in Gwei: about 1,054,000 ETH a year at that staked base, or 2.62%. Issuance therefore accounts for at least 93% of the staking yield today. Under this proposal, if the staking ratio were to settle at 40%, issuance would still account for at least 80% of the yield. So the equilibrium staking ratio remains set predominantly by the issuance curve and the risk premium. + +Nonetheless, proposals which would address MEV (such as MEV burn) remain worth pursuing, and compose with this one: removing MEV from proposers would lower total staking yield, and with it the equilibrium staking ratio. + +## Backwards Compatibility + +This EIP introduces a backwards-incompatible change to the consensus-layer state transition and must be accompanied by a hard fork. No changes are required to the execution layer or to existing on-chain contracts. + + + +## Reference Implementation + +The Python in the [Specification](#specification) section constitutes the reference implementation, in the same style used throughout the beacon chain consensus specification. + +## Security Considerations + +**Incentive compatibility.** The burn fraction $b(f)$ is a deterministic, publicly computable function of total active balance, and applies identically to every validator. No validator or coalition can shift a larger share onto another, so it introduces no new griefing or discrimination vector. Because each deduction is computed from the idealised duty reward rather than the reward actually earned, it is independent of the validator's behaviour within the epoch, leaving every marginal performance incentive intact; during the transition the elevated base reward factor scales the reward and penalty schedule up together, preserving the balance between them, and once the transition completes the schedule is exactly as it is today. And because $b(f) \le 1$ for all $f$ (clamped via `sqrt_active = min(..., sqrt_sat)`), no deduction ever exceeds the reward it is derived from. Because each basis is scaled to the issuance the duty actually paid rather than to a headline figure the network may not have reached, a validator performing its duties correctly retains a non-negative net reward for the epoch — specifically $(1-b)$ times what it earned — at any level of participation or block production. The attestation pass is suspended outright during an inactivity leak, when attestation rewards are withheld entirely, so the guarantee holds in that case too. + +**Cost of downtime.** Because the deduction is independent of behaviour, an offline validator pays it alongside the usual penalties. The marginal incentive to be online is unaffected (the balance difference between performing a duty and missing it is exactly what it is today), so the cost of an outage relative to remaining online is no greater in ETH than it is today; what rises is that cost measured in days of net earnings. Since the penalty is unchanged while net earnings fall to $(1-b)$ of the idealised reward, the period needed to make good an outage grows by a factor of $(1 + b/p)/(1-b)$, where $p = 40/54 \approx 0.74$ is the ratio of penalty to idealised reward: roughly 3.8× at today's staking ratio ($f \approx 33\%$), and rising as the ratio approaches saturation. + +This is the unavoidable consequence of holding the penalty schedule at full magnitude while net issuance falls. Scaling penalties down in step would hold the ratio constant, but that is precisely the weakening of per-duty incentives the burn exists to avoid. Its practical weight is limited by realised validator performance, which has run consistently above the levels anticipated when the penalty schedule was set before the beacon chain launched: at 99% uptime a validator retains 96% of a flawless validator's net yield under this proposal, against 98% today. + +**Effect on economic security.** This EIP deliberately results in a lower equilibrium quantity of stake than the current curve. In proof-of-stake with slashing, the cost of attack is set by the stock of slashable stake an attacker must acquire and forfeit, and at any staking ratio in the tens of percent that stock remains vast relative to any plausible attack reward. Nor does economic security increase monotonically with stake: as set out in the Motivation, beyond a certain level the accompanying concentration of stake and supply makes the network less secure, not more. To the extent the proposal protects ETH's monetary premium, it also supports the real value of the stake securing the chain. + +**Computational cost.** The additional per-epoch cost is one O(1) deduction per active validator (foldable into the existing rewards/penalties pass, which already walks the same previous-epoch participation flags), a fixed-size pass over the 32 proposers, and one further walk of the participation flags to total current-epoch participating balance for the proposer basis. That last traversal is the only one not shared with existing work; it is O(n) in the validator set, the same order as `process_rewards_and_penalties` itself, and is performed once per epoch rather than per validator. The whole step therefore remains linear in the validator set and introduces no new DoS surface. Per block, the sync committee deduction adds one balance update for each of the 512 members, within a loop `process_sync_aggregate` already performs. + +**Constant drift.** As noted in [Constants](#constants), `SATURATION_BALANCE` is fixed at the fork and does not track live supply, so the effective saturation ratio will drift slowly over time. This drift changes only the location of the equilibrium point, not any safety property of the mechanism, and is not expected to be security-relevant on the timescale of a single fork's lifetime. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-8363/issuance-curve.svg b/assets/eip-8363/issuance-curve.svg new file mode 100644 index 00000000000000..5e8c0c33b97734 --- /dev/null +++ b/assets/eip-8363/issuance-curve.svg @@ -0,0 +1,1807 @@ + + + + + + + + 2026-08-03T12:26:20.852584 + image/svg+xml + + + Matplotlib v3.11.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/eip-8363/operator-threshold.svg b/assets/eip-8363/operator-threshold.svg new file mode 100644 index 00000000000000..bb3a2f99d2dadb --- /dev/null +++ b/assets/eip-8363/operator-threshold.svg @@ -0,0 +1,1795 @@ + + + + + + + + 2026-08-03T12:26:21.169675 + image/svg+xml + + + Matplotlib v3.11.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/eip-8363/transition.gif b/assets/eip-8363/transition.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d95e466a1329b3b1fce13bd123b1cdefa5eba48 GIT binary patch literal 680471 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