Blockchain technology provides completely decentralized systems with very strict fault-tolerance and consistency guarantees. In Computer Science terms we would say that sequential consistency is provided in the presence of a Byzantine failure model. This may sound complicated, but it just means that nodes may fail in any way and even act maliciously. Furthermore, all members of the network see all transactions in exactly the same orders. These strong guarantees enable applications, such as cryptocurrencies, but come at a price.
Blockchain systems tend to scale badly, meaning they do not fare very well when compared to large centralized high-throughput transactions systems, such as the VISA network.
To achieve the fault-tolerance and consistency guarantees mentioned above, blockchains usually require all participating full nodes to store all state and process all transactions. This leads to very high processing and storage demands for participating nodes. To host a node for the Ethereum Blockchain, for example, a fast solid state hard drive is required. Otherwise, the node will never catch with the transaction history. Furthermore, Ethereum can currently only process around 15 transactions per second. This is clearly much lower than centralized systems can provide and frequently causes congestion. Other blockchains do not fare better.
The Scalability Trilemma
Ethereum founder Vitalik Buterin has explained the blockchain scalability issue as a scalability trilemma. The scalability trilemma states there is an inherent conflict between three basic properties: Security, Decentralization, and Scalability. It is inherently difficult, if not impossible, to provide all three properties at once. Some third-generation blockchains, such as EOS, provide scalability at the expense of decentralization. EOS reduces the number of nodes that maintain the blockchain to a mere 25, compared to the thousands of validating nodes in Ethereum or Bitcoin. Other systems arguably reduce security to achieve scalability. IOTA could perhaps be classed as such an approach, although the actual security of the system is subject of an active debate.
Whilst some trade-offs are inevitable, there are many ideas and prototypes aimed at improving scalability. One solution is to move high-throughput operations off the blockchain. Such solutions provide a second layer with less strict guarantees and use the blockchain as a settlement layer. Bitcoin’s Lightning Network and Ethereum’s Raiden Network are solutions following this approach. The down-side of these systems is the need for complex second layer architectures that have proven difficult to implement in practice.
An alternative approach is scaling on-chain. On-chain approaches at the simplest level consist in improving transaction throughput by tweaking certain blockchain parameters. Increasing the block size limit in Bitcoin Cash is a good example of this.
More sophisticated approaches focus on changing or improving consensus mechanisms, for example, Ethereum’s upcoming move to proof of stake consensus.
Sharding is a technique borrowed from database management systems. The blockchain is split up, in order to balance transaction processing and storage load across the network. In this model, sets of nodes maintain only a part of the blockchain (their shard), removing the need for all the nodes to store all state and process all transactions.
There are also hybrid approaches that move transactions off the main chain but process them in secondary chains, which may application specific. The main chain acts as settlement layer. Sidechains, such as those envisaged in Lisk, fall into this category.
Cosmos provides a “blockchain of blockchains”, which is similar in nature, although the concept is broader.
Scaling is a sensitive issue in blockchain technology. No single solution is perfect for all applications. Sidechains, for example, may work very well for certain applications, such as games, but not for others. We are likely to see a rich ecosystem of complementary approaches.