Executive Summary
Hi I’m Diego, a protocol engineer at OP Labs. OP Labs is a software development company focused on the Optimism ecosystem and a core developer of the OP Stack. We provide some services to, but do not represent or speak on behalf of, the Optimism Foundation.
This protocol upgrade strengthens the security and upgradeability of the Superchain by enabling L1 contracts to be upgraded atomically across multiple chains in a single transaction. To achieve this, this proposal transitions chain-specific deployment configuration from immutable variables into smart contract state. This allows multiple chains to point to a single smart contract implementation, which dramatically simplifies the deployment process and streamlines the upgrade process. This is particularly important for emergency upgrades, which would have previously required multiple upgrade transactions which increases the risk of exploitation in the event of a smart contract vulnerability.
In addition, this upgrade extends the SystemConfig to contain the addresses of the contracts in the network. This improves developer experience by allowing users to discover the system’s contract addresses programmatically using SystemConfig.
If this vote passes, we recommend the upgrade be deployed to OP Mainnet shortly after the end of the veto period. The newly-formed Security Council will be responsible for deploying this upgrade to OP Mainnet.
Specifications
Contracts Changed
The following contracts would be changed as part of this upgrade. Each contract links to the pull request where the changes were made, and the bullet points correspond to the immutable variables moved into state (in format {type} {varName}
):
- OptimismPortal
L2OutputOracle l2Oracle
SystemConfig systemConfig
- L1CrossDomainMessenger
OptimismPortal portal
CrossDomainMessenger otherMessenger
- L1StandardBridge
CrossDomainMessenger messenger
StandardBridge otherBridge
- L1ERC721Bridge
CrossDomainMessenger messenger
StandardBridge otherBridge
- OptimismMintableERC20Factory
address bridge
- L2OutputOracle
uint256 submissionInterval
uint256 l2BlockTime
address challenger
address proposer
uint256 finalizationPeriodSeconds
- SystemConfig
Security Considerations
Consistent with the OP Labs Audit Framework, OP Labs had the code audited by Cantina, since the upgrade results in many changes to storage layouts, and mistakes in that process can result in loss of assets due to e.g. a reinitialization bug.
The audit results only contained informational and low-severity issues. As such, we will not be modifying the contracts further in order to keep the contracts code-frozen. See the full audit report here. Additionally, given the low-severity nature of the issues and fixes, we decided not to pursue a fix review.
Any fixes that did not require redeploying contracts have been made and merged. The remaining changes, which do not affect security, will be proposed as part of a future upgrade.
We have also established monitoring systems for detecting events associated with initializations and upgrades of the contracts, the code of which you can find here.
Impact Summary
OP Labs does not anticipate any downtime due to this upgrade. Node operators are not affected. Existing contracts retain their current interfaces in order to remain backward compatible with any existing integrations.
The primary new functionality is the movement of variables out of immutable storage and into state. This is a change that will improve the upgradeability and incident response capacity of the Superchain.
Action Plan
If approved by governance, the upgrade will be executed shortly after the veto period passes, pending coordination with the Security Council. The upgrade is code complete as of commit e6ef3a900c42c8722e72c2e2314027f85d12ced5 (release and tag) in the Optimism monorepo.
This upgrade was successfully deployed to op-sepolia
on Jan 19, 2024.
If a critical security issue is discovered before upgrading, OP Labs will collaborate with the community to extensively communicate that the upgrade will no longer occur.
Conclusion
This proposal outlines the Optimism Collective’s MCP L1 upgrade. This upgrade enables atomic, cross-chain upgrades and mitigates potential exploitation risks during emergency, multi-chain upgrades.
As this is a contracts-only upgrade, no action is required by node operators.