One of the key advantages of blockchain is decentralization, which is the removal of any single authority to control the network. Unfortunately, this has a downside, which is its effect on the performance of a system. Blockchain systems work by keeping all the nodes of the network in sync by trying to achieve consensus so that every computer running a blockchain sees the same system state. More nodes on the network typically result in less centralization. This also means that more work must be done to ensure that all the network participants are in agreement with each other, which limits performance and scalability.
There are a few reasons why a larger number of nodes hinders performance:
- Each node typically must process all transactions. The higher the number of transactions to be processed, the more processing power and network throughput that each node requires. As requirements go up, the network becomes less decentralized as fewer and fewer groups can afford to put the necessary machines on the network. In some areas, bandwidth may be limited. Once this limited bandwidth is exceeded, people in that area cannot participate in the network.
- More nodes also lead to more latency, as the number of peer-to-peer communications increases as each peer propagates messages across the network. While peer-to-peer communication is very efficient for this purpose, it can still lead to lagging and limit maximum throughput.
- Many blockchains require that participating nodes store the entire blockchain on the local hard drive. Both the storage requirement and the extremely long amount of time it takes to download the chain from the network act as barriers to participation, especially in areas with less consistent networks. For instance, the Ethereum blockchain is now over 400 GB in size. Without compression, this would be too big for the majority of personal laptops and many older desktop computers to store without requiring a dedicated machine to be used just for operating the blockchain.
There have been a few attempts at increasing the performance of blockchain systems. Most of these involve some level of reduced decentralization. For instance, the Bitshares-derived set of systems uses a restricted set of full nodes called witnesses, of which there are only 21. Only these computers are used to process and approve transactions; other machines on the network merely submit transactions to the network or observe. As well as many other performance optimizations made by the Bitshares team, they claim a theoretical throughput of up to 100,000 transactions a second. This leads to a second issue with blockchains, which is the cost compared to traditional approaches.