If you've ever seen Ethereum fees spike to tens of dollars for a simple swap, you've met the scaling problem. A blockchain that every node must fully re-execute is inherently limited in how many transactions it can process, and demand regularly outstrips supply. This lesson explains why base blockchains are slow and expensive, and the dominant answer the ecosystem settled on: Layer 2 rollups, which do the work elsewhere and post proofs back to the secure base chain. Understand this and you'll know why most activity is moving off Ethereum's main chain — while still relying on it.
- Explain why a base-layer blockchain has limited throughput (the trilemma)
- Describe what a Layer 2 is and how rollups scale a chain
- Compare optimistic and zero-knowledge rollups
- Distinguish rollups from sidechains and know the trade-offs
Why base chains are slow
The core reason Ethereum is slow is also the source of its security: every node re-executes every transaction to independently verify the state. That redundancy is what makes it trustless, but it caps throughput at whatever a single ordinary node can handle — a few dozen transactions per second, not the thousands a global payment network needs. When demand exceeds that, users bid up gas fees to compete for limited block space, and costs spike. This tension is often framed as the blockchain trilemma: it's hard to have decentralisation, security, and scalability all at once, and base-layer Ethereum deliberately prioritises the first two. Scaling, then, means finding ways to get more throughput *without* sacrificing the security and decentralisation of the base chain.
Layer 2: do the work elsewhere
The winning approach is Layer 2 (L2): a separate chain that executes transactions off the main chain (Layer 1), then posts a compressed record back to L1, inheriting L1's security. The dominant kind of L2 is the rollup. A rollup executes many transactions on its own faster, cheaper chain, then 'rolls up' hundreds of them into a single batch and submits the batch's data — plus a way to verify it — to Ethereum. Because Ethereum only has to store the compressed batch and check the proof, rather than execute every transaction itself, the cost per transaction drops dramatically, while the guarantees still ultimately rest on Ethereum. Users transact on the L2 cheaply and quickly; Ethereum acts as the secure settlement layer underneath.
The key insight of a rollup: execution moves off-chain to the L2, but the transaction data and the proof of correctness are posted to L1. So anyone can reconstruct and verify the L2's state from Ethereum, which is why a rollup inherits Ethereum's security rather than trusting a separate validator set.
Optimistic vs zero-knowledge rollups
Rollups come in two flavours, differing in *how they convince Ethereum the batch is valid*. An optimistic rollup assumes batches are valid by default and posts them without a proof, but allows a challenge period (typically about a week) during which anyone can submit a fraud proof showing a batch was invalid, reverting it. It's simple and EVM-compatible, but withdrawing funds back to L1 waits out that challenge window. A zero-knowledge (ZK) rollup instead posts a cryptographic validity proof with each batch — a succinct proof that the transactions were executed correctly — which Ethereum verifies immediately. That means no challenge period and faster finality, at the cost of more complex technology. Both are widely used; the trade-off is simplicity and compatibility (optimistic) versus faster, proof-backed finality (ZK).
| Aspect | Optimistic rollup | ZK rollup |
|---|---|---|
| Validity by | Assumed, challengeable | Proven every batch |
| Proof type | Fraud proof (if disputed) | Validity proof (always) |
| Withdrawal to L1 | After a challenge period | Fast, once proof verifies |
| Trade-off | Simpler, EVM-compatible | More complex, faster finality |
Sidechains and other approaches
Not every scaling chain is a rollup. A sidechain is a separate blockchain with its own consensus and its own validators, connected to Ethereum by a bridge. It can be fast and cheap, but here's the crucial difference: a sidechain has its own security, not Ethereum's. If its validator set is small or compromised, your funds on it are at that chain's mercy, not protected by Ethereum. That's a meaningfully different trust assumption from a rollup, which posts data to Ethereum and inherits its security. When you use an L2, it's worth knowing which kind it is: a rollup borrows Ethereum's security, a sidechain provides its own.
- Rollup — executes off-chain, posts data + proof to L1, inherits L1 security.
- Optimistic rollup — valid by default, fraud proofs, challenge-period withdrawals.
- ZK rollup — validity proof every batch, faster finality, more complex.
- Sidechain — separate chain with its OWN security, connected by a bridge.
What this means in practice
For a builder or user today, the practical upshot is that most everyday activity is moving to L2s. You can deploy the very contracts from this track to a rollup and your users pay a fraction of mainnet fees for the same experience, because the tooling and the EVM largely work the same way. Ethereum's main chain increasingly plays the role of a secure base that L2s settle to, rather than where ordinary transactions happen. Bridging assets between L1 and an L2 is a normal step, though bridges are themselves a security-sensitive area (many large hacks have targeted bridges), so use established ones. The mental model to keep: L1 for security and settlement, L2 for cheap and fast execution — a layered system, much like the internet stacks protocols.
Layered model:
Layer 2 (rollup) cheap, fast execution --- users transact here
| posts batched data + proof
v
Layer 1 (Ethereum) security & settlement --- the trust anchor
// Same contracts, same EVM, a fraction of the fees on L2.