You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Information about testing the Superchain withdrawal pause functionality.
3
+
description: Notice about the Superchain withdrawal pause test.
4
4
lang: en-US
5
5
content_type: notice
6
-
topic: pause-withdrawal-test
6
+
topic: superchain-pause-test
7
7
personas:
8
8
- chain-operator
9
9
- node-operator
10
-
- user
11
10
categories:
12
11
- security
13
-
- automated-pause
14
12
- protocol
13
+
- infrastructure
14
+
- l1-contracts
15
15
is_imported_content: 'false'
16
16
---
17
17
18
18
import { Steps, Callout } from'nextra/components'
19
19
20
-
# Superchain withdrawal pause test
20
+
# Superchain withdrawal pause test
21
21
22
+
<Callouttype="info">
23
+
* Sepolia Superchain withdrawal pause test is scheduled for **April 14th 2025**
24
+
* Mainnet Superchain withdrawal pause test is scheduled for **April 30th 2025**
25
+
</Callout>
22
26
27
+
The Optimism Collective will be testing improved incident response features on the Sepolia Superchain.
28
+
29
+
## What's happening
30
+
31
+
1. During this excercise, the privileged [`GUARDIAN`](/superchain/privileged-roles#guardian) address will call the `pause` function on the `SuperchainConfig`.
32
+
2. Members of the Optimism Collective's security team will ensure that the pause is executed correctly and the incident response improvements worked as intended.
33
+
3. Then the `unpause` function will be called to resume normal operations.
34
+
35
+
To learn more about this functionality, please refer to this [documentation](/stack/security/pause).
36
+
37
+
This functionality is important for the security of the Superchain and should be understood by Chain Operators, users, and especially for centralized exchanges and third-party bridge operators. **Please note that this will not effect any L1-to-L2 deposit transactions or L2 transactions. No action is required from users or operators.**
Copy file name to clipboardExpand all lines: pages/notices/upgrade-15.mdx
+48-3
Original file line number
Diff line number
Diff line change
@@ -40,13 +40,58 @@ For more information on the Isthmus implementation details, please review [Isthm
40
40
41
41
## For chain operators
42
42
43
-
Chain operators should upgrade their nodes ahead of the activation times to a release that contains the Isthmus changes and has the activation times for their chains baked in, or set the activation times manually via overrides. The details are outlined in the node operator section below.
43
+
Chain operators must upgrade their nodes ahead of the activation times to a release that contains the Isthmus changes and has the activation times for their chains baked in, or set the activation times manually via overrides. The details are outlined in the node operator section below. Additionally, chain operators must update `op-batcher` to [`v1.12.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.12.0) and should update `op-challenger` to [`v1.3.3`](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.3.3).
44
44
45
-
In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/upgrade-14) are required to utilize this new functionality.
45
+
In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/upgrade-14) are required to utilize this new funcationality.
46
46
47
47
### For permissionless fault proof enabled chains
48
48
49
-
In addition to the upgrade 14 contract updates. Chains running permissionless fault proofs will need to deploy new dispute game contracts with new absolute prestates. The new op-program release that contains the activation timestamps will be available soon.
49
+
Chains running permissionless fault proofs will need to deploy new dispute game contracts with new absolute prestates. The new 64 bit version of cannon will be utilized moving forward. The Sepolia Superchain, will utilize [op-program/v1.6.0-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.6.0-rc.1). The following permissionless fault proof Sepolia chains are: `Base Sepolia`, `Ink Sepolia`, and `OP Sepolia`.
50
+
51
+
<Steps>
52
+
### Verify the new absolute prestate
53
+
54
+
The absolute prestate is generated with the [op-program/v1.6.0-rc.1](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.6.0-rc.1). You can use this new absolute prestate (`0x03394563dd4a36e95e6d51ce7267ecceeb05fad23e68d2f9eed1affa73e5641a`) for the following chains:
You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/5f003211aed7469eed7df666291a62c025d1c46c/Makefile#L129-L131) in the root of the monorepo on the `op-program/v1.6.0-rc.1` tag:
59
+
60
+
```shell
61
+
make reproducible-prestate
62
+
```
63
+
64
+
You should expect the following output at the end of the command:
During the previous step, you also generated the preimage of the absolute prestate, which is basically the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `0x03394563dd4a36e95e6d51ce7267ecceeb05fad23e68d2f9eed1affa73e5641a.bin.gz`.
78
+
79
+
Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games.
80
+
81
+
### Deploy new dispute game contracts
82
+
83
+
You will then take the absolute prestate and deploy new `FaultDisputeGame` and `PermissionedDisputeGame` contracts with that value.
84
+
85
+
### Update the DisputeGameFactory
86
+
87
+
You will then need to update the `DisputeGameFactory` to point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`.
88
+
89
+
### Execute the upgrade
90
+
91
+
Once your `op-challenger` is ready with the new preimage, you can execute the "Set Dispute Game Implementation" transaction. Please simulate and validate that the expected output prior to executing the transaction.
92
+
</Steps>
93
+
94
+
The new op-program release that contains the Mainnet activation timestamps will be available soon.
Copy file name to clipboardExpand all lines: pages/stack/security/pause.mdx
+14-9
Original file line number
Diff line number
Diff line change
@@ -23,15 +23,16 @@ is_imported_content: 'false'
23
23
The [`OptimismPortal`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/L1/OptimismPortal.sol) is the low-level L1 message passing contract present on all standard OP Stack chains.
24
24
This contract handles the L1 side of the communication channel between an OP Stack chain and its L1 parent chain.
25
25
26
-
As a safety mechanism, the `OptimismPortal` contract can be configured to be pausable by a specific`GUARDIAN` address.
26
+
As a safety mechanism, a privileged`GUARDIAN` address can pause withdrawals.
27
27
When paused, the `OptimismPortal` contract will prevent L2-to-L1 transactions from being executed.
28
28
This is a backup safety mechanism that can be used to help mitigate potential active security concerns.
29
29
30
-
Pause functionality and [two-step withdrawals](https://web.archive.org/web/20230608050641/https://blog.oplabs.co/two-step-withdrawals/)were introduced to the OP Stack to mitigate the risk of withdrawal bugs that have led to exploits in other bridging systems.
30
+
Pause functionality were introduced to the OP Stack to mitigate the risk of withdrawal bugs that have led to exploits in other bridging systems.
31
31
32
32
## Pause functionality
33
33
34
-
The `OptimismPortal` can be configured to allow a `GUARDIAN` address to pause and unpause L2-to-L1 transactions from being executed.
34
+
The `OptimismPortal` points to a `SuperchainConfig` smart contract which has a privileged `GUARDIAN` address that can pause and unpause L2-to-L1 transactions from being executed.
35
+
The `SuperchainConfig` contract is a shared implementation across the Superchain. All Optimism-governed chains point to it, and any OP Stack chain can point its `SuperchainConfigProxy` to this shared implementation.
35
36
L2-to-L1 transactions allow users and smart contracts on the OP Stack chain to send messages to the L1 parent chain.
36
37
Pause functionality allows a `GUARDIAN` to halt L2-to-L1 transaction execution for the OP Stack chain in question.
37
38
L1-to-L2 transactions are not affected by pause functionality.
@@ -41,13 +42,17 @@ Pauses are designed to be a backup safety mechanism and are expected to be used
41
42
42
43
## Pause and unpause functions
43
44
44
-
The `GUARDIAN` can pause and unpause L2-to-L1 transactions at any time by calling the [`pause`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/L1/OptimismPortal.sol#L151-L156) and [`unpause`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/L1/OptimismPortal.sol#L158-L163) functions on the `OptimismPortal` contract.
45
-
Additional controls on the `GUARDIAN` address can be implemented by configuring the `GUARDIAN` as a smart contract.
45
+
The `GUARDIAN` can pause and unpause L2-to-L1 transactions at any time by calling the [`pause`](https://github.com/ethereum-optimism/optimism/blob/856c08bf84d9aa829d1e764fc8e9a37d41960ba0/packages/contracts-bedrock/src/L1/SuperchainConfig.sol#L66-L71) and [`unpause`](https://github.com/ethereum-optimism/optimism/blob/856c08bf84d9aa829d1e764fc8e9a37d41960ba0/packages/contracts-bedrock/src/L1/SuperchainConfig.sol#L73-L78) functions on the `SuperchainConfig` contract.
46
46
47
47
## Guardian address
48
48
49
-
The `GUARDIAN` address is initially configured when the OP Stack chain is deployed and can be modified by the network's administrative address or smart contract.
50
-
A chain can choose to remove the `GUARDIAN` role by configuring the `GUARDIAN` to be an inaccessible address such as the [zero address](https://etherscan.io/address/0x0000000000000000000000000000000000000000).
49
+
The `GUARDIAN` address is configured in the `SuperchainConfig` contract and can be modified by the network's administrative address or smart contract. To learn more about the privileged role, see [documentation](/superchain/privileged-roles#guardian).
51
50
52
-
The `GUARDIAN` address is set as an `immutable` variable inside of the `OptimismPortal` contract.
53
-
To change the `GUARDIAN` address, the `OptimismPortal` proxy contract must be upgraded to a new implementation contract that has a different `GUARDIAN` address.
51
+
The `GUARDIAN` address is set as an `immutable` variable inside of the `SuperchainConfig` contract.
52
+
To change the `GUARDIAN` address, the `SuperchainConfig` proxy contract must be upgraded to a new implementation contract that has a different `GUARDIAN` address.
53
+
54
+
## Additional information
55
+
56
+
While this funcationality is available for the OP Stack protocol, it does not cover the security of centralized exchanges and third party bridges.
57
+
If you operate a centralized exchange or third party bridge, you should monitor this contract and pause withdrawals from the Superchain if you see that it has been paused.
58
+
If you'd like to learn more about the privileged roles in the OP Stack, see the [privileged roles](/superchain/privileged-roles) documentation.
Copy file name to clipboardExpand all lines: pages/superchain/privileged-roles.mdx
+13-15
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,7 @@ import { Callout } from 'nextra/components'
21
21
22
22
OP Stack chains follow a [Pragmatic Path to Decentralization](https://blog.oplabs.co/decentralization-roadmap/).
23
23
In their current state, OP Stack chains still include some "privileged" roles that give certain addresses the ability to carry out specific actions.
24
+
Members and users of the Superchain Ecosystem should be aware of these roles and their associated risks because they're shared across many OP Stack chains.
24
25
Read this page to understand these roles, why they exist, and what risks they pose.
25
26
26
27
## L1 Proxy Admin
@@ -39,8 +40,8 @@ The L1 Proxy Admin is an address that can be used to upgrade most OP Stack chain
***Optimism Governed Chains on Ethereum**: [`0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A`](https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A)
44
+
***Optimism Governed Chains on Sepolia:**[`0x1Eb2fFc903729a0F03966B917003800b145F56E2`](https://sepolia.etherscan.io/address/0x1Eb2fFc903729a0F03966B917003800b145F56E2)
44
45
45
46
## L2 Proxy Admin
46
47
@@ -69,8 +70,8 @@ The L2 Proxy Admin is an address that can be used to upgrade most OP Stack chain
***Optimism Governed Chains on Ethereum**: [`0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b`](https://optimistic.etherscan.io/address/0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b)
74
+
***Optimism Governed Chains on Sepolia:**[`0x2FC3ffc903729a0f03966b917003800B145F67F3`](https://sepolia-optimism.etherscan.io/address/0x2FC3ffc903729a0f03966b917003800B145F67F3)
74
75
75
76
76
77
## System Config Owner
@@ -90,8 +91,7 @@ The System Config Owner is an address that can be used to change the values with
The System Config owner is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry).
95
95
96
96
## Batcher
97
97
@@ -112,8 +112,7 @@ OP Stack chains nodes will look for transactions from this address to find new b
The proposer address is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry).
146
144
147
145
## Challenger
148
146
149
147
### Description
150
148
151
-
The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role.
149
+
The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role. It is important to note that this is different from the [`op-challenger`](/stack/fault-proofs/challenger) services that challenges invalid output roots.
152
150
153
151
### Capabilities
154
152
@@ -166,8 +164,8 @@ The Challenger is an address that can participate in and challenge `Permissioned
Copy file name to clipboardExpand all lines: pages/superchain/superchain-registry.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ import { Callout } from 'nextra/components'
20
20
21
21
# The Superchain Registry
22
22
23
-
The Superchain Registry serves as the source of truth for who's in the Superchain Ecosystem and what modifications they've made. The Superchain Registry introduces:
23
+
The [Superchain Registry](https://github.com/ethereum-optimism/superchain-registry/tree/main) serves as the source of truth for who's in the Superchain Ecosystem and what modifications they've made. The Superchain Registry introduces:
24
24
25
25
* A step-by-step process new chains can follow to join the Registry
26
26
* Validation checks to ensure standard chains comply with the Standard Rollup Charter and non-standard chains pass baseline validation before joining the Superchain Registry
0 commit comments