ethereum-optimism / ethereum-optimism/specs

Research Area: Configurable Max Bytecode Size

Open
#355 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

There is a desire to make the max bytecode size configurable by the chain operator. This would allow chains in increase or decrease their max bytecode size by calling the `SystemConfig`, similar to how other protocol level constants are tweaked. We would want to ensure that there is a max bytecode size enforced in the `SystemConfig`, to prevent denial of service attacks during jumpdest analysis. We would also want a way to not use this feature for chains that want Ethereum compatibility, meaning that the OP Stack override wouldn't apply and the L1 consensus rules would take precedent. An easy way to do this is to use `uint256(0)` as a magic number that means off. It is possible that we would also want a min size to prevent the chain operator from turning off code, unless that is a desired feature.

Contributor guide

Open the contributing guide

Research direction

Start by researching the SystemConfig mechanism and the existing protocol-level constants it can change. Define how a bounded configurable bytecode size, the uint256(0) compatibility mode, and any minimum size would interact with jumpdest analysis and L1 consensus rules. Done means the behavior and security constraints are specified clearly enough for implementation.

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
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.