The Bitcoin scalability problem can be solved by scaling the blockchain in different ways. Scaling means increasing Bitcoin’s throughput and improving its programmability. Bitcoin could achieve this by implementing the following solutions:
Bitcoin Layers
The easiest way to scale Bitcoin without making protocol changes is through off-chain protocols, such as Layer 2 networks and sidechains. These protocols are built on Bitcoin or run parallel to it, and they can operate without posing any risks to the underlying Bitcoin blockchain. Moreover, most Bitcoin layers use Bitcoin as the settlement layer, allowing them to inherit its security and decentralization properties.
The goal of Bitcoin layers is to improve transaction speeds, lower costs, and enhance programmability through complex smart contracts. They leverage different technologies such as rollups, sidechains, and state channels to achieve scale. However, this is not a straightforward process, and it could lead to the creation of new problems.
For example, while Layer 2 or sidechain transactions eventually settle on the Bitcoin blockchain, BTC held off the main chain may face centralization and security risks. Another possible issue that Bitcoin layers encounter is a lack of interoperability.
Fortunately, BitcoinOS is developing a solution that offers interoperability and near-trustless BTC rails. This new off-chain protocol leverages “sovryn” rollups to minimize congestion on the Bitcoin blockchain. The protocol is a superchain that can host multiple interoperable and composable rollups, allowing users to move from one dapp to another seamlessly.
BitcoinOS’s near-trustless BTC rails minimize the centralization and security risks associated with Layer 2 and sidechain bridges.
Improved Consensus Mechanisms
A blockchain’s consensus mechanism is the process the chain uses to achieve a unified agreement on the network’s state in a decentralized manner. Bitcoin uses the Proof-of-Work (PoW) consensus mechanism, requiring miners to invest a lot of computational power to secure the network.
PoW is based on a miner’s capacity to prove that a computational task is complete. This task entails finding a hash that is below a certain difficulty level. The miner that does this the fastest gets to add the next block of transactions to the chain. In return, they earn fees originating from the transactions in that block and a block reward in the form of newly mined BTC.
The problem with PoW is that blocks are only added to the chain every 10 minutes on average, slowing down transaction speeds. To improve this, Bitcoin could—in theory—shift to a different consensus mechanism with separate rules where the block time is shorter.
However, changing these rules would require both miners and Bitcoin code maintainers to agree on the shift. Attaining approval from all the relevant stakeholders is not an easy feat. Furthermore, many people in the Bitcoin community believe PoW is the best consensus mechanism, and it would be difficult to convince them to move to something else. Moving away from PoW would expose Bitcoin to many undesirable risks and would eliminate the fair distribution of new Bitcoin.
Due to these difficulties, it’s easier to implement a different consensus mechanism on a sidechain running parallel to Bitcoin. In order to achieve scale, the sidechain’s consensus mechanism would accept a shorter block time than Bitcoin’s. Sidechains are suitable for improving a Layer 1’s consensus algorithm because they are independent blockchains linked to the main chain by a two-way peg bridge.
Nested Blockchains
Nested blockchains are Layer 2 scaling solutions where secondary chains are hosted within or on top of a Layer 1 blockchain. The main blockchain is the “parent” while the nested blockchains are “child” chains. The child blockchains run according to the parent chain’s rules.
However, the parent chain delegates different tasks to the child chains such as the execution of transactions to help reduce congestion on the main chain. In return, child chains are responsible for sending the result of the delegated tasks to the parent chain.
By dividing labor among the different child chains, Layer 1 blockchains could achieve better transaction throughputs. Furthermore, child chains may be designed to communicate with each other, creating efficiency within the entire ecosystem. Another characteristic of child chains is that they may be allowed to operate a different consensus mechanism than the parent blockchain. This means they can process transactions faster under shorter block times.
Nesting is an emerging blockchain scaling solution that has been utilized on very few blockchains. For example, the technology has been implemented in Ethereum’s OmiseGo’s Plasma project. There have been no attempts so far to build a nested blockchain for Bitcoin.
Batched Transactions
Batching transactions entails compressing many transactions into a single transaction to lower costs and maximize storage space. This process involves creating and deploying a smart contract that can hold many transactions and process them as one. The cost is shared among all the transactions in the batch, reducing fees for users.
Moreover, batching multiple transactions together is storage efficient, allowing each block to hold more transactions. This results in more transactions being processed, leading to higher transaction speeds. Batching can be applied using various types of rollups, such as validity, sovereign, and optimistic.
Currently, projects are using different types of rollups to scale Bitcoin. For instance, BitcoinOS utilizes “sovyrn” rollups, which roll up multiple transactions into a single transaction. When applied to Bitcoin, batching could help the blockchain process bulk payments from millions of users across the globe.
Sharding
Sharding is an on-chain scaling solution that divides a blockchain into smaller segments called shards. Each shard contains its own independent state and transaction history, effectively creating multiple smaller blockchain networks operating in parallel.
Also, each shard is responsible for managing a specific data segment, rather than having one single chain process all the transactions. Transactions that involve data spanning multiple shards are processed through special "shard chains" that allow the distinct shards to communicate and stay synchronized. Therefore, sharding distributes the workload among multiple segments. This helps the blockchain run faster, boosting transaction speeds and efficiency.
Besides enhancing transaction throughput, sharding is beneficial because network nodes do not have to store the entire blockchain history, saving them storage resources. Instead, nodes are only required to maintain the data of their shards.
Increased Block Sizes
Increasing the block size is another on-chain solution that could be applied to Bitcoin through a protocol upgrade. However, larger block sizes can also be implemented on Bitcoin layers, enabling them to process transactions faster. The upside with larger blocks is that they can hold more transactions, enabling a blockchain to process more transactions per second.
Bitcoin has an interesting history of attempts to increase the block size. Between 2015 and 2017, the Bitcoin community underwent a block size “war” where one side (the small blockers) wanted to keep it at 1 MB or raise it using the SegWit soft fork. The other side, the big blockers, wanted to change Bitcoin’s code to support a block size of 2 MB or even 8 MB. Since the big blockers were determined to have their way, several hard forks occurred, creating new coins. Ultimately, all Bitcoin hard forks were unsuccessful, and the SegWit upgrade was implemented, making small blockers the winner of the block size war.
It is unlikely that Bitcoin will ever undergo another soft fork to increase the block size. Therefore, the blockchain will have to rely on Bitcoin layers with larger block sizes to solve the scalability problem.