Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion EIPS/eip-7928.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ The Engine API is extended with new structures and methods to support block-leve
**Block processing flow:**

When processing a block:

1. The EL receives the BAL in the ExecutionPayload
2. The EL computes `block_access_list_hash = keccak256(blockAccessList)` and includes it in the block header
3. The EL executes the block and generates the actual BAL
Expand All @@ -233,10 +234,11 @@ When processing a block:
The execution layer provides the RLP-encoded `blockAccessList` to the consensus layer via the Engine API. The consensus layer then computes the SSZ `hash_tree_root` for storage in the `ExecutionPayload`.

**Retrieval methods** for historical BALs (similar to `engine_getPayloadBodiesByHashV1`):

- `engine_getBALsByHashV1`: Array of block hashes → Array of RLP-encoded BALs
- `engine_getBALsByRangeV1`: Start block number, count → Array of RLP-encoded BALs

The EL MUST retain BALs for at least the duration until the last finalized checkpoint to support synchronization from the latest finalized checkpoint performing re-execution on the EL.
The EL MUST retain BALs for at least the duration the weak subjectivity period (`=3533 epochs`) to support synchronization with re-execution after being offline for less than the WSP.

### State Transition Function

Expand Down Expand Up @@ -462,6 +464,7 @@ This design variant was chosen for several key reasons:
### BAL Size Considerations (60m block gas limit)

**Average BAL size**: ~72.4 KiB (compressed)

- Storage writes: ~29.2 KiB (40.3%)
- Storage reads: ~18.7 KiB (25.8%)
- Balance diffs: ~6.7 KiB (9.2%)
Expand Down
Loading