ethereum-optimism / specs

OP Stack Specifications
https://specs.optimism.io
Creative Commons Zero v1.0 Universal
87 stars 82 forks source link

Research Area: Stateless Derivation #415

Open tynes opened 10 hours ago

tynes commented 10 hours ago

Stateless execution is the idea of not needing to maintain a state database when doing execution. A witness can be sent over p2p that includes a commitment to each state access can be used to populate an in memory memory state db during execution and a comparison to the post state state root in the block header can guarantee that the correct.

It would be nice to have a stateless derivation pipeline, where we no longer need to observe all L1 transactions/logs and instead include witnesses to an L1 header chain to populate the derivation pipeline. This idea has been explored with logs in https://github.com/ethereum-optimism/specs/issues/330 but has not yet been fully explored for batches. We could use a similar nonce idea in the batch serialization to enable this. It is also possible it could be done by turning the batch inbox into a very simple contract that simple increments a nonce and/or emits an event with metadata about the batch itself.

This would be a good improvement to the proof programs, as it would remove a lot of work iterating over blocks during the proof, and we could just include the data with witnesses instead.