Block Persistent Storage

For the specific problem you put forward (Merkle roots changing), a cool solution is what’s been called “witness auto-update”. I first saw the idea in the stateless client post:

Basically witness updating can be done offchain by validators, and incentives align. See also the post on auto-updating in the context of account abstraction.