On Thu, Jan 28, 2016 at 9:31 PM, Jannes Faber via bitcoin-dev
<bitcoin-dev@lists.linuxfoundation.org> wrote:
Hi,
Question if you'll allow me. This is not about Gavin's latest hard fork proposal but in general about any hard (or soft) fork.
I was surprised to see a period expressed in human time instead of in block time:
> Blocks with timestamps greater than or equal to the triggering block's timestamp plus 28 days (60*60*24*28 seconds) shall have the new limits.
Block timestamps are in the 80-byte block header, so activation is completely deterministic and can be determined from just the sequence of block headers. There are no edge cases to worry about.
But even more so I would expect there to be significant differences in effects on non-updated clients depending on the moment (expressed as block number) of applying the new rules. I see a few options, all relating to the 2016 blocks recalibration window.
It doesn't matter much where in the difficulty period the fork happens; if it happens in the middle, the lower-power fork's difficulty will adjust a little quicker.
Example: (check my math, I'm really good at screwing up at basic arithmetic):
Fork at block%2016: 25% hashpower will take 8 weeks to produce 2016 blocks, difficulty drops by 4.
Fork one-week (halfway) into difficulty period: 25% hashpower will take 4 weeks to adjust, difficulty drops by 5/2 = 2.5
It will then take another 3.2 weeks to get to the next difficult adjustment period and normal 10-minute blocks.
That's an unrealisitic scenario, though-- there will not be 25% of hash power on a minority fork. I wrote about why in a blog post today:
If you assume a more realistic single-digit-percentage of hash power on the minority fork, then the numbers get silly (e.g. two or three months of an hour or three between blocks before a difficulty adjustment).