Comments
  spent 10.0¢
The current EDA is 6 blocks in 12 hours. IOW: 2 hours per block, or blocks that are taking 12x longer than desired.
Your suggestion for the reverse EDA is 13 blocks in 2 hours. IOW: 9.23 minutes per block, or blocks that are taking just 7% less time than desired.
This 7% value is well within the regular variance of a Poisson distribution over time so it seems much too aggressive to me. It almost certainly will get triggered at random times even when there's too little hashpower on the chain. Right now, on the EDA'd Bitcoin Cash chain, we're getting 13 blocks every 5 minutes. It's that kind of exploitation we want to correct.
I would suggest checking for 13 blocks every one hour, or an even shorter interval, unless you have specific technical or simulation reasons why that wouldn't work.
Otherwise this is a much more simple and elegant solution than anything else I've seen. I'd much prefer this to a complete rewrite of the difficulty adjustment algorithm. :thumbup:
0.0¢
   2yr ago
9.7¢ 9.7¢ 9.7¢ 9.7¢ 10.7¢ 9.7¢
  spent 10.0¢
Hi GreyWyvern.
This 7% value is well within the regular variance of a Poisson distribution over time so it seems much too aggressive to me. It almost certainly will get triggered at random times even when there's too little hashpower on the chain.
You have to combine this with the fact that the reverse EDA can only adjust things that have been created by the EDA itself. In other words, if there was no EDA, nothing will happen. We can never go more difficult than the base.
The idea is aggressive on purpose, although we can certainly talk numbers.
The thought that was in the back of my mind was that in an emergency situation it is still Ok to end up with a chain that has one less EDA applied than required to get the 10 minutes interval. Leading to maybe 12 minute interval. The EDA still did its job and we have a healthy enough chain. What we are trying to solve here is abuse of the EDA. And this algo does that.
0.0¢
   2yr ago
9.7¢ 10.7¢ 9.7¢