Modeling the Worst-Case Parallel Execution under EIP-7928
Modelling OLS vs Greedy Scheduling over increasing gas limits.
Read More →Unlock parallel transaction execution on Ethereum
See how EIP-7928 transforms transaction processing
Execute multiple transactions simultaneously by knowing state dependencies upfront
Track state changes (incl. ETH balances) without executing transactions
Reconstruct state without executing transactions using post-execution values
Mandatory access lists ensure complete and accurate state dependency information
Every block includes a complete record of all state interactions:
Key benefits for validators:
Cheatsheets for Validators:
BlockAccessList(
account_changes=[
# Alice's account after sending 1 ETH
AccountChanges(
address=0xaaaa...,
balance_changes=[
BalanceChange(tx_index=0, post_balance=50 ETH)
],
nonce_changes=[
NonceChange(tx_index=0, new_nonce=10)
]
),
# Bob's account after receiving 1 ETH
AccountChanges(
address=0xbbbb...,
balance_changes=[
BalanceChange(tx_index=0, post_balance=11 ETH)
]
),
# Coinbase gets transaction fees
AccountChanges(
address=0xeeee...,
balance_changes=[
BalanceChange(tx_index=0, post_balance=100.01 ETH)
]
)
]
)
Latest insights on Block-Level Access Lists
Modelling OLS vs Greedy Scheduling over increasing gas limits.
Read More →This post represent the official proposal of EIP-7928: Block-level Access Lists for the Glamsterdam hardfork.
Read More →Exploring how BALs enable parallel transaction execution by providing comprehensive state access information at the block level.
Read More →Analyzing worst-case BAL sizes and how to generate them. This includes a detailed analysis of the worst-case BAL size for different scenarios, bloating different parts of the BAL.
Read More →Deep dive into transaction dependencies and how understanding them unlocks efficient parallel processing capabilities.
Read More →Analyzing a different, more lightweight BAL design that achieves perfect parallelization for most average blocks, but not for worst-cases.
Read More →Dive deeper into "where we are today?". The pages provide a tracker to follow progress on the EIP, from specs to production-ready implementation..
Read More →Adding block-level access lists—recording all addresses touched by transactions—could reduce block verification IO costs, offering a simpler, bandwidth-efficient alternative to full statelessness...
Read More →Watch the community discussions and technical deep-dives
BAL design recap, RLP vs SSZ encoding, read-only accesses (SLOAD, BALANCE), and initial devnet planning
State locations with transaction indices, evaluating indexing necessity, and client implementation updates
BAL hash vs BAL root in EL header, handling in-transaction self-destruct, account storage root commitments
BAL hash vs BAL root in EL header, testing and specs updates, client implementation progress
Coinbase handling in BALs, testing and specs updates, client implementation status
CREATE/CREATE2 handling, gas used list, state read throughput optimizations, Devconnect planning
Read the full technical specification
Join the community discussion
Technical implementation details
Technical implementation details
Technical implementation details
Reference implementation and analysis
Raw up-to-date block-level access lists for research and testing.
Collection of EEST test cases.
Network graphs of transaction dependencies.
BAL Tests v.1