The contentious scaling debate dividing the bitcoin community for over two years now is heating up again. Given that there are groups of people which have a different idea of what ‘success’ means for the bitcoin network, we will continue to have political debates so long as the technology continues to grow.
Scaling debates are simply a growing pain of a technology that has become too successful for its current form. The scaling issue has been communicated as the ‘Block Size Debate.’ This is primarily because the limit on how many transactions can be put into each block on the bitcoin blockchain is now being challenged by high demand from users. Currently, there is a 1MB limit on the size of blocks on the blockchain, which means the network itself can only handle about seven transactions per second.
Why have a Block Size Limit at all?
We might think why have a limit on the block size at all? Originally when the software was released in 2009, there was no limit on the block size. The limit was later implemented by Satoshi Nakamoto to protect the growing network against spam transactions from bad actors.
The network has a fee market built in, so that when blocks are being filled to 1MB, the transactions with the highest fees attached to them will get priority to be added to the current block for confirmation on the network. The rest of the transactions will have to wait for a later block for inclusion.
There is an understanding by most people in the industry that the network is now in a position where the block size needs to scale. This is because it has achieved significant growth over the last few years, and soon transactions will become too expensive for users due to the high demand of the network.
The Main Contenders
There are three outcomes that could result from the current scaling debate.
Bitcoin Core – Segregated Witness (SegWit)
The Bitcoin Core team developed a solution to be able to increase the number of transactions in a block, without increasing the block size limit. They called this SegWit because it separates the verification signature from a transaction which is entered into a block. Here’s an example, let’s pretend a transaction is 60 bytes, 20 of those bytes might be used for a verification signature which is only needed at the point when miners insert the transaction into a block. SegWit allows miners to remove that signature, thereby allowing more space in a block.
This solution also fixed a long standing issue with the network called Transaction Malleability. If a transaction is malleable, there is a possibility of manipulation before it is confirmed on the network. Sounds dangerous? It is. Malleability contributed to the collapse of the first bitcoin exchange back in 2013, known as MtGox.
Bitcoin Unlimited is taking a different approach to block size. Rather than having a hard coded limit to the network they are allowing the miners to choose their block size limit. The bitcoin Unlimited ethos is advocating for removing the only point of central control from the network; the block size limit. To this group of people, success for bitcoin is to just let the network workout its scale as it goes, because they don’t believe there is a need for the block size limit at all.
The bitcoin Core team is a loosely connected group of individuals worldwide, many of which have been contributing to the bitcoin blockchain for at least five years. Bitcoin Unlimited is a recent fork of the Bitcoin Core software. Comparatively, if you look at the activity on the GitHub repositories since May 2016, if you exclude Core developers only seven developers worked on the Unlimited implementations, while on Core you see 39 developers contributing.
The risk factor of this difference in development effort is compounded by the lack of peer review of the Bitcoin Unlimited source code. Recently this contributed to a pool running Bitcoin Unlimited software mining an invalid block on the bitcoin network due to an error in the software. This cost the pool 12.5 BTC or approximately USD $12,000. Software upgrades to the bitcoin network have been compared to trying to change the parts on a plane mid-flight; it needs to be treated very carefully as there are billions of dollars that are at risk when changes are made.
Nothing gets adopted
There is a chance that none of the solutions get adopted, and the network stays as it stands today. This might seem like a failure. However, the network is working just fine as it is now. However, if demand increases as the community expects it to, the result will be very high fees for settling a transaction on the bitcoin network.
The Tension In SegWit Adoption
Generally, SegWit has the support of the whole community because most people want the bitcoin network to scale, so you might ask why this is so difficult? Many pools have already said they support SegWit. However, there is the main tension point between some of the largest miners in China like AntMiner and the expectations from the Core team.
The main issue is that there was an agreement put into place that SegWit would be accepted if an increase to the overall block size to 2MB had also been made. This was thought to have been a simple deal to satisfy both the large mining pools and the core team. However as of present, there has been no implementation of a bock size increase to 2MB, and on the Bitcoin Core website, there has been talk of SegWit giving the block size a ‘theoretical’ increase to 4MB due to the amount it has cut down transaction sizes.
As it stands both Bitcoin Cores SegWit and Bitcoin Unlimited have fluctuated at around %25–30 of votes from the miners on the network. Will the block size issue be resolved with the peaceful agreement between Core and the Miners? Or will people get fed up and start looking towards Bitcoin Unlimited, or give up hope on scaling altogether. Your guess is as good as mine.