The Ethereum blockchain can host non-fungible tokens (NFTs), games, decentralized exchanges, and a range of applications. But it doesn’t have the capacity required to simultaneously handle thousands of transactions from all those applications. It’s more comfortable at around 15 transactions per second, far off the pace of, say, credit card networks. Developers have long looked for a way to increase the blockchain’s throughput and reduce network congestion.
The Problem Realized
The Ethereum blockchain was designed to be more flexible than Bitcoin. Not only could you send the network’s native currency, ETH, but you could also easily send other stuff, including NFTs.
Ethereum’s utility quickly proved problematic, however. In 2017, an early NFT project called CryptoKitties took off. The network struggled to handle all the transactions—it’s not just purchases and trades that get posted on the network, but also smaller transactions such as bids. During high traffic, transaction fees are designed to go up. While some people paid the ballooning levies, many grumbled or were priced out.
Ethereum had a clear problem: scalability. If a few thousand people trading digital cats could all but paralyze the blockchain, how was it going to become “the world’s computer”?
What Did Developers Do?
There were three main courses of action.
First, competitors like Solana emerged to develop alternative blockchains that could handle thousands of transactions per second. These blockchains often have their own tradeoffs—Solana, for instance, relied on a small group of “validators” to verify transactions, which worked well but at some cost to security—but generally host all the same types of applications as Ethereum.
Second, Ethereum developers researched network upgrades and scalability solutions. The most promising was sharding, which involves splitting a chain into many smaller chains. Like Bitcoin, Ethereum was originally designed so that every node is responsible for verifying the blockchain’s state. That level of redundancy is hard to scale. Sharding fixes that by removing the requirement that every node participate in validating every transaction. By splitting responsibilities between users, the network can process many more transactions per second.
Finally, many have looked to develop products that could help scale Ethereum by connecting to it.
The Four Types of Scaling Solutions
There are four basic categories of scaling solution, each with subcategories:
One potential solution is keeping transactions off the main chain via state channels. With state channels, one party puts ether into a sort of escrow account to open the channel, and any transactions are tallied offchain—that is, on a separate network that then submits its results back to the main protocol—before a final transaction closes the channel. Think of it like keeping a restaurant tab where your card is only swiped at the beginning and end. Due to some shortcomings, state channels have fallen out of favor. For one thing, they can require users to commit a lot of capital, decreasing their liquidity.
Plasma involves bridging Ethereum via a smart contract to a plasma, or “child,” chain, where transactions will be executed. While plasma chains can harness some of Ethereum’s underlying security, their setup more or less requires users to trust chain operators not to act maliciously. Though once promising, the idea has also fallen out of favor.
The most popular sidechain is the Polygon proof-of-stake chain. Essentially, you can lock your ETH into place on Ethereum and then mint tokens to represent that value over on Polygon, akin to changing out your dollar bills at the casino in exchange for chips to spend at the blackjack table. While sidechains are like plasma chains, one key difference is that they create their own security. It’s like leaving the safe confines of Ethereum to cross a bridge with a sign that reads: “Enter at your own risk.”
Rollups aren’t to the side of the main blockchain but are instead built right on top of it. Therefore, they are known as layer-2 blockchains. Their main function is to roll up multiple transactions into one, execute them on their chain, and then send back a compressed bit of data to the main chain to show that the transactions have taken place.
There are two general types of rollups: optimistic rollups and zero-knowledge (zk) rollups. Optimistic rollups save space by assuming transactions are valid. To prevent bad transactions from getting finalized on Ethereum, validators can submit “fraud proofs” that show that the network’s state was incorrectly changed.
Zk-rollups, on the other hand, use zero-knowledge cryptography to cut out most of the data that needs to be sent back to the main chain; this reduces the transaction size, abetting scaling. (For more on zero-knowledge proofs, see our explainer on zkEVMs.)
Since at least 2021, Ethereum creator Vitalik Buterin and others have looked to a combination of network upgrades, sharding, and rollups as a solution to Ethereum’s scaling issues.
Most external interest in scaling is focused on rollups. In March 2023, Polygon, long known for its sidechain, unveiled its zkEVM—a way to make Ethereum more compatible with zk-rollups. In the same month, Coinbase jumped into the layer-2 game by building its own rollup on Optimism’s open-source stack.