The Bitcoin Cash (BCH) blockchain typically sees around 6 blocks found every hour. In recent days, an unknown entity was at times mining as many as 12 BCH blocks per hour, prompting community debate regarding the cause of the anomalous rapidity.
Early on, two main theories about the episode rose to the fore, namely that a consensus attack was in play or that a miner or mining pool was switching from Bitcoin (BTC) to BCH in such a way so as to mine as advantageously as possible, temporarily causing bad oscillation in the 32 MB spinoff chain’s difficulty adjustment algorithm (DAA) that’s designed to keep BCH blocks arriving every 10 minutes on average.
As the dust around the incident has settled, that latter theory seems to provide the best explanation for the source of the activity.
There appear to be some problems with BCH mining, perhaps related to the difficulty re-targeting algorithm. It also appears one entity is now in effective control of mining.
I'm curious to learn what is going on here. Anyone know more? https://t.co/6la25oM8lx
— Andreas (aantonop) (@aantonop) October 27, 2019
Word of the unusual behavior gained wider attention after Bitcoin and open blockchain scholar Andreas Antonopoulos highlighted an October 26th Twitter thread from the account of hash.fail, a rebrand of the Zerononcense industry blog published by editor, blockchain researcher, and security specialist James Edwards.
“That’s Absurd”
In their analysis, hash.fail noted the address at the center of the activity, qqq9v3hhl0vga8w5cts6dx5aa8xep2v2ssvppp5xcn, had been the “recipient of countless coinbase rewards, so its more than reasonable to suggest that whatever entity/entities its attached to = connected/working in unison.”
hash.fail explained the address had won an “absurd rate” of coinbase rewards — the 12.5 BCH presently rewarded to miners who generate new Bitcoin Cash blocks — during a two hour window on October 26th as an example of the entity’s atypical prowess.
6a/ $BCH has a different retargeting algorithm than $BTC (diff formula), but they are both still designed to manufacture adjusting difficulties that target a consistent 10-minute block time.
Thus, on average, there should be 6 blocks/hour found.
— James Edwards (@librehash) October 26, 2019
hash.fail urged caution until the “issue is resolved” and said they’d been in touch with Bitcoin Cash developers who were “aware of the problem” but considered the situation as effectively “out of their hands.”
Interestingly, one day after the posting of this analysis thread the “qqq9v3 …” address stopped receiving coinbase rewards — at least temporarily — after seemingly earning them on a continuous basis since September 16th, 2019, when the address materialized with its first reward.
Rather a Case of Bad Oscillation?
In responding to Andreas Antonopoulos’s request for more information on the incident, the pseudonymous Zawy pointed to research they posted one month prior, one titled “BCH Needs a New DA” and “Oscillations in Simple Moving Averages.”
Zawy — an electrical engineer and pioneer of Reverse Nakamoto Consensus who has been noted by colleagues at Komodo Platform as perhaps the “industry’s foremost authority on Difficulty Adjustment Algorithms” — accordingly argued that bad oscillation in Bitcoin Cash’s difficulty algorithm was the true cause of the unusual activity.
According to Zawy’s cited research, the crux of the matter appear’s to be the current style of Bitcoin Cash’s difficulty algorithm, which is known as a Simple Moving Average (SMA).
“This is because miners have [probably unconsciously] found a beneficial oscillating pattern based on the SMA window width,” the expert has previously said, arguing elsewhere that an alternative Linear Weighted Moving Average (LWMA) style could prove considerably more difficult to game by miners.
In a related October 28th conversation with ProgPow developer Kristy-Leigh Minehan, Zawy offered more specific suggestions on how the bad oscillations might be addressed, saying the implementation of something “like LWMA” would help and that malicious mining could be largely mitigated by “changing difficulty during block.”
My suggested modification is changing difficulty during block, based on timestamp miner gives in header he's solving. Nodes & previous blocks force a tight range on that timestamp. If he big miner wants to pay 5% more in difficulty for several blocks he can drive it up….
— zawy (@zawy3) October 28, 2019
“It does seem like your [LWMA] suggestion would work well,” Minehan said.
Whether such as LWMA style will ever be implemented in Bitcoin Cash remains to be seen, as it will be up to the project’s various community stakeholders to decide.
Beyond the recent spate of debated mining activity, those same community stakeholders have also been talking about Bitcoin Cash’s planned November 15th upgrade, which will add more complex multi-signature functionalities among other things.