Should Bitcoin Cash ditch their Difficulty Adjustment Algorithm — DigiShield?
There’s been a lot of completely misguided sensationalism lately around Bitcoin Cash and their block timings.
I’ve done an article in the past which has shown how bad the Bitcoin difficulty adjustment algorithm (DAA) is compared with DigiShield. With DigiByte, over 24hrs, the block timing was out by a little under 2 minutes (0.1%) compared with BTCs almost 3 hours (8.4%) when it was tested.
And so this is being brought to light now in the public eye, which is fantastic! However we have a lot of BTC bandwagoners jumping onboard without any *real* substance behind what they’re saying. A shitload of opinion, but almost no facts.
Take this tweet for example from Jameson Lopp:
If you were to take it at face value, you’d presume that BCH was suffering horribly.
However, what this doesn’t tell you about is why this is occurring, or, what the actual *stats* themselves are.
So, when Bitcoin Cash (BCH) forked from BTC, they basically couldn’t find a block, because there was significantly less hashrate being thrown at BCH, compared with BTC. This emergency fork was to allow hashrate to come and go at exponential rates, preventing the blockchain from stalling, while maintaining a stable block-timing.
It’s worth noting that’s a subtle difference from what Jameson Lopp described.
This is why BCH used a DAA based off DigiShield.
You see DigiShield was originally created by DigiByte in 2014 when DigiByte and Dogecoin and a number of other chains were being hit hard by multi mining pools. They’d bring 10X the hashrate, mine blocks while difficulty was low, then when the difficulty had adjusted and skyrocketed they would up and disappear leaving the “tribalistic miners” to clean up the pieces and mine at horrendously low profit rates (usually at huge losses in fact).
With crypto mining, many opportunistic miners will regularly swap back and forth between the most profitable blockchain(It’s just good financial sense after all), as difficulties go up and down, the value of the coin they are mining changes, and the likes.
This is why Dogecoin implemented DigiShield, to prevent their blockchain from stalling, the very same reason why BCH implemented DigiShield, and also why it can be found it a myriad of other projects such as Monacoin, Zcash and the likes.
At present, BCH sits around 2.5EH/s, BSV (Which forked from BCH and kept DigiShield) around 1.2EH/s compared with BTCs 85EH/s. There are mining pools on BTC that have ~10X the entire BCH blockchain hashrate, so if they come in and mine a few blocks while difficulty is low, 10X’ing the network hashrate, then of course you’re going to see some swings.
Again, I would argue: DigiShield is working as intended!
And in fact, the irony is that the original tweet from Jameson Lopp that I quoted above, which sounds like BCH is doing a horrible job, actually proves quite the opposite.
Being the curious type, I clicked the link, which you can do for yourself too: https://fork.lol/blocks/time
Jameson Lopp had conveniently had left off the table at the bottom which shows how many blocks per-hour (Average) for both chains over a certain timeframe. This should be “6.00”, for all of the above, once averaged out, but realistically BTC’s retarget is every 2016 blocks (2 weeks), so twice the length of what is shown in these stats.
Over a 3 -> 12 hour period, what we’re seeing here is shorter term adjustment to the difficulty to ensure that the blockchain doesn’t stall, while maintaining the most stable overall block timing. This is to be expected and again, I suggest that DigiShield is working as intended.
Given what we know about large influxes of hashrate coming in, and then up and disappearing, I would say that if you are looking at the 24hr -> 7 day graph, DigiShield is currently working amazingly for BCH (And BSV too).
This again mirrors exactly what I saw when I looked at the BTC vs LTC vs DGB block timings: DigiShield is vastly superior at keeping the block timings closer to their intended time, despite wild hashrate fluctuations.
EDIT: It’s worth clarifying neither DigiShield, nor BCH’s DAA will protect from 51% attacks. As a minority hashrate in SHA256 (And not being MultiAlgo), there’s very little that BCH can do to prevent this larger hash power from dominating their block rewards, or, 51% attacking their network (as described in a number of articles).
There are two distinct issues: Block emission / timing, and hashrate dominance. DigiShield solves the first. Becoming dominant in hashrate is about all that could solve the second.