Analysis of Block Access List (BAL) Using Geth
⚠️ Work in progress This analysis is a work in progress. The information presented may be incorrect or subject to change. TL;DR Block-level Access Lists (BALs) enable both parallel I/O and EVM execution. This proof-of-concept focuses on I/O parallelization benefits. Analysis conducted on 120 blocks using hardware representative of a typical Ethereum node. Extended analysis with larger sample size planned. Implementation adds BALs to block headers, increasing total RLP-encoded size for 120 blocks from 15MB to 20MB (~33% overhead). Results show 42% reduction in mean block processing time (708ms to 409ms), dominated by 69% improvement in storage read performance (477ms to 147ms). Investigation required: 70% increase in account read time and 7% increase in execution time require investigation. Introduction Block-level Access Lists (BALs) proposes a significant advancement in Ethereum’s Layer 1 scalability through parallel transaction validation. While the complete BAL proposal enables both parallel I/O and EVM execution, this analysis focuses exclusively on I/O parallelization opportunities. ...
New Year's Eve-Proofing Your Specifications
This post explores the benefits of explicitly listing invariants as part of a specification. On an unsuspecting New Year’s Eve, the few lines of C code shown below nearly crippled the Internet, raking up half a billion dollars in damages. The heartbleed bug The code in question implements a new “Heartbeat” specification for the TLS encryption protocol, aiming to solve an important bottleneck: establishing a new TLS connection is expensive. The specification proposes that the sender post an arbitrary “heartbeat” message to the recipient. The recipient interprets this as a signal to keep the connection alive and confirms by echoing the message back to the sender. ...