I am just trying to wrap my head around why the 0.6% cannot compound.
If miners conduct the timewarp attack, then in epoch 2 they manipulate the difficulty down 0.6%
Then in epoch 3, since the difficulty is lower (But the hashrate is the same), the miners are expected to produce 0.6% more blocks. Then they use the fake timestamp trick again, shifting the difficulty down 0.6%, but that only offsets the impact of the 0.6% more blocks. So with this 2 hour rule, miners can only achieve a one-off 0.6% downward shift?
Am I thinking about that correctly?
Miners could of course just produce fewer blocks and keep shifting the difficulty downwards, but then that isnt really an attack with fake timestamps, that is just mining less
What practically goes wrong if you try to pull of the scheme exactly as described by Sjors, is the following, I think.
As an attacker you have a certain hashrate, so you will find blocks sometimes faster, sometimes slower. From time to time, you will find a block 2016k at time before (1+k)P. You can now do three things:
Use the real clock time instead, in which case the scheme turns into this one, where your own block rate is affected by the difficulty reduction, and has no compounding.
Wait. Give the block exactly timestamp (1+k)P, and when you find it, you just turn off your equipment until the time comes to start looking for the next block. Now the âattackâ has literally turned into attackers choosing to reduce their hashrate.
Start secretly mining the next block. Give the block exactly timestamp (1+k), and when you find it, just start working on the block after that one. This is actually equivalent to just waiting, because due to the difficulty adjustment, if youâd mine the entire time youâd find blocks at a higher that the scheme allows, so you have to slow down.
What I had in mind is that block timestamps would gradually drift further into the past, because blocks are coming in faster. So the attacker wonât use the real timestamp, wonât wait and doesnât mine in secret.
But actually when blocks come in fast kP] is in the future. So my scheme runs into the rule that blocks canât be more than 2 hours from the future.