First and foremost, blockchains need to address the scalability issue.
What do we mean exactly by scaling in the context of blockchains? A core security feature, but also a capacity limitation, of public blockchains such as Bitcoin and Ethereum is that their protocols require every transaction to be processed by every single full node in the network. Every operation that takes place on the blockchain, such as a payment or a deployment of a smart contract, must be replicated by all full nodes. This is what makes public blockchains secure, autonomous, and decentralized at the same time. Participants don't have to rely on someone else to tell them what the current state of the blockchain is; they figure it out for themselves.
This puts a constraint on a blockchain's transaction throughput. It cannot be higher than the processing capacity of individual nodes, some of which may be quite limited. For example, some nodes may use less powerful computers, such as consumer devices. However, they are still very important to keep the network as decentralized as possible. We don't want all mining to be concentrated in large industrial-scale mining facilities, which would reduce decentralization and hence diminish the core value proposition of blockchain. This would make it resemble the current state of the internet, which is basically an oligopoly dominated by tech giants such as Google, Amazon, and Facebook, or the current shape of the financial sector, an oligopoly dominated by huge multinational banking groups.
Therefore, some modifications and upgrades are needed in order to scale blockchain technology to a global user base of billions of people, commensurate with that of the internet, and at the same time keep it as decentralized as possible.
Blockchain scaling solutions are commonly categorized into two types:
- On-chain or layer 1 solutions, which are so called because they involve modifying the main underlying blockchain infrastructure
- Off-chain or layer 2 solutions, which develop additional network infrastructure that connects to the main blockchain but operate separately from it
To give you a useful analogy, imagine that we have a speedway and we want to upgrade it to allow for faster commuting by vehicles between two cities. Perhaps this speedway passes through a picturesque natural landscape with mountains, lakes, and rivers. The road may be a bit narrow and its pavement may be a little rough and uneven, so it doesn't allow for very high speed. The road may also not follow a straight line between the two cities and have a lot of turns, uphill, and downhill sections in order to go around lakes or Climb Mountains. Now, there are two main approaches to upgrade this road to allow for faster travel and higher throughput of vehicles. We can either make it wider or improve the quality of its pavement, or we can build additional infrastructure, such as tunnels and bridges, to enable quick passage through mountains, lakes, and rivers. Or, we can do both, as all these solutions are complementary to each other.
This is the path Ethereum is following. There are a number of projects working on various scalability solutions for Ethereum, employing many talented developers. They go along the following lines:
- Layer 1 on-chain solutions include switching from Proof-of-Work to the Proof-of-Stake consensus algorithm and implementing a technique called sharding.
- Layer 2 off-chain solutions include state channels, a lightning network called Raiden, a new concept layer for scaling smart contracts called Plasma, and another solution for processing complex computations called Truebit.
The different projects are seen in the following diagram:
Next, we'll have a closer look at them. You can imagine that these new technologies can be quite complex, but we'll try to explain them without getting too technical.