Bitcoin Cash’s hard fork debuted earlier than scheduled, however, a number of bugs on the Bitcoin ABC client have been reported to make the chain experience some issues.
The Bitcoin Cash hard fork happened on May 15, 2019, and it apparently suffered from three interconnected issues. The first problem was a loophole which was used to create an “attack transaction,” which resulted in the mining of empty blocks. This prompted the miners to panic and reject the new chain, choosing to mine on the original chain before the fork instead.
The FUD generated by the empty blocks split the chain’s consensus, leading to different nodes winding up on different chains.
BitMEX researchers also observed that BCH miners and developers attempted to get back the funds erroneously sent to SegWit addresses, however, this was not possible due to the chain’s weak structure, leading to a “deliberate and coordinated 2 blockchain re-organisation.”
BitMEX also stated:
“According to our calculations, around 3,392 BCH may have been double spent in an orchestrated transaction reversal, but the only victim with respect to these double spent coins could have been the original ‘thief.’”
Bitcoin Cash – The hardfork and all the events summarized in one picture
In the below image we have attempted to illustrate all the relevant events:
* The hardfork
* A chainsplit (With asymmetric validity conditions)
* A bug causing empty blocks
* A non-consensus re-org pic.twitter.com/RX3V29nyMQ
— BitMEX Research (@BitMEXResearch) May 15, 2019
The Three Issues of the BCH Fork
The Bitcoin Cash hard fork came with three critical issues: empty blocks, an asymmetric chain split and the coordinated 2 Blockchain reorganization. It is suspected that at least two of these issued were due to a bug which generated the empty blocks.
Bitcoin ABC chain is a vital software application for Bitcoin Cash, and it seems that a bug in this implementation resulted in “validity conditions for transactions to enter the memory pool to be less onerous than the consensus validity conditions.”
An independent hacked detected the bug in the Bitcoin Cash ABC chain and used it after the hard fork was done, in order to destabilize the chain.
“The hacker just had to broadcast transactions that met the mempool; validity conditions but failed consensus checks. When miners then attempted to produce blocks with these transactions, they failed. Rather than not making any blocks at all, as a fail-safe, miners appear to have made empty blocks, at least in most of the cases.”
The empty blocks apparently discouraged the miners, as on the original pre-hard fork Bitcoin ABC 0.18.2 node a new block numbered 582,680 was added. The miners might have done this move “thinking that the longer chain was in distress and may revert back to before the hardfork.”
According to the BitMEX researchers, a few blocks after the hard fork upgrade, a blockchain re-organization of length two was executed on the hard forked side of the chain.
From the 137 transactions on the abandoned block 582,698, only 111 were recorded on the new chain; thus suggesting that a two-block double spend occurred in the remaining 25 transactions.
The researchers concluded that the current issues of Bitcoin Cash could have been averted if better practices were instilled during the hard fork upgrade. BitMex Research will be offering more updates on the matter and cautions miners not to use the network until the issues have been fixed.