While many people have found that Bitcoin is a fast, relatively cheap payment method for the digital world, the reality is that this sort of functionality is not guaranteed to last forever. While the system is working pretty well right now, Bitcoin as a payment system could come to a screeching halt if too many new users decide to join the network in a short period of time.

This scalability issue is due to a few different aspects of how the protocol works, but the main problem is that preserving decentralization becomes more difficult as the number of transactions processed by the Bitcoin network grows. Figuring out how to scale Bitcoin has been a main topic of discussion for developers over the past few years, but the good news is that a variety of solutions have also been proposed over that period of time.

1. Increasing the block size limit

The bitcoin scalability solution that seems to be getting the most attention today is the idea of increasing the current block size limit. As it stands right now, the number of transactions that can be included in a new block is limited by the 1 MB block size limit. While leaving this limit where it is would not create a problem for the level of decentralization found in bitcoin, it could cause an issue in terms of much higher transaction costs. Because there is a limited amount of space in each new block, bitcoin users would eventually have to bid against each other in order to get their transactions confirmed in a timely fashion.

Of course, raising the block size limit too high could make it harder for some users to run a full node, which brings more centralization into the system. Some bitcoin developers are also concerned that raising the block size limit is essentially kicking the can down the road for another day. These developers would like to see more progress in the other scalability solutions before settling on another increase in the block size limit.

2. Payment Channels (Lightning Network)

Payment channels are a method of bringing micropayments to bitcoin. While micropayments have been a long-touted feature of bitcoin, the reality is that transactions of less than a penny are still impractical on the blockchain. The way payment channels get around this issue is by opening a direct payment channel between two parties that does not require any smaller transactions to hit the blockchain as long as the channel is open. Instead of making a bitcoin transaction for each microtransaction, users are essentially allowed to bundle a number of different transactions together into one transaction on the blockchain.

A basic implementation of payment channels is somewhat limited because it requires two parties to already have a payment channel open in order to make a micropayment. This is where the Lightning Network comes into play. The Lightning Network would create a general network of payment channels where anyone can pay anyone else through a few hops between users. In other words, Bob may not have a payment channel open with Alice, but he could have a channel open with Carol. If Alice and Carol have a payment channel open, then Bob would be able to make a payment to Alice through Carol.

For the Lightning Network to be implemented, a fix for transaction malleability must first be applied to Bitcoin.

3. Centralized servers for off-chain transactions

Centralized servers areare the most boring option when it comes to scaling bitcoin; however, these servers are already widely-used today. Coinbase, ChangeTip, and basically any bitcoin exchange are the best examples of this scalability “solution” in action.

In short, a centralized bitcoin company is able to conduct off-chain transactions when one of their users is sending some bitcoin to another one of their users. Instead of broadcasting these transactions on the blockchain, the centralized server can simply change their own, internal ledger. The obvious problem here is that a centralized server processing bitcoin transactions is no better than PayPal.

4. Open Transactions

Open Transactions is a more interesting version of the off-chain, server-based solution. The platform essentially allows for many of the advantages of a Coinbase-esque approach with quite a bit less centralization involved. Open Transactions uses a federated server model, and the servers are rather limited when it comes to their control over user accounts and issued assets. Here are some of the key advantages of the Open Transactions model when compared to something like Coinbase or ChangeTip:

Open Transactions uses untraceable cash, which means user activity cannot be tracked.

​Servers are unable to forge transactions or alter user account balances.

Voting pools make thefts of bitcoin from exchanges and bitcoin banks far less likely.

You could say that the security model of Open Transactions is somewhere between the traditional, centralized server and the new, decentralized blockchain. Monetas is currently working on an enterprise-level platform built on top of Open Transactions.

5. Sidechains

There is a debate in the bitcoin community over whether or not sidechains are actually helpful for scalability, but they seemed worth enough to include in this list. The idea is that new blockchains can be built that are interoperable with Bitcoin, which means bitcoins can be moved to these new “sidechains.” This is essentially a way to bring new features to Bitcoin -- on new blockchains -- without having to create a new altcoin.

According to a post on the bitcoin-development mailing list, Bitcoin Core Developer Jeff Garzik sees this as a step towards the many different chains that will help Bitcoin scale over time:

“Side chains are a way to scale and shard horizontally while still retaining primary security parameters of the main chain. The future is an Internet of chains, a forest of chains with bitcoin as the root chain for: factom / proofofexistence, ChainDB, Blockstream side chains, merge mined side chains, and more. A multi-chain design is much more scalable in general.”

With sidechains, one could move their bitcoin over to a faster, less-secure blockchain for purchasing their morning coffee. The fact that a sidechain has a much larger block size limit would be less of an issue when the chain is only being used for small, unimportant transactions. Although Bitcoin Core Developer Pieter Wuille disagrees with the idea of sidechains as a direct solution for bitcoin scalability, he does believe that the technology will at least allow developers to test out possible scalability solutions off the main bitcoin blockchain:

“No, sidechains are not a direct means for solving any of the scaling problems Bitcoin has. What they offer is a mechanism for easier experimentation, so that new technology can be built and tested without needing to introduce a new currency first (with the related speculative and network effect problems). That experimentation could eventually lead us to discover mechanisms for better scaling, or for more scalability/security tradeoffs (see for example the Witness Segregation that Elements Alpha has).”

6. Treechains

This final proposed solution for bitcoin scalability comes from a bitcoin developer who is perhaps the most-hated man in the industry -- at least from /r/Bitcoin’s perspective. Misunderstood Bitcoin Researcher Peter Todd first talked publicly about his treechains proposal in early 2014, and the basic idea with this scalability solution is to split up the transaction processing work between miners. In other words, every transaction does not need to be processed and confirmed by every miner. Todd explained this concept with an analogy in a March 2014 post on the bitcoin-development mailing list:

“So let's split up the transaction volume so every individual miner only needs to keep up with some portion. In a rough sense that's what alt-coins do - all the tipping microtransactions on Doge never have to hit the Bitcoin blockchain for instance, reducing pressure on the latter.”

Todd then explained how it would be advantageous to “take the linear blockchain and turn it into a tree”:

“Obviously if we could somehow split up the UTXO set such that individual miners/full nodes only had to deal with subsets of this tree we could significantly reduce the bandwidth that any one miner would need to process.”

Many have pointed out that it would be interesting to see treechains implemented as a Bitcoin sidechain, but it appears that we are still some way off from that experiment.

What is likely to happen?

Instead of focusing on one solution, there are teams of developers working on their own proposals that could help in one way or another. It’s likely that further changes to Bitcoin Core, similar to Pieter Wuille’s “headers first” and other proposals that have been implemented in past updates, will also be helpful as time goes by.

There is no “one right solution” that will solve Bitcoin’s scalability issues. It seems likely that some combination of the above (and other) solutions for bitcoin scalability will eventually make the technology useful for hundreds of millions of people around the world.