This is an update on my previous blog titled “Bitcoin: A Fork in the Road” and an accompanying piece to “My friend Bitcoin has terminal cancer; long live Cash”.
For the past few years the bitcoin community has been debating how to upgrade the network to permit greater adoption. A core issue in this debate is that there is an artificial 1MB limit on the size of blocks. Due to this limit, at best 7 transactions per second can be sustained and confirmed on the next block. When more transactions happen, some do not make it onto the next block, thereby extending the settlement time.
The 1MB block limit severely limits bitcoin's adoption and if not changed, it is extremely doubtful on-chain bitcoin transactions will ever scale to Visa like levels – at least 2,000 transactions per second.
The artificial 1MB limit restricting the network to 7 transactions per second has a massive influence on the size of transaction fees. As part of bitcoin’s market-driven incentive model, miners are encouraged to include transactions onto the next block in return for a fee. If there are more than 7 transactions per second, then the miner is incentivised to include the highest paying fee transactions, leaving the lower paying transactions to wait for a later block. As the bitcoin network has become more popular, this has pushed transaction fees for next block settlement from less than a cent to a recommended $3.41 as at the time of writing this article.
Bitcoin was meant to become Global Digital Cash. Tell me who would buy their lunch if they had to spend $3.41 as a transaction fee? Even if you weren’t concerned about your transaction being included in the next block, you still likely need to pay at least 10, 20, or 30c for it to be eventually included in a block. I think that’s far too high for mainstream adoption.
The debate on scaling bitcoin – allowing more transaction throughput and lowering fees – has taken a very interesting turn of late. The Core developer group invented Segregated Witness (“SegWit”) and proposed it as a partial scaling solution. In layman terms, SegWit reduces the size of a bitcoin transaction, which means we can fit more transactions into the 1MB block. SegWit does have other features, but from a scalability issue this is its contribution. The thing is, the additional bitcoin transactions we can fit on the block is, in the grand scheme of things, not much of an improvement; maybe twice as many. The Core developers pushed SegWit without wanting an increase to the 1MB block limit. They have a plan to further scale bitcoin via second-layer implementation.
A second-layer implementation would move most transactions off the bitcoin blockchain onto a peripheral network. People will then spend and receive bitcoin on this peripheral network, which will periodically settle on the bitcoin blockchain. It is a widely held view that this scaling solution will allow low value transactions to process cheaply and quickly on the peripheral network, whilst higher value, costlier transactions will continue on the main bitcoin blockchain. We are in the very early stages of this technology's development, and so we do not know whether this proposed solution will work, and if it does, when it will be implemented.
There are many bitcoin users who either outright disagree with the aforementioned Core developer roadmap, or think we need to do something else now whilst waiting for the second-layer technology to mature. One of these other groups is proposing “SegWit2x”.
Earlier this year a group of major bitcoin players and businesses agreed to a scaling solution called “SegWit2x”. Their solution, activate SegWit and then about three months later increase the block size limit to 2MB. Thus far they have been successful in activating SegWit. The Core developers and their followers are happy with this. The next part, the 2MB block size increase is highly contentious and is scheduled for November.
You see, bitcoin is open source software, so anyone can upgrade the code and release their own version. The Core developers have announced they do not intend to upgrade their version of bitcoin to permit a 2MB block increase. This means that when the SegWit2x developers activate the 2MB increase, it will be incompatible with the Core developer version. As a result, if people are running different versions, they will not be able to transact with one another, and it’ll create two different versions of bitcoin. How much support each side has is unknown at this time.
After the upgrade to the 2MB block, the SegWit2x version of bitcoin will have increased capacity. Maybe somewhere in the order of allowing 30 to 50 transactions per second. A decent increase for now. This should have the immediate effect of lowering transaction fees. The big question is then, how will it scale later when the next capacity bottleneck happens? We don’t know because the SegWit2x developers haven’t released a roadmap for this.
Meanwhile, on 1 August another developer group decided to upgrade their version of bitcoin to allow 8MB blocks (in fact they have no limit). As this version is incompatible with Bitcoin Core (and SegWit2x), they renamed their version “Bitcoin Cash” to differentiate their bitcoin. The majority of bitcoin participants have shown their support for Bitcoin Core, however, a noticeable minority have thrown their support behind Bitcoin Cash. It has gained enough support to survive as a legitimate alternative version of bitcoin to date.
Bitcoin Cash no longer has a block size limit. This paves the way for large on-chain scalability. If Bitcoin Cash becomes popular enough, transactions fees shouldn’t skyrocket (at least not for quite some time), because there is no longer an artificial limit on the number of transactions per second the network can confirm.
Those who held Bitcoin [Core] on 1 August were given an equivalent amount of Bitcoin Cash. So right now there are two versions of bitcoin. Each has a 21 million limit. Sometime in November when the SegWit2x developers activate the 2MB increase, there may be a third bitcoin; again with a 21 million limit. This does not mean all of a sudden there are 63 million bitcoins because each version of bitcoin can only be spent on their version of the blockchain. There is no guarantee that any of these versions of bitcoin will survive.
What is going to happen with the three bitcoin? That is a huge unknown. Bitcoin [SegWit2x] has substantial business support. Bitcoin [Core] has major developer support and a vocal user following. Bitcoin Cash has minority support, but a clear advantage with regards to on-chain scalability and usability. However this all unfolds, it’s going to be very fascinating.