A rollup executes transactions off Ethereum but publishes enough data to Ethereum that anyone can rebuild its state, and it has Ethereum judge whether each new state is correct. The two families differ only in how Ethereum judges. Optimistic rollups (Arbitrum, OP Stack chains such as OP Mainnet and Base) assume a posted state is valid unless someone proves it wrong during a challenge window. ZK rollups (Starknet, zkSync Era, Scroll, Linea) post a cryptographic validity proof that L1 verifies before accepting the state.
The parts every rollup has
- Sequencer. Orders user transactions and produces L2 blocks quickly. On most rollups today this is a single operator.
- Data publication. Batches of transactions (or state diffs) are posted to Ethereum. Since the Dencun upgrade (EIP-4844) most rollups use blobs, which are cheaper than calldata and are pruned by consensus nodes after about 18 days. That is long enough for anyone to download and verify them.
- State commitment. A contract on L1 records claimed L2 state roots.
- Bridge contract. Holds deposited assets on L1 and releases them against a state root that L1 has accepted.
- Proof system. The piece that convinces L1 a state root is correct. This is where the two families split.
Posting the data to L1 is what makes it a rollup. If the data lives somewhere else (a committee or a separate DA layer), the design is usually called a validium or optimium, and it adds that data provider as a trust assumption.
Optimistic rollups: fault proofs
A proposer posts a state root and puts up a bond. Nobody proves anything unless there's a dispute. During the challenge window (about a week on Arbitrum One and OP Mainnet), any honest party that re-executes the batches and gets a different result can challenge.
Disputes are settled by interactive bisection. The two sides keep splitting their disagreement in half, first over blocks, then over the steps of execution, until they disagree about a single instruction. L1 then executes just that one step on-chain and decides who is right. The loser forfeits their bond.
- Arbitrum compiles its state transition function to WebAssembly (WAVM) and proves single WAVM steps on L1. Its current dispute protocol, , lets anyone take part in validation and is designed to bound how long a dispute can drag on.