ethereum-optimism / ethereum-optimism/specs
Research Area: Configurable Max Bytecode Size
- 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
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