ethereum-optimism / ethereum-optimism/specs

Research Area: Stateless Derivation

Open
#415 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
178
Forks
206
Avg merge
5d 2h
Merged PRs (30d)
6

Description

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.

Contributor guide

Open the contributing guide

Research direction

Start by reading the related exploration in specs/issues/330 and the issue's discussion of batch serialization, nonce metadata, and witnesses. Trace how the derivation pipeline and proof programs currently depend on L1 transactions and logs. Done should be a concrete, agreed design for stateless derivation and its witness inputs, rather than an open-ended research question.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.