Would it be possible to maintain a merkle root in a system contract like EIP-2935 or EIP-4788 that represents all blockhashes so we can verify deep historical data?
It could be some kind of 2-stage tree where the first level is a tree of block ranges [0, N), [N, 2N), ..
and then each range is just a binary merkle of blockhashes so updaters only need to know the last N
blocks and height / N
range roots. Probably there’s a more efficient structure.
Maybe something like this already exists and I don’t know about it.