Executive Summary
In short, what is this upgrade proposal?
Impacted stakeholders & expected outcomes
Why the Collective should upgrade
The Optimism Foundation is proud to propose the first protocol upgrade to the Optimism Collective: Bedrock. The Bedrock release of the OP Stack represents the culmination of years of research and development by the Ethereum scaling community and is a complete rewrite of the core components of the Optimism architecture. This upgrade offers a new level of modularity, simplicity, and Ethereum equivalence for Layer 2 solutions, providing unprecedented performance and functionality.
Most users will not be impacted by the upgrade as the current mainnet is already EVM-equivalent. Users and projects that run both full and archive nodes, make use of deposits and withdrawals, and make assumptions about the block time on Optimism Mainnet will need to take action to prepare for the upgrade. To help ensure a smooth transition, a thorough changelog and stakeholder-specific requirements can be found below.
In addition to these technical improvements, the Bedrock upgrade is a significant step towards the multi-chain future. By creating a shared standard, the OP Stack, Bedrock sets the stage for a Cambrian explosion of aligned L2s. This is an opportunity for leadership in the Ethereum ecosystem.
We are confident that the post-Bedrock experience will be a positive change for developers in the Optimism ecosystem and have received consistent excitement for the upgrade from our partners. We are committed to making this upgrade a success and are eager to see the results in the months and years to come.
Technical Summary
Overview of architectural changes
Link to all protocol/API/tech specifications
Overview of ongoing security considerations incl. all audits and findings
Overview/Architecture
At the highest level, the Bedrock release implements a modular architecture, separating the OP Stack into 3 components: consensus, execution, and settlement. These designs borrow heavily from the Engine API introduced for the Merge, and, as a result, an Ethereum execution client can be converted into an Optimism execution client in <2,000 lines of code. This is a huge win, paving the way for a multi-client future, and allowing for maximal use of Ethereumās battle-tested code.
Technical documentation for Bedrock is split into 3 main parts:
- An explainer detailing Bedrock and its major architectural choices.
- Protocol specifications for all major components of the codebase.
- Developer documentation for those using any APIs affected by the release.
Security Considerations
A summary of the initial security measures and considerations for Bedrock can be found in this blog post by OP Labs, which includes links to security audits and testing measures. For easier access, a list of security audits are hosted in the OP Stack monorepo. Audits relevant to the Bedrock release are prefaced with 2022/3
.
Notably, the Bedrock release introduces a 2-phase withdrawal process, doubling down on bridge security, which proved to be a primary risk factor for chains in 2022.
Since the previous draft of this proposal in voting cycle 10, the Sherlock community completed a successful bug hunt, which most notably resulted in 3 High severity findings and 11 Medium severity findings. None of these enable theft of assets, but some could have caused usersā assets to be locked until a subsequent upgrade made them recoverable.
Impact Summary
Changes in performance characteristics
Time-of-upgrade considerations (downtime, etc)
Links to exhaustive upgrade documentation for impacted stakeholders
The Bedrock release enables performance improvements across the board, including transaction costs, throughput characteristics, and sync speeds. Exact numbers are dependent on real-world chain activity, which canāt be known until actual deployment. However, we estimate a 47% reduction in protocol costs/security fees. You can read more in this post on the OP Labs dev blog.
The Bedrock migration will require pausing deposits and sequencer transaction ingestion during the upgrade, effectively resulting in network downtime. We estimate that this will take <4 hours. Unlike previous upgrades to Optimism, this release will not require a āregenesis,ā and historic chain data will still be accessible after the upgrade. As such, little action is required from end-users of Optimism other than being aware of that timing.
While the upgrade strictly improves on EVM equivalence, some application developers may be affected. While we have been in active touch with major partners, the developer community has also been actively notified over the past few months in 1:many communications. We maintain the following documentation pages for impacted developers:
- A guide by persona on what most developers need to prepare for the upgrade.
- A guide specifically for node operators, which are impacted most by the upgrade.
- A general FAQ page for the upgrade.
Action Plan
Mainnet Upgrade Timing
Contingency plans in case of last-minute bugs or issues
Plan for communication and education to the community
Since the previous version of this proposal, we have made the decision to favor a set of rigorous go-live criteria for the upgrade, as opposed to specifying to the exact date in the proposal itself. Specifying go-live criteria allows the community to focus on the ideal conditions for the upgrade, rather than committing to a timeline that could result in a rush to the finish line. Primarily, these criteria consist of:
- A successful upgrade of Goerli to the āRegolithā release, which incorporates the improvements recently identified by Sherlock.
- A follow up audit to test the fixes made after the previous audit.
- Internal rehearsals of both the migration and recovery from an invalid output root
- 2 weeks of testnet stability on a consensus- and feature-frozen release, followed by a public announcement with 3 weeks of notice to the community.
Regolith Goerli Hard Fork
The Regolith hard fork is a hard fork that will be activated at a set block time on Optimism Goerli around March 17, 2023 @ 7:00:00 pm UTC. Because the hard fork will be activated before the governance vote completes, Optimism Mainnet will be upgraded to Bedrock with the Regolith hard fork already activated. Regolith improves Ethereum equivalence, primarily for deposit system transactions which are required by L2. Changes are defined in the specs here. These features would be activated from day 1 of Bedrock on Optimism Mainnet.
Go-live Criteria
Once the Regolith fork is complete, the next step is to upgrade mainnet. If this proposal passes, we will upgrade to Bedrock given that the following criteria are met:
Consensus and Feature Frozen
- No consensus changes are to be made to the
op-geth
op-node
,op-batcher
, orop-proposer
packages. No major refactors, architectural changes, or non-trivial feature additions are to be made toop-geth
andop-node
packages .- āConsensus changesā are defined as any changes that modify the batch derivation function, the EVM, or would otherwise require coordination between node operators.
- Examples include: L1 Cost function / Receipt changes in
op-geth
, introduction of a new batch version or compression, changing signing hashes. - No changes should be made to
op-geth
unless they are clearly justified as non-consensus - No changes should be made to the in the
rollup
package in theop-node
unless they are clearly justified as non-consensus
- Examples include: L1 Cost function / Receipt changes in
- No major refactors or architectural changes (e.g.: pulling in an upstream geth version, modifying the derivation pipeline, fundamental changes to peer-to-peer networking)
- No non-trivial features should be added to
op-node
orop-geth
(e.g. Snap Sync)
- āConsensus changesā are defined as any changes that modify the batch derivation function, the EVM, or would otherwise require coordination between node operators.
- No upgrades to the L1 or L2 Goerli smart contracts are required or executed.
Note: Low severity bug fixes, additional testing, small scope refactors will not be considered āun-freezing.ā These small refactors may precipitate minor releases of our software.
2 Weeksā Stability
After Optimism Goerli is change-frozen, the sequencer, batcher & proposer must show 14 consecutive days of stability. We define stability in this context as:
- No Sequencer failures.
- The sequencer does not persistently drop any valid L2 transactions.
- The sequencer does not produce any invalid blocks.
- The sequencer consistently produces blocks at the intended 2-second intervals.
- No Batcher downtime exceeding 6 hours.
- Batch transactions are regularly submitted and confirmed on L1 at the intended frequency.
- The batcher is ākeeping upā with the sequencer (i.e. the number of not-yet-batched L2 blocks is not growing over time).
- The majority of batch transactions confirmed in each window are valid.
- No Proposer downtime exceeding 12 hours.
- There is no gap in output root submission exceeding 12 hours.
- The proposer does not otherwise violate its responsibility to keep the output roots live, e.g. by unnecessarily deleting valid output roots.
- There is no invalid output root submitted.
Internal Rehearsals
- We have completed two end-to-end internal upgrade rehearsals, using forks of the Mainnet L1 & L2 networks.
- We have completed a rehearsal deleting an L2 Output, to prepare for the unexpected event of a faulty proposal.
Community Awareness
Only after hitting the above criteria will the Optimism Foundation announce an upgrade date, set at least 3 weeks after the time of announcement. Tentatively, we expect to announce the nearest Tuesday, at 9am PST, which fulfills this requirement. Note that the upgrade will be triggered at a specific time, and not a block height.
The Optimism Foundation and OP Labs will continue public communication efforts around the upgrade, including public communications and tweets reminding stakeholders of the upgrade in the weeks, days, and hours leading up to the upgrade.
Security Cancellation Clause
Note that this proposal would allow for bugfixes and stability improvements to be incorporated after the date that this proposal passes, potentially resetting the clock for the change freeze criteria. However, in the event that a significant, new security risk is discovered, we may cancel the upgrade, requiring a new vote once the community has had time to react.
Conclusion
This proposal outlines the Optimism Collectiveās first Protocol upgrade of Optimism Mainnet to the Bedrock release. This upgrade aims to provide unprecedented modularity, simplicity, and Ethereum equivalence to the L2 network, with positive impacts on performance and security. Bedrock is the codebase which will help Optimism stand the test of time, and is also preparatory step towards the multi-chain future.
We expect the upgrade will incur around 4 hours of downtime, with no loss of historical data. Detailed technical specifications and impact summaries are available for the upgrade, as well as a thorough run-book of go/no-go criteria.
We strongly believe that the Collective should upgrade Optimism Mainnet to the Bedrock release, take advantage of the benefits it brings, and to continue to play a leadership role in the scaling community.