ethereum research lab
Weird Ethereum behaviour, made readable.
Data-backed protocol notes on blobs, validators, MEV, execution, and the strange edge cases hiding in Xatu.

latest post
LayerZero kept 52,161 storage slots for one block
In 14 complete days, ReceiveUln302 and EndpointV2 made 35.9% of Ethereum's adjacent-block storage lifecycles. Raw diffs and traces show the verifier-to-delivery cleanup path.
live tags
Whatever the blog has been circling lately.
more posts
Recent research
The 41 million XEN spike was a backfill, not Ethereum
A March post counted model-write time as block time. The corrected 55-day total is 3.83 million storage-slot reactivations, not 97.47 million, and the XEN spike shrinks from 41.82 million to 225,421.
The content-deduped gossip archive keeps one row per slot
In a two-hour mainnet window, 18.1% of aggregate-and-proof message IDs survived twice because Xatu's raw payload archive includes the receiving wallclock slot in its dedupe key.
The attestation aggregation_bits field contains no bits
Ordinary Electra attestation gossip uses SingleAttestation, which has no aggregation_bits field, but Xatu emitter paths still split the same message ID into empty-string and 0x values.
One gossip message became three bit strings
The same aggregate-and-proof message ID produced three aggregation_bits encodings, depending on which Xatu emitter path recorded it.