Type: Constitutional AIP
Abstract
This AIP proposes to upgrade Arbitrum One and Arbitrum Nova to ArbOS 40 “Callisto”. Callisto adds support for relevant Execution Layer (EL) changes from Ethereum’s upcoming Pectra upgrade (H1 2025) and a small Arbitrum Stylus related fix. Among the EL changes include a way for Externally Owned Accounts (EOAs) to execute smart contract code directly from their addresses (via EIP-7702) and new pre-compiles to efficiently perform operations over the BLS12-381 elliptic curve, including those for BLS signature verification (via EIP-2537).
While the goal of the proposed ArbOS 40 “Callisto” upgrade is to eventually be available for adoption by any Arbitrum Chain, this proposal only concerns the Arbitrum One and Arbitrum Nova chains, as these two chains are governed by the Arbitrum DAO. On a high level, an ArbOS upgrade can be interpreted as Arbitrum’s equivalent of a hard fork - more can be read about the subject over in Arbitrum ArbOS upgrades here.
Please note that ArbOS Version 40 “Callisto” is a proposed upgrade that builds upon ArbOS version 32 which has been previously adopted by the ArbitrumDAO - this proposal increments the version number to 40 instead of 33 due to technical details that allow for better Orbit chain customizability as explained here.
Changes that will be included in ArbOS 40 Callisto:
EIP-7702: Set EOA Account code
EIP-7702 introduces a new transaction type that allows Externally Owned Accounts (EOAs) to set executable code adding account-abstraction functionality to EOAs such as delegation, batching, sponsorship, and privilege de-escalation. In terms of batching, multiple operations can be combined (ex. token approval, token spend) in an atomic transaction. Transaction sponsorship or paymaster support can also be extended to EOAs. Discrete permissioning can also be enabled with the use of sub-keys.
EIP-2537: Precompile for BLS12-381 curve operations
This EIP introduces precompiles for performing cryptographic operations on the BLS12-381 curve and focuses on enhancing the efficiency and security of those operations. This cryptographic primitive unlocks 120+ bits of security for operations over the pairing-friendly curves, compared to the existing BN254 precompile which only provides 80 bits of security. BLS signature verification is the primary use case for this EIP, though many other applications that rely on point additions, multiplications, and pairing operations stand to gain from this proposal; examples are zkSNARKS, cross-chain interactions, randomness beacons, and vector commitments.
EIP-2935: Serve historical block hashes from state
This EIP proposes storing a wider window of block hashes in the storage of a dedicated system contract. Bundling historical block hashes within the state enables efficient data retrieval for applications that require extended access to historical block hashes, like stateless clients. If approved, ArbOS 40 will adapt this EIP to the L2 and store the same number of L2 block hashes that are generated in the time it takes for 8192 L1 blocks to be built - this is approximately 27 hours worth of L2 block hashes.
Minor Stylus fix to correct caching behavior for contracts that do not exist
Currently, Stylus will cache results from calling account_code and account_code_size for a contract that does not exist. We would like to propose a fix to address this so that the call returns the correct information that properly reflects the latest state of the contract’s code or code size. This change will not increment the Stylus version and so a re-activation of already-deployed Stylus contracts will not be required.
Pectra changes that are not included in the proposed ArbOS 40 Callisto Upgrade
Support and implementation for the following EIPs are not planned to be part of ArbOS 40 Callisto:
- All Ethereum Consensus Layer (CL) Pectra changes (EIP-6610, EIP-7002, EIP-7251, EIP-7549, EIP-7691) because Arbitrum chains do not have a beacon chain and therefore do not have a peer-to-peer layer like Ethereum does.
- EIP-7623: Increase calldata cost: because block size variance is less of a concern on Arbitrum chains. This is because of two reasons. First, Arbitrum chains do not require nodes to send blocks over the network through its peer-to-peer layer and instead rely on the parent chain’s RPC to retrieve block data. Secondly, because Arbitrum block sizes are already limited to ~100KB and so increasing calldata cost is not expected to reduce Arbitrum block sizes.
- EIP-7685: General purpose execution layer requests: because Arbitrum chains do not have a beacon chain and, therefore, there is nothing to request from the EL on Arbitrum chains.
- EIP-7840: Add blob schedule to EL configuration files: because Arbitrum chains do not support posting blobs on the rollup (but otherwise still does support posting blobs to Ethereum L1).
Steps to implement
More detailed information about the specific implementation and versions will be provided closer to the date of the formal on-chain Tally vote. However, this proposal will roughly follow the below steps:
- An AIP outlining the proposed upgrade and specification is proposed to the ArbitrumDAO Forum for discussion (this post)
- A temperature check vote is held on Snapshot
- Engineering work to scope out and implement the relevant changes for ArbOS 40 Callisto into the Nitro node software, relevant rollup contracts, and associated upgrade actions (this work has already begun).
- A security audit of all ArbOS 40 relevant changes is conducted by a third-party (Trail of Bits) and the audit report is published for public consumption.
- A new version of Nitro and nitro-contracts is released that support ArbOS 40 Callisto.
- Should the Snapshot vote pass, then ArbOS 40 Callisto will be deployed to both private devnets & Arbitrum Sepolia for testing.
- A formal AIP and call-to-vote is proposed to Tally for the on-chain vote.
- If the Tally vote passes, ArbOS 40 Callisto will be activated on Arbitrum One and on Arbitrum Nova following the required waiting periods and phases, as outlined in the ArbitrumDAO Constitution for a Constitutional AIP.
Note on Pectra hard fork timelines:
Similar to the ArbOS 20 Atlas upgrade and the Ethereum Dencun hard fork in March 2024, the activation timestamp for ArbOS 40 Callisto will be targeted for roughly the same timestamp as when Ethereum Mainnet hard forks. At the time of writing and as of the latest All Core Devs Consensus (ACDC) Call #150 held on Feb 6th, 2025, the timestamp of the Ethereum Mainnet fork for Pectra is targeted for April 8, 2025. The tentative dates for Ethereum Holesky and Ethereum Sepolia to upgrade to Pectra are Feb 24, 2025 and March 5, 2025, respectively. The exact slot for mainnet Ethereum is expected to be chosen on March 6, 2025.
Given that the L1 client teams are planning to release their Pectra-supported versions by Feb 13, 2025 and that the required steps for a Constitutional AIP can take up to ~41.4 days (not including engineering and audit), there is a strong likelihood that ArbOS 40 Callisto will be activated on Arbitrum One and Arbitrum Nova after Ethereum Mainnet upgrades to Pectra (if the ArbitrumDAO votes to adopt this proposal). We will endeavor to keep this proposal updated as timelines become more concrete.