Scalability is the property of any system to handle an increasing amount of work by making important changes to the system in terms of adding resources to the system. Blockchain scalability refers to handling an increasing amount of transactions.
Scalability in blockchain refers to increasing the capacity to handle more transactions at a time. Though running a Bitcoin node is relatively cheap. However, since thousands of transactions are happening at the same time which requires all nodes to stay updated with each other, or else it will cause certain limitations to the capacity of the blockchain.
Let’s take an example of a carrier with a limited number of seats. Travelers can be guaranteed a reservation at the time they get the ticket. Now, if everyone is trying to book the tickets at the same time, naturally, the prices will rise due to an increase in demand. You can think of making a ticket reservation by paying a higher price for the tickets.
Here, blockchain can be assumed as a train service that departs at set intervals. And, one solution to this is that we can increase the number of seats in the carrier. But, there is no surety that the seats won’t fill up as they did previously. Another limitation to this is that the carriages can’t be perpetually widened. Therefore, the idea of increasing the capacity of the train does not provide a permanent solution to the problem.
The problem of blockchain scalability often creates a challenge in meeting goals within the bitcoin blockchain network. Whereas, we are not calling scalability a problem, but addressing the problem of applying scalability in the bitcoin blockchain. In short, we are facing problems expanding the bitcoin network to meet our needs. This gives rise to on-chain and off-chain scaling solutions, in which the transactions are made without bloating on to the Bitcoin blockchain.
The Bitcoin scalability solutions can be classified into three major layers:
A sidechain is a separate blockchain that is pegged in some ways to the main blockchain. Also, both the main chain and side chain are interoperable.
Suppose, Alfa, wants to exchange her bitcoins for the equivalent units, let's call the exchange units side coins. With sidechains, one can easily perform specific tasks on some specialized platforms. You can think of a child chain to get the idea of the side chain. Rolling with the parent or main blockchain is the child’s analogy, where the child chain has enough resources to do some house chaos.
Coming to Alfa, to make the transactions on the side chain, she has to send the request for exchanging her Bitcoins to a predetermined address. This address will then credit Alfa’s sidechain with 5 side coins after successfully receiving five Bitcoins from her on the main blockchain. The protocol will automatically credit the side coins once the software detects the payment successfully.
[caption id="attachment_179592" align="aligncenter"] Concept of sidechains[/caption]
The best part of using the side chain is that the process is reversible. Alfa has converted her bitcoins into side coins but she can always reverse the process.
The benefit of transacting on a sidechain is that now she is free to transact on a separate sidechain. The transaction will be made in terms of side coins.
Payment channels network serves the same purpose as side chains, but both are fundamentally different. PCN pushes the transactions off the main chain to prevent the main blockchain from being bloated. However, they don’t require a separate blockchain to function.
Payment channels network use smart contracts to enable users to transact without publishing their transactions on the blockchain. The user does not share the direct payment channel and route the transactions through intermediaries for a nominal fee.
To understand the working of the Payment channels network, let’s assume an example of two friends Alfa and Beta. They both deposit coins in a joint address they own which is a multi-signature address. Both parties need to sign for the funds to be spent. Basically, which means funds cannot move out without the consent of both of them.
Suppose each of them has 10BTC i.e. total of 20 BTC on the address. Now alfa sends 5 BTC to Beta and again sends one more BTC later. These transactions are available on their balance sheet.
Interoperability and scalability are inter-related in many ways. As a solution to facilitate interactions between both, the concept of cross-chain came into existence.
Cross chains provide a platform that lets various blockchains interact with each other. At the same time, cross-chain could enhance scalability by leveraging the throughputs of existing blockchains.
The off-chain computation is an execution model where the state transition function is computed by the off-chain node. The off-chain node is the arbitrary node which is not necessarily a part of the blockchain network.
Fig: Transaction processing through off-chain computations
Moreover, anyone who is processing the transaction with off-chain will remain private during and after the execution of the transaction. So, the outputs produced are sent to the main blockchain, which verifies the results first before updating the status.
The scalability problem has certain relevance associated with the block size. And, increasing block size enables the block to include more transactions. Here are some approaches that are focused on these ideas are:
Public blockchains that operate as decentralized involve contributions from a large number of participants who are constantly working on the authentication of transactions occurring on the blockchain and its mining activities.
Importantly, these publicly shared ledgers need efficient, real-time, functional, reliable, and secure mechanisms. So, the consensus is a set of rules that decides on the contribution of various participants on the network.
The type of consensus mechanism is:
The process of sharding seeks to split the blockchain network into shards that contain their data. So, the data is processed and stored in the shard, rather than channeling the data through all the nodes in the network.
Moreover, an increase in the number of users on a network leads to a slow network. So sharding, basically, breaks the network apart. This will prioritize the data horizontally dividing it into shards. And, each shard can be shared with other shards and is accessible to every user and allows everyone to see them.
Directed Acyclic Graph (DAG) provides energy-efficient block sequencing algorithms. It is a protocol alternative to traditional blockchain and can be categorized as a distributor ledger technology. Moreover, DAG adds transactions to a network in a completely different way, which are linked with each other, rather than joined together and processed. It increases the TPS than any standard blockchain. Hence, calculating TPS rates into several thousand.
Furthermore, there are multiple challenges yet to overcome scalability and interoperability in the blockchain. In conclusion, the article provides an overview of approaches to blockchain scalability and its solution. Each solution has been covered separately to provide readers a better understanding.