Blockchain technology is becoming a reality. We see more and more big companies developing proof of concepts and evaluating use cases, startups launching ICOs (Initial Coin Offerings) to fund their developments and products, blockchain consortiums and federations being built and the main cryptocurrency’s tokens being valued over the hundred and even thousands of dollars. It really seems like our dearest blockchain is starting to take off. However, under my honest opinion there is still a worrying issue to be fixed before blockchain technology leaves its infancy, and this is scalability.
There is an awesome Medium article from Preethi Kasireddy explaining in a really simple way the main scalability issues of blockchain technology and some potential solutions. I really recommend you reading it to get a detailed overview of the problem. In the meantime, in the following post I would like to briefly outline my opinion on the problem.
Scalability issues in blockchain
Almost every scalability issue is related to the decentralized nature of the blockchain and the consensus algorithm used. We can not have a blockchain without these two key parts as we would not enjoy some of blockchain’s critical benefits such as fault tolerance, strong guarantees of security, political neutrality, authenticity, etc.
What the heck! Without decentralization the blockchain would not even exist…
Thus, for me the main blockchain issues are the following:
- Transaction throughput and speed: This is one of the main problems being faced already in well-known blockchains such as Bitcoin and Ethereum. Both of them, for now, are based in a proof of work consensus algorithm. Therefore, every complete node of the system will need significant computational and bandwidth requirements. Furthermore, in order for a transaction to be verified, every node of the system will have to process the transaction. All of these, makes the process of validating transactions and spreading its validation pretty slow, reducing considerably the amount of transactions per second that can be performed.
“In order to scale, the blockchain protocol must figure out a mechanism to limit the number of participating nodes needed to validate each transaction, without losing the network’s trust that each transaction is valid.
- Data Limits: Related to the transaction throughput limitations and the consensus algorithm used, a new issue appears and this is the data limit per transaction. For now, there is a data limit of the information that may be included in a single transaction. This may not be an issue in blockchains such as Bitcoin were we only record currency transactions information, however, it may be a problem for future use cases. Moreover, this fact will definitely condition the amount of transactions that may be processed per minute. A nice analysis of the amount of Gas and the amount of transaction per minute achievable by Ethereum is shown in Preethi’s Medium article.
- Large energy consumption: Current main cryptocurrencies are based of proof of work (Ok, Ethereum is evaluating proof of stake but we still have proof of work running). Proof of work requires that every miner in the network has to aim to solve a hard computational problem in order to validate a transaction. Every miner will be using a great amount of computational power to solve this problem. This computational power consumes a great amount of energy in the process, leading to its related ecological and economic problems. Furthermore, dedicating this computational power do not assure miners that they will be the ones finally validating the transaction, so if this is not the case, all the computational power used will be completely wasted. This is trying to be fixed with brand new consensus algorithms that fix, or at least minimizes this problem. I will dedicate a post on consensus algorithms in the following weeks to get a feeling on what is going on ;)
Thus, some solutions being proposed to fix these issues are the following:
- SegWit (Bitcoin-only)
- MB Block size)
- Off-chain state channels
- Off-chain computations
- Proof of stake
These solutions are mainly focused on solving the transaction throughput problem. In order not to make my article really extense, I did not spend time explaining these solutions. A great description may be found in the links provided as well as in the Preethi’s Medium article. Further solutions on other blockchain limitations will be presented shortly… keep tuned.