|
| 1 | +--- |
| 2 | +title: Upgrade 14 MT-Cannon and Isthmus L1 Contracts |
| 3 | +description: Learn how to prepare for upgrade 14 breaking changes. |
| 4 | +lang: en-US |
| 5 | +content_type: notice |
| 6 | +topic: upgrade-14 |
| 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 14: MT-Cannon and Isthmus L1 Contracts |
| 21 | + |
| 22 | +<Callout type="info"> |
| 23 | + Upgrade execution timelines are being publicly tracked in this [release management project board](https://github.com/orgs/ethereum-optimism/projects/117/views/12) and are subject to change. Here are the following expected timelines: |
| 24 | + |
| 25 | + * OP Sepolia, Ink Sepolia, and Minato Sepolia upgrades are targeting **April 2nd, 2025**. |
| 26 | + * OP Mainnet, Soneium Mainnet, Ink Mainnet are expected to execute Upgrade 14 on **April 25th, 2025**. |
| 27 | + * Other Optimism governed chains' upgrades will be tracked in the release management project board. |
| 28 | +</Callout> |
| 29 | + |
| 30 | +This page outlines changes related to the Upgrade 14 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-14-mt-cannon-and-isthmus-l1-contracts/10123) and the governance vote is available [here](https://vote.optimism.io/). |
| 31 | + |
| 32 | +If you experience difficulty at any stage of this process, please reach out to developer support. |
| 33 | + |
| 34 | +## What's included in Upgrade 14 |
| 35 | + |
| 36 | +Upgrade 14 contains two main components: |
| 37 | + |
| 38 | +* **MT-Cannon**: An upgrade to the fault proof VM that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. |
| 39 | +* **Operator Fee**: Introduction of the first phase of a mechanism addressing challenges in accurately pricing user fees when chains employ ZK proving, alt-DA, and custom gas tokens. |
| 40 | + |
| 41 | +## Technical details |
| 42 | + |
| 43 | +### MT-Cannon |
| 44 | + |
| 45 | +MT-Cannon is an upgrade to [Cannon](/stack/fault-proofs/cannon), the [fault proof VM](/stack/fault-proofs/fp-components#fault-proof-virtual-machine) that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. |
| 46 | + |
| 47 | +Key changes: |
| 48 | + |
| 49 | +* The emulated CPU architecture is now MIPS64 instead of MIPS32 |
| 50 | + * Registers now hold 64-bit values |
| 51 | + * Memory address space is dramatically expanded |
| 52 | + * New 64-bit specific instructions added for operations on 64-bit values |
| 53 | +* Supports reading 8 bytes of data at a time from the pre-image oracle instead of 4 |
| 54 | +* Multithreading support |
| 55 | + * Concurrency via multitasking |
| 56 | + * VM now tracks ThreadState objects for each thread |
| 57 | + * Thread-safe memory access enabled by Load Linked Word (ll) and Store Conditional Word (sc) instructions |
| 58 | + * Extended syscall support for multi-threading |
| 59 | +* Improved exception handling for unrecognized syscalls |
| 60 | + |
| 61 | +After this upgrade, the on-chain implementation of the fault proof VM will be [MIPS64.sol](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/cannon/MIPS64.sol) instead of [MIPS.sol](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/cannon/MIPS.sol). |
| 62 | + |
| 63 | +### Operator Fee |
| 64 | + |
| 65 | +This introduces two new rollup operator configured scalars: |
| 66 | + |
| 67 | +* `operatorFeeScalar` |
| 68 | +* `operatorFeeConstant` |
| 69 | + |
| 70 | +These parameters are factored into the fee calculation as follows: |
| 71 | + |
| 72 | +``` |
| 73 | +operatorFee = operatorFeeConstant + operatorFeeScalar * gasUsed / 1e6 |
| 74 | +
|
| 75 | +totalFee = operatorFee + gasUsed * (baseFee + priorityFee) + l1Fee |
| 76 | +``` |
| 77 | + |
| 78 | +The scalars will be updated via the SystemConfig L1 contract. A new fee vault, the OperatorFeeVault, will store the operator fee. While this feature is included in the upgrade, it is disabled by default and will be enabled in a future hardfork. |
| 79 | + |
| 80 | +### Absolute Prestate |
| 81 | + |
| 82 | +Beginning with this upgrade, op-program absolute prestates will now use the "cannon64" variant. This upgrade includes [the absolute prestate for op-program 1.5.1-rc.1, which is `0x03ee2917da962ec266b091f4b62121dc9682bb0db534633707325339f99ee405`](https://github.com/ethereum-optimism/superchain-registry/blob/main/validation/standard/standard-prestates.toml). |
| 83 | + |
| 84 | +## For chain operators |
| 85 | + |
| 86 | +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`, `Unichain Mainnet`, `Mode Mainnet`, `Zora Mainnet`, `Arena Z Mainnet`, `Swell Mainnet`, and `Metal Mainnet`. Depending on the current state of the chain the execution times will vary. If your Optimism governed chain is not in this list, please reach out to OP Labs Solutions Engineering to coordinate your upgrade. |
| 87 | + |
| 88 | +For chain operators running fault-proof infrastructure, ensure you are running up-to-date versions of the following: |
| 89 | + |
| 90 | +* op-challenger: `op-challenger/v1.3.3` (preferred) or at least `op-challenger/v1.3.1` |
| 91 | +* op-dispute-mon: `op-dispute-mon/v1.4.0` |
| 92 | + |
| 93 | +## For node operators |
| 94 | + |
| 95 | +Node operators should ensure they are running an up-to-date version of op-node that can handle new events emitted from the `SystemConfig` contract: |
| 96 | + |
| 97 | +* op-node: `op-node/v1.12.2` |
| 98 | + |
| 99 | +## Audit reports |
| 100 | + |
| 101 | +The code for Upgrade 14 has undergone multiple audits: |
| 102 | + |
| 103 | +* **Spearbit**: Completed an audit of MT-Cannon. Details available [here](https://github.com/ethereum-optimism/optimism/blob/develop/docs/security-reviews/2025_01-MT-Cannon-Spearbit.pdf). |
| 104 | +* **Coinbase Protocol Security**: Completed an audit of MT-Cannon. Details available [here](https://github.com/ethereum-optimism/optimism/blob/develop/docs/security-reviews/2025_01-MT-Cannon-Base.pdf). |
| 105 | + |
| 106 | +## Emergency cancellation |
| 107 | + |
| 108 | +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. |
| 109 | + |
| 110 | +For more detailed information, please refer to the full upgrade proposal or reach out to developer support. |
0 commit comments