Deep Dives

In-Depth Discussions of Current Bitcoin Issues

A Comparison of On-Chain and Off-Chain Scaling

Coinbase has given users access to their Bitcoin Cash after months of waiting.  Many users may find them similar and be confused by the strong stances of the two sides.  The main difference is that Bitcoin is trying to scale with off-chain solutions, where as Bitcoin Cash wants to scale purely on-chain.

Bitcoin Cash was started in August 2017 by a group opposed to the implementation of Segwit.  Segwit provided a minor upgrade to on-chain scaling by making each Segwit transaction require less space in a block.  Segwit also enables innovative technologies, such as the Lightning Network, to be implemented on top of Bitcoin that would allow for off-chain scaling. Bitcoin Cash supporters believe that off-chain scaling is not the best solution, so they opted to try to scale Bitcoin by increasing the block size.  This difference in views on how to scale is the main difference between the two coins. The scaling issues have come under additional scrutiny as Bitcoin adoption drives up fees to new heights.

The concept of on-chain scaling preached by Bitcoin Cash is that all transactions, whether it be a million dollars or a morning coffee, should be included in a block and stored on the blockchain forever.   Bitcoin also currently uses on-chain transactions, although Lightning Network is being tested as an off-chain solution.  The on-chain transaction capacity of Bitcoin can be viewed by using a block explorer.  It is easy to see that the average block has about 2,500 hundred transactions, for slightly over 4 transactions per second (tx/sec or tps).  This is the important metric we will be looking at.  This number will likely increase to around 8 tx/sec once Segwit is more widely adopted, but it will never be able to go beyond that without a block size increase. (The theoretical limit is slightly higher, the 8 tx/sec is assuming realistic average transaction sizes instead of the absolute minimum.)

Bitcoin Cash has increased the maximum block size from 1 MB to 8 MB.  Assuming full blocks with typical transaction sizes, these blocks would process roughly 35 transactions per second.  Currently blocks are not reaching the maximum size and the result is that transactions with little to no fee are still confirmed in the very next block, waiting less than ten minutes.  The developers have implied that when blocks begin to fill consistently the block size will continue to be increased.  At the time of writing this most blocks have under 1000 transactions in them despite the low fees, so the issue of the next block size increase is far off.

This information correctly points out that transactions are currently better processed by Bitcoin Cash, but that will likely not hold true in the long term.  Block size increases are not a realistic road map for replacing mainstream payment methods such as Visa.  Visa currently handles somewhere between 2,000 and 4,000 tx/sec depending on the demand at the time.  The limit on transactions per second is over 50,000.  For Bitcoin Cash to meet the demand of Visa blocks would need to be hundreds of MBs.

So why is this an issue?  Big blocks make it very difficult to run a node.  Nodes are important on the network for relaying transactions and recording them in the blockchain.  There is no incentive to run a node, but thousands of people do.  It gives them a voice on what should be happening with Bitcoin and it is the place where the blockchain is stored.  Nodes need enough internet bandwidth to download a block every 10 minutes, as well as the storage to keep these transactions forever.  Pruning techniques help significantly with the storage aspect but it is still a large burden. Nodes are an essential part of the Bitcoin and Bitcoin Cash networks and many people fear that huge blocks would lead to nodes only being operated by a few centralized parties, as it would be impractical for regular people to run them on their personal computers.  The optimal block size is controversial, but it is important to keep in mind that the system must still work 50 years or more down the road.

Bitcoin is working on off-chain scaling.  The Lighting Network would allow users to send funds off-chain through channels set up by users.  Whatever channels are set up with the lowest fees will be used, leading to a competitive market to reduce fees.  This new method of transacting will allow people to send funds without it permanently being recorded on the blockchain.  The main draw of the system is that the more people who participate, the higher the transaction limit would be.  Only when channels are closed would something from these off-chain transactions need to be saved to the blockchain. 

In summary, Bitcoin and Bitcoin Cash mainly differ on how to scale the network to allow for more transactions.  When competing with Visa’s 2,000 or more tx/sec this becomes a daunting task, as Bitcoin is currently only processing around 4 transactions per second.  Bitcoin Cash provides a band aid for this problem by raising the block size, but this is not enough to allow for mainstream adoption.  Transaction processing needs to increase by orders of magnitude if Bitcoin wants to compete with the likes of Visa, Venmo, PayPal, and actual cash.  Bitcoin Core team is working on projects like Lightning Network that could provide these solutions.  Thus, I feel that both current adoption and long-term viability favor Bitcoin over Bitcoin Cash.

Maxwell Bilodeau