PFI for Hegota

Proposed for Inclusion: Hegota

EIP-7862: Delayed State Root

EIP-8146: Block Access List Sidecars


Two independent Core EIPs.

Standards Track · Core

PFI for Hegota

EIP-7862

Delayed State Root

Charlie Noyes, Dan Robinson, Justin Drake, Toni Wahrstätter

Standards Track · Core

PFI for Hegota

EIP-7862: What & why

Header carries the previous block's post-state root. No new fields.

  • Problem: state-root computation blocks efficient building/proving
  • Fix: defer the root by one block
  • One root per slot, not thousands during the auction
  • Computation frontloaded, off the attestation path
  • Composes with BALs (7928) to parallelize the root

Cost: light clients +1 slot for proofs; reorgs recompute the root

PFI for Hegota

EIP-7862: Spec

class BlockChain:
    last_computed_state_root: Root          # tracked across blocks

def validate_header(chain, header):
    if header.state_root != chain.last_computed_state_root:   # delayed root
        raise InvalidBlock

def state_transition(chain, block):
    validate_header(chain, block.header)
    block_output = apply_body(...)
    chain.last_computed_state_root = state_root(block_env.state)  # for NEXT block
  • Fork F: init root to post-state of F-1
  • F+1 onward: each block carries its parent's root
PFI for Hegota

EIP-8146

Block Access List Sidecars

Toni Wahrstätter, Raúl Kripalani · requires 7732, 7928

Standards Track · Core

PFI for Hegota

EIP-8146: What & why

BAL leaves the ExecutionPayloadEnvelope, ships as an independent sidecar.

  • Problem: BAL (~70 KiB, up to 1 MiB) increases envelope size
  • Fix: separate gossip topic
  • Commitment in signed bid: no separate signature
  • PTC vote enforces availability at the deadline
  • Early delivery: EL prefetches / starts post-state root
  • Useful for FOCIL to build ILs based on the latest state

Overhead: same bytes, one hash_tree_root

PFI for Hegota

EIP-8146: Spec

Containers

# ExecutionPayload: BAL removed
# ExecutionPayloadBid:
block_access_list_root: Root
# PayloadAttestationData:
block_access_list_present: boolean

New sidecar

class BlockAccessListSidecar:
    beacon_block_root: Root
    slot: Slot
    block_access_list: BlockAccessList

P2P

  • Topic block_access_list_sidecar
  • Req/Resp by_range, by_root

Engine API

  • getPayloadV6: BAL separate
  • notifyBlockAccessListV1: new, early
  • newPayloadV5: unchanged

Verify
htr(sidecar.bal) == bid.bal_root

PFI for Hegota

Proposal for Hegota

Include EIP-7862 and EIP-8146.

More time for builders/provers.
More scale through earlier BAL arrival.

7862: ethereum-magicians.org/t/22559
8146: ethereum-magicians.org/t/27757