Before we look deeper, I want to post some of the charts and figures out there.
This retrospective across BCH existence from 2017 until today, from bitinfocharts.com gives a nice overview. I’ve added bars to delineate the various algorithms in use (EDA in 2017, DAA from Nov’17 to Nov’20, and ASERT from Nov’20 until today).
EDA = Emergency Difficulty Adjustment, the original retargeting algorithm
DAA = the replacement for EDA, prone to periodic oscillation
ASERT = the replacement for DAA
User enquiries into “block time stability” are primarily driven by blocks that take a long time to mine, and exacerbated if their transactions are not included in the next block.
There are good explorer sites nowadays that include how long it took to to mine each block, even helpfully color-coding the instances where blocks take long.
(In the screenshot above, the final column indicates the “T.T.M” (Time to Mine), with blocks that took < 5 minutes in green, and blocks that took > 15 mins in red)
Understandably, users notice that blocks sometimes take an hour or longer, and wonder if the ASERT DAA is meeting its stated objectives.
I’ll include here the first 8 goals from Jonathan Toomim’s ASERT post (since the last 4/12 were about the new algorithm’s design properties and not about its performance):
- [ASERT] should be stable, and not prone to oscillations;
- It should keep [transaction] confirmation times low;
- It should keep incentives for miners to perform hashrate shenanigans low;
- It should keep incentives for miners to perform timestamp manipulation shenanigans low;
- It should keep incentives for miners to perform selfish mining shenanigans low;
- Because of #3, #4 and #5, honest mining strategies with steady hashrate should get near-optimal income;
- The chain should recover quickly after sudden changes in hashrate and/or exchange rate;
- The average block interval should be kept close to the target (e.g. 600 seconds);