Bitcoin ABC upgrade targets problematic BCH difficulty adjustment algorithm

The development team behind Bitcoin ABC has rolled out a code geared towards on-chain scaling, proving that there is no need for any other public blockchains.

Despite being the real Bitcoin as envisioned in the original Satoshi white paper, Bitcoin (BCH) is a minority chain, and with it comes challenges. The Emergency Difficulty Adjustment (EDA) algorithm was implemented into BCH as a survival mechanism “by adjusting difficulty downward if it has only a small proportion of the hash rate.” However, the EDA has been causing wild fluctuations in hash rate as miners jump from one chain to the other.

To address this issue, Bitcoin ABC has proposed a hard fork to update the Difficulty Adjustment Algorithm (DAA). On Wednesday, Bitcoin ABC published version 0.16.0, which contains the updated DAA based on the D601 algorithm developed by Bitcoin ABC lead developer Amaury Séchet.

“This is a change to the Bitcoin Cash consensus rules, but the change does not activate until November 13th. This is a hard fork, so exchanges, wallets, and other software need to upgrade before November 13th,” Bitcoin ABC said in a statement. The development team said they “have been in communication with Bitcoin Cash miners and they are expecting this upgrade.”

The new DAA algorithm has five objectives: To adjust difficulty hash to hash rate to target a mean block interval of 600 seconds; to avoid sudden changes in difficulty when hash rate is fairly stable; to adjust difficulty rapidly when hash rate changes rapidly; avoid oscillations from feedback between hash rate and difficulty; and be resilient to attacks such as timestamp manipulation.

Séchet’s D601 algorithm was one of the three proposals—including Neil Booth’s D578 and Tom Harding’s D622—separately tested by Bitcoin ABC as well as Bitprim and blockchain technology and development outfit nChain. All three algorithms had similar results, including producing mean block times of approximately 600 seconds, which Bitcoin ABC said is “a colossal improvement over the current code.”

Meanwhile, nChain also found “D601 is the logical choice. D622 is 3.1% (+/- 1.2% at 95% CI) better in most instances, but there are edge cases against it. For example a large miner can set fluctuations into the timing.”

“We acknowledge that D601… may not necessarily have the highest performance, but since all 3 had similar performance, D601 was selected because it appears to have the least risk,” according to Bitcoin ABC.

New to blockchain? Check out CoinGeek’s Blockchain for Beginners section, the ultimate resource guide to learn more about blockchain technology.