On the 15th of May 2020, the Bitcoin Cash network will undergo its latest scheduled protocol upgrade - something that occurs every 6 months. These upgrades introduce optimizations and new features that enable Bitcoin Cash to remain competitive in its mission to become peer-to-peer electronic cash for the world. In this quick video update, I’ll be detailing everything you need to know about the upgrade process and what new features to expect on Bitcoin Cash.
Protocol upgrades are executed by way of a hard fork, which is essentially a mandatory software upgrade for miners running a Bitcoin Cash full node. Hard Forks are a change in protocol rules which cause nodes running old software to refuse blocks mined by nodes running the new software. Miners will produce blocks on top of the last block which followed their rule set, so this is why all nodes must upgrade their software to achieve consensus on protocol rules.
Many uneducated persons wrongly confuse hard forking with the process of splitting the blockchain, but this cannot be further from the truth. A chain-split is a situation where miners intentionally extend the blockchain with rules that are not in consensus with the rest of the network. This is done when there is contention about the current Bitcoin roadmap and allows the freedom for parts of the community to go their own way. An example of this is Bitcoin Cash itself which split the BTC blockchain in order to free itself from a hostile takeover and return to Bitcoin’s original function as electronic cash.
The Bitcoin Cash reference client, Bitcoin ABC, has released a specification for the May 15 network upgrade that introduces 3 consensus rule changes, the first being SigChecks. This is a replacement to Bitcoin’s original SigOps counting and limiting system, which had some well known issues. SigChecks solves these issues while also making signature verification faster to compute than it was previously.
Then we have the introduction of a new operation code to the Bitcoin script system, known as OP_REVERSEBYTES. In the Bitcoin protocol bytes of data are encoded with little-endian encoding and Bitcoin script has a range of useful tools that allows this data to be used. There are however other protocols which use big-endian encoding instead, namely the Simple Ledger Protocol for tokens on Bitcoin Cash. OP_REVERSEBYTES basically allows Bitcoin script to interact with bytes encoded with big-endian, the end result being that Bitcoin script can use SLP more efficiently than it could before.
Lastly Bitcoin ABC had included code to activate an Infrastructure Funding Plan, subject to miner voting, which would direct 5% of the block reward toward funding common Bitcoin Cash infrastructure. However months prior, due to the contentious nature of this plan it was abandoned in its current form and will not activate.
In addition to all this, the protocol upgrade will introduce some recommended policy changes that do not affect the consensus rules. The main one being the limit for unconfirmed chained transactions which has been increased from 25 to 50. This limit will ultimately be removed, but more work needs to be done to find a solution which does not introduce new risks. Users of websites like Satoshi Dice have complained of errors when attempting to chain together more than 25 unconfirmed transactions, so the doubling of the limit will allow them greater freedom until a long term solution is implemented. The limit in itself is not exactly a major issue given that unconfirmed transactions on BCH are mined in the next block, every 10 minutes, and do not sit in the mempool for extended periods like they do on BTC.
Which brings us to another major difference between BTC and BCH; Bitcoin Cash is not centralized to a single full node implementation, but enjoys multiple full node implementations written by different developers in different software languages. This philosophy of having node diversity to increase robustness of the network, ultimately rose in response to BTC’s protocol being ossified by Bitcoin Core developers and their no hard forks policy. One benefit of having multiple full node implementations is that it guards against Bitcoin Core style takeovers that attempt to establish a monopoly on Bitcoin development - there is no single point of failure. If one node implementation starts doing things you don’t agree with; miners, businesses and users can simply swap over to another implementation.
In preparation for the hard fork upgrade, Bitcoin Cash’s various implementations have released updates to ensure their nodes follow the new consensus rules. Some of them have done things differently while still adhering to the rules in the specification, like the new BCH Node which will introduce the same changes as Bitcoin ABC minus the Infrastructure Funding Plan code. Bitcoin Unlimited on the other hand has included their own version of the unconfirmed chained transaction limit upgrade, where they claim to be able to safely facilitate up to 500 unconfirmed chained transactions with their node software.
This upgrade will mark the 6th Bitcoin Cash hard fork and it is expected to be a success, once again proving that hard forks and their benefits can be safely enjoyed. Bitcoin Cash has chosen a path of innovation and in doing so we have come to enjoy features like Schnorr Signatures well before BTC with less resources. But we must not allow ourselves to become complacent, we need to remain focused on building in order to be the best money the world has ever seen.