Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
LABS
Guides

How to Plan Rollup Upgrade Paths

A technical guide for developers on planning and executing protocol upgrades for Optimistic and ZK Rollups, covering governance, testing, and migration.
Chainscore © 2026
introduction
STRATEGY

How to Plan Rollup Upgrade Paths

A systematic guide for developers on planning and executing protocol upgrades for Ethereum rollups, covering governance, testing, and deployment strategies.

Planning a rollup upgrade requires a structured approach that balances innovation with security. Unlike a monolithic blockchain, a rollup's upgrade path involves multiple components: the smart contracts on the base layer (L1), the sequencer software, and the prover system (for ZK-rollups). Each component has different failure modes and upgrade mechanisms. A successful plan begins with a clear upgrade specification that documents the changes, their rationale, and the expected impact on users and applications. This specification should be publicly available for community review, especially for rollups with decentralized governance.

The core technical challenge is managing the upgradeability of the L1 contracts. Most rollups, like Optimism and Arbitrum, use proxy patterns with an upgrade key controlled by a multisig or DAO. The critical step is to establish and test a timelock mechanism. A timelock enforces a mandatory delay between when an upgrade is scheduled and when it executes, giving users and application developers time to react or exit. For example, a 7-day timelock is a common security practice. All upgrades should be simulated on a testnet or devnet that mirrors the mainnet environment, including forking the Ethereum mainnet state.

For the sequencer and node software (the "off-chain" components), a different strategy is needed. These are typically open-source clients, and upgrades are coordinated through client releases. A hard fork coordination process similar to Ethereum's is often used. Rollup teams announce a fork block number or timestamp, and node operators must update their software before that point. To ensure a smooth transition, provide migration guides, backward compatibility where possible, and clear rollback procedures. For ZK-rollups, upgrading the proving system (e.g., moving to a new proving scheme or circuit) requires extensive trusted setup ceremonies or verifier contract updates, which must be planned months in advance.

A comprehensive testing and rollout plan is non-negotiable. This involves multiple stages: 1) Unit and integration tests in a isolated environment, 2) End-to-end tests on a public testnet (like Sepolia or Goerli), 3) A shadow fork of the mainnet to test the upgrade mechanics with real state without impacting users, and 4) A gradual mainnet rollout, potentially using canary releases or enabling new features behind governance-controlled flags. Tools like Tenderly for simulation and OpenZeppelin Defender for managing admin proposals are invaluable for this process.

Finally, communication and post-upgrade monitoring are critical for success. Publish a detailed upgrade announcement well before the timelock period begins, covering the what, why, and how for all stakeholders. Monitor key metrics post-upgrade: block production, transaction finality, bridge operations, and RPC endpoint health. Have a prepared incident response plan to pause the sequencer or, in a worst-case scenario, execute an emergency state freeze via the L1 contracts. By treating upgrades as a continuous process of specification, testing, communication, and observation, teams can minimize risk and maintain network stability.

prerequisites
ROLLUP OPERATIONS

Prerequisites for Planning an Upgrade

A methodical approach to planning a rollup upgrade requires establishing a clear foundation. This involves defining your goals, understanding your current architecture, and assembling the right tools and team.

Before drafting an upgrade plan, you must define the specific objectives driving the change. Are you implementing a new precompile for a custom cryptographic operation? Are you upgrading the underlying virtual machine, like moving from the EVM to a zkEVM? Or are you patching a critical security vulnerability? Each objective dictates a different upgrade path, timeline, and risk profile. A performance enhancement may allow for a more gradual rollout, while a security fix demands an urgent, coordinated execution. Clearly document the success criteria for the upgrade, such as reduced gas costs, new feature availability, or a specific security audit result.

Next, conduct a thorough audit of your current system state. This includes mapping all core components: the sequencer, the data availability layer (e.g., Ethereum calldata, Celestia, EigenDA), the prover system (for ZK-rollups), and the bridge contracts on L1. You need to know the exact versions of your node software, smart contracts, and any off-chain services. For contract upgrades, identify which components are proxy patterns (like OpenZeppelin's TransparentUpgradeableProxy or UUPS) and which are immutable. This inventory is critical for understanding the upgrade's scope and identifying single points of failure.

With goals and architecture in hand, you must establish the technical prerequisites. This involves setting up a comprehensive testing environment that mirrors mainnet as closely as possible. You'll need a forked testnet of the underlying L1 (e.g., using Foundry's anvil or Hardhat's forking feature) to deploy and test your new contracts. For the rollup node, a devnet or long-running testnet is essential to validate sequencer and prover changes under load. Ensure your team has the tooling for state migration simulations and can generate the necessary upgrade payloads, such as L1 governance proposals or sequencer configuration files.

Finally, no upgrade plan is complete without a rollback strategy. Define the conditions that would trigger an abort, such as a critical bug discovered in the first blocks after activation or a failure in the state transition. Your plan should include the technical steps to pause the sequencer, revert to the previous contract implementation via the proxy admin, and resume operations from the last valid state. Document this procedure and conduct a tabletop exercise with your operations team. A successful upgrade is not just about deploying new code; it's about having a proven method to recover if something goes wrong.

key-concepts-text
ARCHITECTURE

How to Plan Rollup Upgrade Paths

A structured approach to managing protocol evolution, from governance to execution, ensuring security and minimal disruption.

Planning a rollup upgrade begins with establishing a clear governance framework. This defines who can propose changes—often token holders, a multisig council, or core developers—and the process for approval, such as on-chain voting via Snapshot or a DAO. A formal Rollup Improvement Proposal (RIP) system, inspired by Ethereum's EIPs, provides structure for documenting technical specifications, security audits, and community feedback before any code is deployed. This upfront governance prevents contentious hard forks and aligns stakeholders on the upgrade's objectives, whether it's for new precompiles, virtual machine enhancements, or fee mechanism changes.

The technical planning phase involves designing the upgrade with a focus on backward compatibility and state migration. For optimistic rollups, this often means deploying a new version of the L1OutputOracle or L2OutputOracle contract on the parent chain. For ZK-rollups like zkSync Era or Starknet, it requires generating new verifier contracts for updated proof systems. A critical step is planning the state transition: will the upgrade require a regensis (a new, empty state root), or can it migrate the existing state via a one-time migration contract? Tools like Hardhat or Foundry are essential for simulating the upgrade on a forked testnet to identify integration issues with existing dApps.

Execution requires a phased deployment to minimize risk. Start with a long-running testnet that mirrors mainnet conditions, followed by a shadow fork—a copy of the live network used for final validation. The actual upgrade is typically executed via a timelock contract on the L1, which enforces a mandatory delay between the governance vote and code execution, providing a final safety window. For sequencer and prover infrastructure, a canary release strategy is recommended, where a subset of nodes runs the new software while monitoring for bugs before a full rollout. Post-upgrade, maintain emergency rollback procedures, such as the ability to pause the sequencer or revert to a previous verifier contract, to handle critical failures.

upgrade-components
DEVELOPER GUIDE

Upgradable Rollup Components

A modular approach to rollup design is essential for long-term viability. This guide covers the core components that can be upgraded and the frameworks that enable it.

ROLLUP GOVERNANCE

Comparison of Upgrade Strategies

A technical comparison of common approaches for upgrading the core components of an L2 rollup, focusing on security, complexity, and decentralization trade-offs.

Upgrade ComponentHard ForkGovernance-Controlled ProxyMulti-Sig TimelockSecurity Council

Upgrade Initiation

Node operator consensus

On-chain token vote

Multi-signature wallet

Elected council vote

Execution Speed

< 1 block

1-7 days (voting period)

24-48 hours (timelock)

1-3 days (deliberation)

Decentralization

High

Medium (voter apathy risk)

Low

Medium-High

Developer Overhead

High (coordination)

Medium (governance tooling)

Low

Medium (council management)

Revert Capability

Impossible post-finality

Requires new proposal

Possible during timelock

Possible via council vote

Typical Use Case

Protocol-breaking changes

Major feature releases

Emergency security patches

Balanced parameter updates

Security Risk

Low (social consensus)

Medium (governance attack)

High (key compromise)

Medium (sybil/collusion)

Adoption Examples

Ethereum Mainnet

Optimism, Arbitrum

Early-stage rollups

zkSync Era, Starknet

step-by-step-process
GUIDE

How to Plan Rollup Upgrade Paths

A structured, step-by-step process for developers to plan and execute secure, low-risk upgrades for Layer 2 rollups.

Planning a rollup upgrade is a critical engineering process that balances innovation with network stability. Unlike a simple smart contract migration, a rollup upgrade involves coordinated changes across multiple components: the sequencer, data availability layer, prover (for ZK-rollups), and the on-chain bridge/verification contracts. The primary goal is to introduce new features, fix bugs, or improve performance without causing chain splits, fund loss, or extended downtime. A formalized plan mitigates these risks by ensuring all state transitions are handled correctly and providing a clear rollback path if issues arise.

The first step is defining the upgrade scope and requirements. Document the specific changes, such as upgrading the OP Stack or Arbitrum Nitro version, modifying precompiles, adjusting gas parameters, or integrating a new proof system. For each change, assess the impact: Is it backwards-compatible? Does it require a hard fork (state-breaking change) or a soft fork (consensus rule change)? Hard forks necessitate a coordinated upgrade of all nodes, while soft forks can be more gradual. Create a test plan that includes unit tests, integration tests, and a testnet fork of mainnet state to simulate the upgrade under realistic conditions.

Next, design the technical implementation and migration path. For smart contract upgrades, use proxy patterns like TransparentProxy or UUPS to delegate logic to a new implementation contract. For node client upgrades, prepare new binaries and detailed installation instructions. Crucially, plan the state migration. If the upgrade modifies how state is stored or accessed (e.g., changing a storage layout), you must write and test a migration script that transforms the existing state tree to be compatible with the new rules. This script must be executed atomically at the upgrade block.

A comprehensive communication and governance timeline is essential. For permissioned or managed rollups, the timeline might be set by the core team. For decentralized rollups, upgrades typically require governance approval via a token vote. The public timeline should include: 1) Announcement Date with upgrade specifications, 2) Testnet Deployment for community validation, 3) Governance Proposal Snapshot, 4) Mainnet Upgrade Block Height (set 2-4 weeks after approval), and 5) Post-Upgrade Monitoring Period. Tools like Upgrade Executor contracts can enforce time-locks and multi-sig controls.

Finally, execute the dry-run and contingency planning. Conduct a shadow fork: a separate network that mirrors mainnet's exact state and transactions, where you rehearse the entire upgrade process, including the switchover and post-upgrade validation. Define clear rollback criteria (e.g., sequencer halting, invalid state root) and a rollback procedure. This often involves pausing the bridge, reverting to the previous node client version, and potentially using an escape hatch mechanism. Document all steps in a runbook. After the mainnet upgrade, monitor key metrics like block production, bridge activity, and RPC health for at least 72 hours before declaring success.

ROLLUP UPGRADE PATHS

Common Mistakes and How to Avoid Them

Planning a rollup upgrade is a complex, high-stakes process. This guide addresses frequent pitfalls in upgrade path planning, from governance to execution, to help teams avoid costly delays and vulnerabilities.

Rollup upgrades involve a multi-layered stack, each with its own upgrade mechanism and security model. A smart contract upgrade typically changes logic in a single EVM environment. A rollup upgrade must coordinate changes across at least three critical layers:

  • Sequencer Software: The node software that batches transactions. Upgrading this often requires a hard fork of the rollup client.
  • Bridge & Prover Contracts: The L1 smart contracts that verify state roots and proofs. These require their own governance and security audits.
  • Data Availability Layer: Changing from one DA solution (e.g., Ethereum calldata) to another (e.g., a dedicated DA chain) is a fundamental architectural shift.

Failure to plan for the interdependencies and timings between these layers is a common source of failed upgrades.

ROLLUP UPGRADES

Frequently Asked Questions

Common questions and technical details for developers planning rollup upgrade paths, from governance to execution.

In rollup contexts, a hard fork is a non-backward-compatible upgrade that requires all nodes (sequencers, validators, RPC providers) to update their software to continue participating. This is typically used for major protocol changes like altering the state transition function or consensus mechanism. A soft fork is a backward-compatible upgrade; older nodes can still process new blocks but may not understand new features. Rollups often use hard forks for upgrades because they control the client software centrally. For example, upgrading an OP Stack chain from Bedrock to Canyon requires a coordinated hard fork where all sequencers switch to the new client version at a specific L1 block.

conclusion
IMPLEMENTATION ROADMAP

Conclusion and Next Steps

A successful rollup upgrade is a continuous process, not a one-time event. This guide has outlined the core principles and technical steps. The final phase involves synthesizing this knowledge into a concrete plan and preparing for the future.

Your immediate next step is to formalize your upgrade strategy document. This living document should detail your chosen upgrade mechanism (e.g., a transparent proxy with a time-locked governance multisig), the specific roles and permissions for your team, and a clear rollback procedure. Crucially, it must include a comprehensive testing and simulation plan. This plan should cover unit tests for new logic, integration tests with the sequencer and data availability layer, and, most importantly, a full-state fork test on a testnet that mirrors mainnet conditions. Tools like Foundry's forge and Hardhat are essential for this phase.

Beyond the technical deployment, consider the operational and community aspects. Develop a phased communication timeline for your users and ecosystem partners. Announce the upgrade proposal well in advance, publish the audit reports, and provide clear documentation on any required actions from dApp developers or end-users. For governance-managed upgrades, ensure the voting process is transparent and allows sufficient time for deliberation. Post-upgrade, establish a monitoring period where you track key metrics like transaction success rates, gas costs, and sequencer health to confirm the upgrade's stability.

Finally, treat each upgrade as a learning opportunity to improve your process. Analyze what worked and what didn't. The rollup ecosystem is rapidly evolving, with new standards like EIP-4844 (proto-danksharding) for data availability and advancements in zero-knowledge proof systems directly impacting upgrade paths. Stay engaged with the core development communities for your stack (OP Stack, Arbitrum Nitro, zkSync Era, etc.) and participate in governance forums. By building a robust, repeatable upgrade framework today, you ensure your rollup can securely and efficiently adopt the innovations of tomorrow.