ethereum-optimism / ethereum-optimism/specs

Add rollup config data to SystemConfig

Open
#655 2 comments 1 reaction 0 assignees View on GitHub
U-smart-contract
Dominant language
Python
Stars
178
Forks
206
Avg merge
5d 2h
Merged PRs (30d)
6

Description

## Background

Currently, critical rollup configuration values (`block_time`, `seq_window_size`, `max_sequencer_drift`) are only committed on-chain within the opaque absolute prestate hash.

This issue is the result of a request made by @lucadonnoh.

This makes these values difficult to access and verify onchain.

## Proposal

Make the RollupConfig parameters directly available on-chain through the SystemConfig contract, rather than only existing in the prestate hash.

This would:

1. Improve transparency of critical chain parameters
2. Enable on-chain verification of these values
3. Support future proof systems by allowing the RollupConfig to be used as a local input to the Fault Proof Program (FPP)

## Scope

### Parameters to expose:
- `block_time`
- `seq_window_size`
- `max_sequencer_drift`

### Key Considerations
- These values would remain static (not dynamically updatable) in this implementation
- The values would still be committed in the prestate hash for backward compatibility
- This approach aligns with existing implementations like op-succinct, which stores a hash of the serialized rollup config on L1

## Non-Goals
- Making these parameters dynamically updateable (would require significant additional complexity)
- Removing these values from the prestate hash
- Changes to L1 info transactions

## Open Questions
- Should we include any additional parameters beyond the three identified?
- What's the best way to verify these values match the prestate hash during deployment?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the SystemConfig contract, RollupConfig parameters, and the deployment and prestate-hash handling described in the issue. Confirm how block_time, seq_window_size, and max_sequencer_drift could be exposed while remaining static and preserving the existing commitment. Done means the three values are available on-chain, remain in the prestate hash, and the verification approach is agreed with maintainers.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.