[Bitcoin-ml] Difficulty adjustment
tomz at freedommail.ch
Fri Aug 25 09:35:34 UTC 2017
We started Bitcoin Cash with what has been named the “Emergency Difficulty
A change where if there are not enough blocks, the difficulty drops until
there are enough blocks.
This was great for the first month, and I think we will continue to see it
being used until we have a very stable price and a majority of hashpower.
But that may still be months away.
Just as important is that after stabilization of hashpower the Nash
equilibrium idea tells us that there is a chance of 92.5% of the hashpower
to turn off their hashing gear just after a difficult adjustment in order to
drop the difficulty a couple of steps. Finishing the rest of the period in
half the time.
This hurts no miners and benefits all (at least short term).
Personally I think we can remove again this emergency difficulty adjustment
after we have a stable network.
Actually putting a date or numbers on that will just lead to this being
gamed, so we can't do that. I guess we'll end up deciding about this down
the line as things progress.
For now I want to suggest a soft fork to the algo.
If the MTP of the tip is less than 5 minutes before the current network-
time, adjust the difficulty
In case the MTP of the tip of the chain is less than an hour after the MTP
of block Tip-15, the proof of work target is decreased by a third, or 33%.
RATIONALE: The UAHF spec stated that at slowdown we increase the proof of
work target 25%, decreasing it afterwards by 33% gets us exactly back where
In simple terms, if the chain has more than 2.5 times the hashpower its
difficulty suggests, we adjust the difficulty downwards to level off at 2.5
To make the difficulty limit more difficult requires only the miners to upgrade.
As such this should be reasonably easy to roll out, depending on how hard it
is to convince miners this is a good idea.
I still feel that in the long term we need a different solution as this only
limits the damage, it doesn't undo it.
More information about the bitcoin-ml