A rollup is a blockchain built on top of another blockchain. They increase transaction throughput by moving state and logic off-chain, from the host chain, often called the Layer 1 (L1), to the rollup, or Layer 2 (L2). The first rollups were built on Ethereum, and the Ethereum roadmap has focused on rollups since their introduction because they are the easiest, most achievable way to scale Ethereum immediately. Ethereum long had serious problems with congestion during market events when the gas price 1 would skyrocket as a result of demand for limited blockspace. I remember routinely seeing $100+ fees to swap on Ethereum mainnet. That doesn't happen much anymore, if ever.

Rollups are blockchains themselves: they have their own state and history distinct from the L1 on which they are built. There are at least two types of rollups, optimistic and zero knowledge (ZK). In both rollup types, transactions submitted to the L2 are ordered into blocks by an actor called the sequencer. The sequencer posts a committment to the order to the L1 rollup contract and makes the sequenced transactions available to rollup nodes via a data availabity (DA) layer. DA can be provided by a sovereign chain like Celestia, EigenDA which is not a sovereign chain, protodanksharding a/k/a EIP4844 as enabled by the Dencun upgrade, or just plain L1 calldata as was done historically. Once made available to rollup nodes via a DA layer transaction batches are executed by rollup execution nodes in the committed order. The output of the result of executing these transactions is written to an L1 rollup contract by a proposer.

In optimistic rollups, verifiers keep the proposer honest by executing the set of sequenced transactions in parallel and verifying the output. If the proposer has committed a state not corresponding to the state computed by other verifiers, because the output is deterministic, verifiers can call out the proposer's errant behavior by providing a fraud proof. The proposer is then penalized, typically by slashing an economic bond provided by the proposer for the privilige of being able to propose. Slashing here is similar to slashing of validators in proof-of-stake (PoS) networks, and indeed these may be actors arranged in a PoS or delegated PoS (dPoS) configuration who take turns being the proposer.

In the case where the posted output root was correct, no fraud proof is submitted and no action is needed by verifiers; the output is implicitly accepted after the window to submit a fraud proof, called the finalization window, has passed. After this window, typically 7 days, the block cannot be reverted. You can read more about why the finalization window is 7 days here (hint: it's mostly arbitrary).

In ZK rollups, a finalization window is not needed because the root is not accepted unless proof of correct execution, called a validity proof, is provided. You can read more about validity proofs here. This is not a rabbit-hole I've gone down yet so I can't explain them myself.

In both rollup regimes there is a trusted party, the sequencer, which we must trust to order transactions for execution. This party can censor transaction if it wishes. But because the sequencer only sequences and does not execute, there is a way to force-include a transaction by submitting directly to the L1 contract and have the transaction executed on the L2. In this way you are your own sequencer, sequencing just one transaction, your own. You pay the cost of posting to the L1 directly in this case.

Typically the rollup sequencer is run by the rollup developer so censorship is not great optics, but recently there was a case where a sequencer was censoring transactions on a new L2 based on the OP Stack called Soneium, developed by Sony Group of all people:

The usefulness of purchasing memecoins on a rollup where the developer is actively censoring you is questionable.


  1. The price to execute transactions on the Ethereum Virtual Machine (EVM) ↩