MIP 8 - Page-ified Storage State
This proposal makes storage page-aware.
Today, the EVM exposes 32-byte slots, but hardware works in ~4KB pages. Reading one slot pulls in an entire page, so most of the bandwidth is unused. Hashing keys also destroys locality, so related data ends up scattered.
We instead treat a 4096-byte (128 slot) page as the unit of access and commitment. Storage is grouped into pages, and each page is committed with a binary tree.
Gas follows access patterns. The first touch to a page is expensive. Once loaded, all slots in that page are warm. This makes contiguous layouts (arrays, structs) naturally cheaper, without breaking sparse ones.
Any feedback or discussion is appreciated on:
- exact gas schedule for page-level
SLOAD/SSTOREand how to track net state growth - commitment scheme details especially single-slot proof size under the BLAKE3 tree
- worst-case read amplification if logical pages do not align with physical I/O
- how this changes Solidity storage patterns in practice