Skip to content

Commit d660a27

Browse files
authored
Merge pull request #1519 from ethereum-optimism/sb/u13-notice-page
Sb/u13 notice page
2 parents 7970d66 + 5d22148 commit d660a27

File tree

4 files changed

+131
-7
lines changed

4 files changed

+131
-7
lines changed

pages/notices/_meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"upgrade-13": "Upgrade 13: OPCM and incident response improvements",
23
"blob-fee-bug": "Superchain testnets' blob fee bug",
34
"pectra-changes": "Preparing for Pectra breaking changes",
45
"holocene-changes": "Preparing for Holocene breaking changes",

pages/notices/upgrade-13.mdx

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
---
2+
title: Upgrade 13 OPCM and incident response improvements
3+
description: Learn how to prepare for Isthmus upgrade breaking changes.
4+
lang: en-US
5+
content_type: notice
6+
topic: upgrade-13
7+
personas:
8+
- chain-operator
9+
- node-operator
10+
categories:
11+
- security
12+
- protocol
13+
- infrastructure
14+
- l1-contracts
15+
is_imported_content: 'false'
16+
---
17+
18+
import { Steps, Callout } from 'nextra/components'
19+
20+
# Upgrade 13: OPCM and incident response improvements
21+
22+
This page outlines changes related to the Upgrade 13 network upgrade for chain operators, node operators, and users of OP Stack chains. The upgrade proposal is available [here](https://gov.optimism.io/t/upgrade-proposal-13-opcm-and-incident-response-improvements/9739) and the governance vote is available [here](https://vote.optimism.io/proposals/84511922734478887667300419900648701566511387783615524992018614345859900443455).
23+
24+
If you experience difficulty at any stage of this process, please reach out to developer support.
25+
26+
## What's included in Upgrade 13
27+
28+
Upgrade 13 contains three main components:
29+
30+
* **OP Contracts Manager**: A new system for upgrading L1 contracts across the Superchain, making contract upgrades more scalable, less prone to error, and easier to test.
31+
* **Fault Proofs incident response improvements**: Technical improvements to several key contracts to enable more flexible and less disruptive ways to respond to potential incidents in the OP Stack fault proof system.
32+
* **`DeputyPauseModule` (Superchain pause improvements)**: A new Safe Module to be installed into the Optimism Foundation Safe to simplify the process of quickly responding to security incidents via the Superchain-wide pause mechanism.
33+
34+
For more information on the Upgrade 13 implementation details, please review the specifications linked in the Technical Details section below.
35+
36+
## Technical details
37+
38+
### OP Contracts Manager
39+
40+
The OP Contracts Manager ([OPCM](/stack/opcm)) is a new system for upgrading L1 contracts across the Superchain. Each release will have its own OPCM that can deploy new proxies and upgrade existing OP Chains.
41+
42+
Key changes:
43+
44+
* OPCM is not considered part of the protocol and has no special role
45+
* In-protocol contract modifications include:
46+
* Stack too deep fixes to enable code coverage measurements
47+
* Updated contracts to call interfaces for external interactions rather than implementations
48+
* Removal of CustomGasToken logic
49+
* Changes to deposit transaction aliasing to ensure compatibility with the L1 Pectra upgrade's introduction of EIP-7702
50+
51+
### Fault Proofs incident response improvements
52+
53+
Several components have been updated to improve incident response capabilities:
54+
55+
**DelayedWETH**
56+
57+
* `DelayedWETH.hold(...)` now executes an approval and transfer from the target account to the owner account
58+
* Added a version of `DelayedWETH.hold(...)` that does not require the owner to specify the target's balance
59+
60+
**OptimismPortal**
61+
62+
* `OptimsimPortal.setRespectedGameType(...)` no longer sets the respected game type and retirement timestamp simultaneously
63+
* A special reserved input value can be used to set the retirement timestamp
64+
* `OptimismPortal.checkWithdrawal(...)` now asserts that a FaultDisputeGame was the respected game type at the time of creation
65+
66+
**AnchorStateRegistry**
67+
68+
* `AnchorStateRegistry.tryUpdateAnchorState(...)` is removed
69+
* `AnchorStateRegistry.setAnchorState(...)` is repurposed as the primary way for FaultDisputeGame contracts to update the anchor state
70+
* Internal anchor state is now unified across all game types
71+
* Updates enable all OP Stack chains to share a common AnchorStateRegistry implementation
72+
73+
**FaultDisputeGame**
74+
75+
* Added support for "bond refunding" to automatically distribute bonds back to their original depositors if the game is invalidated
76+
77+
<Callout type="warning">
78+
If adopted and deployed, this proposal will cause a one-time invalidation of all pending withdrawal proofs created on L1. Users should complete any pending withdrawals before the upgrade is executed and avoid creating new withdrawal proofs that would not become executable in time.
79+
</Callout>
80+
81+
### DeputyPauseModule (Superchain pause improvements)
82+
83+
The `DeputyPauseModule` is a new Safe Module to be installed into the Optimism Foundation Safe that allows:
84+
85+
* The Optimism Foundation to assign a "Pause Deputy" private key
86+
* The Pause Deputy to create signatures that authorize the use of the Superchain-wide pause
87+
* The Pause Deputy private key to cause the Optimism Foundation Safe to execute a call to the `DeputyGuardianModule` account ONLY for the purpose of executing the pause function
88+
89+
The Optimism Foundation Safe is expected to rotate the Pause Deputy private key approximately every 3 months.
90+
91+
## For chain operators
92+
93+
If this proposal is accepted, multisig ceremonies will be coordinated to execute upgrade transactions. The following transactions will be executed on the respective chains: `OP Mainnet`, `Soneium Mainnet`, `Ink Mainnet`, `Base Mainnet`, and `Unichain Mainnet`. If your Optimism governed chain is not in this list, please reach out to OP Labs Solutions Engineering to coordinate your upgrade. If your chain is not Optimism governed, we'll be working on providing documentation to upgrade your chain.
94+
95+
As this is an L1 contracts-only upgrade, no action is required to upgrade your node binaries. However, there is a required upgrade to [`op-dispute-mon/v1.4.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-dispute-mon%2Fv1.4.0) to remain compatible with the new contract changes.
96+
97+
## For users
98+
99+
Users should be aware of the following impacts:
100+
101+
### Withdrawal flow changes
102+
103+
1. There will be a one-time invalidation of all pending withdrawal proofs created on L1.
104+
105+
2. Complete any pending withdrawals before the upgrade is executed
106+
107+
3. Avoid creating new withdrawal proofs that would not become executable in time
108+
109+
4. If a withdrawal was invalidated, submit a second withdrawal proof transaction on L1
110+
111+
This invalidation does not place any ETH or ERC-20 tokens at risk.
112+
113+
## Audit reports
114+
115+
The code for Upgrade 13 has undergone multiple audits:
116+
117+
* **Offbeat Labs**: Completed an audit and found 1 Low Severity issue which has been addressed.
118+
* **Spearbit**: Completed an audit and found 1 Medium Severity and 2 Low Severity issues. The Medium Severity issue was a design decision that conflicted with updated L2Beat Stage 1 requirements published in January 2025. The design has been modified to satisfy these requirements.
119+
* **Radiant Labs**: Completed an audit of the DeputyPauseModule with only Low/informational findings, all of which have been addressed.
120+
* **MiloTruck (independent)**: Completed an audit of the DeputyPauseModule with only Low/informational findings, all of which have been addressed.
121+
122+
## Emergency cancellation
123+
124+
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. The Optimism Foundation and Security Council will work to coordinate an emergency cancellation.
125+
126+
For more detailed information, please refer to the full upgrade proposal or reach out to developer support.

pages/stack/_meta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"components": "OP Stack components",
1111
"public-devnets": "Public devnets",
1212
"smart-contracts": "Smart contracts",
13+
"opcm": "OP Contracts Manager",
1314
"rollup": "Rollup",
1415
"fault-proofs": "Fault proofs",
1516
"transactions": "Transactions",
@@ -23,7 +24,6 @@
2324
"title": "Experimental",
2425
"type": "separator"
2526
},
26-
"opcm": "OP Contracts Manager",
2727
"interop": "Superchain interoperability",
2828
"beta-features": "Beta features",
2929
"research": "Research"

pages/stack/opcm.mdx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,19 @@ import { Callout, Tabs, Steps } from 'nextra/components'
99

1010
# OP Contracts Manager
1111

12-
The OP Contracts Manager is a contract that deploys the L1 contracts for an OP Stack chain in a single transaction. It provides a minimal set of user-configurable parameters to ensure that the resulting chain meets the standard configuration requirements.
12+
The OP Contracts Manager is a contract that deploys the L1 contracts for an OP Stack chain in a single transaction. It provides a minimal set of user-configurable parameters to ensure that the resulting chain meets the standard configuration requirements. Additionally, as of [Upgrade 13](https://gov.optimism.io/t/upgrade-proposal-13-opcm-and-incident-response-improvements/9739), instances of OPCM can upgrade existing OP Stack chains.
1313

1414
The version deployed is always a governance-approved contract release. The set of governance approved contract releases can be found on the Optimism Monorepo releases page, and is the set of releases named `op-contracts/vX.Y.Z`. It deploys the [Fault Proof System](/stack/fault-proofs/explainer), using the [PermissionedDisputeGame](/stack/smart-contracts#permissioneddisputegame).
1515

16-
* Ethereum address: [0x18cec91779995ad14c880e4095456b9147160790](https://etherscan.io/address/0x18cec91779995ad14c880e4095456b9147160790)
17-
* Sepolia address: [0xf564eea7960ea244bfebcbbb17858748606147bf](https://sepolia.etherscan.io/address/0xf564eea7960ea244bfebcbbb17858748606147bf)
18-
1916
## Purpose
2017

21-
OPCM simplifies the L1 contract deployments for new OP Stack chains. It addresses three aspects of deploying the OP Stack's L1 contracts:
18+
OPCM simplifies the L1 contract deployments for new OP Stack chains. For each smart contract release there will be a new OPCM instance. It addresses three aspects of deploying the OP Stack's L1 contracts:
2219

2320
1. **Deploy Superchain Contracts.** Superchain contracts are shared between many OP chains, so this occurs only occasionally in production.
2421
2. **Deploy Shared Implementation Contracts.** This occurs once per contracts release in production.
2522
3. **Deploy OP Chain Contracts.** This occurs for every OP chain deployment in production.
2623

27-
In a future iteration, it also is meant to handle upgrading the smart contracts.
24+
Additionally, after the Upgrade 13 network upgrade, OPCM instances will be used to upgrade existing OP Stack chains.
2825

2926
## Learn more
3027

0 commit comments

Comments
 (0)