There’s no doubt that blockchain technology is making a huge dent in a various different industries, but does not come without its limitations - some of them more significant than others. One particularly significant issue that keeps cropping up, again and again, is the lack of scalability.
The Big Problem With Ethereum
Due to hard-coded computation limits, the Ethereum blockchain can only process approximately 15 transactions per second. For comparison, VISA processes approximately 2,000 transactions per second and is capable of handling over 24,000 transactions per second, and PayPal can process approximately 193 transactions per second.
There are a couple of major reasons why scalability is such a problem. First, it takes a substantial amount of time to put a transaction in a block. Second, it also takes time to reach consensus.
In order to be truly revolutionary and ultimately re-shape our financial system as we know it, we must find a way to bring the capacity of blockchain technology transactions up to similar levels of centralized networks like VISA.
Why is Scaling Such a Challenge?
The Ethereum network is made up of a series of nodes that are responsible for storing both the entire transaction history of Ethereum and the current state of everyone’s account. Developers worry that if the size of each block is increased (which would enable the blocks to fit more transactions), then the data that each node will need to store will grow significantly larger.
Increasing the size of each node would effectively kick people off the network and prevent them from using it as they wouldn’t have enough resources to run them. If the node size continued to grow, it would ultimately result in only a few major companies having enough resources to run these nodes. Bitmain, for example, has been dangerously close to holding the majority of the Bitcoin hashrate, leaving the network susceptible to a 51% attack on the Bitcoin blockchain. This would completely defeat the point of the blockchain - a fully transparent, decentralized network.
Sidechains vs. Sharding
There are currently a number of different scaling solutions in the works. Sidechains and sharding are currently the two most mainstream solutions.
Sharding breaks the database down into multiple smaller parts, known as ‘shards’, and puts each part on a different server. After being split down, each part is responsible for running its own consensus protocol (at a smaller scale) and processing its own transactions. Because transactions are being processed in parallel, the network is now able to churn out a significantly higher number of transactions per second.
This technique has been around for quite a while, and it works well for centralized databases. However, our experience of using sharding with decentralized databases is currently very limited. If applied to Ethereum, this method will be much faster, and potentially even significantly cheaper, than current centralized databases such as VISA.
Similarly to sharding, sidechains allow developers to create and deploy scalable, low-cost, secure blockchain solutions. A sidechain (also referred to as a ‘child chain’ in some projects) is a separate chain to the main blockchain. It is attached to the main chain by a two-way peg. This two-way peg is useful, as it allows digital assets to be interchanged between the main blockchain and its various sidechains.
There are several notable advantages of using sidechains to enhance scalability. First and foremost, they are permanent and, once built, can be maintained and used by anyone who requires them to perform specific tasks away from the main chain. This removes the need to spend time and resources creating a new sidechain every time it is required.
Sidechains also enable interactions between different cryptocurrencies. This means that they are an ideal way for developers to test software updates and coin releases before deploying them to the main chain for widespread use.
The main issue with sidechains is that they are initially costly to create, as a large investment is required in order to make sure that they are secure. They also require a federation - a group that essentially acts as a ‘go-between’ between the main chain and the sidechains, that are responsible for locking and releasing users’ coins - which adds an extra layer between the parent chain and its sidechains. The members of this federation are chosen by the developers of the sidechains.
Which Will Come Out on Top?
Out of both solutions, sidechains are currently the most popular option used by most development teams. A large part of the reason behind this is that sharding, despite being a very popular option for many centralized projects, is still a very new concept when applied to the blockchain.
Communication within shards is currently very smooth. On the other hand, communication between different shards is currently a complicated issue that will require further development. However, if this issue is addressed, it is likely that we could witness a significantly higher rate of adoption of sharding in the near future. In fact, Vitalik Buterin himself has advocated the use of sharding in his goal to help Ethereum reach 1 million transactions per second. It’s a lofty goal, but we might be much closer than we seem to think.