specs
specs copied to clipboard
feat: Store historical block hashes to `L1Block`
Is your feature request related to a problem? Please describe.
When it comes to updating the L2, the L1Block
is regularly called to update its' state values, including the L1 block hash. This hash is extremely valuable as a user can create a proof for any state of the L1 at the current block hash.
The issue arises when dealing with historical data. As we are only ever using the most-recent hash within L1Block
, we are unable to prove L1 state at a historical point in time on-chain without deploying our own contract with manually-synced block hashes.
The value of a chain is derived by the value of its' state. Therefore, by having the ability to prove state at a particular time in the past, we open up cross-chain communication.
An example of what this can be used for is to prove L1 token voting power at a particular point in time.
Describe the solution you'd like
Have a mapping with L1Block
to store historical hashes. The most simple way I've seen it done is through a basic mapping.