8

with the whole debate and concern over a looming Bitcoin hard fork I would like to ask at what point has the hard fork occurred? Is there a specific moment when developers decide to implement BTC/BTU code that miners and nodes then decide to use or is it more gradual where miners and nodes slowly start leaning more towards one or the other?

If it is the case of pushing a the button and uploading/implementing new code will there be a publicized date?

7

A hard fork is something that happens when some of the nodes on the network follow a new set of rules that are in some way incompatible with the existing set of rules. It occurs upon mining the first block that is valid under the new rules, but invalid under the old.

The software following new rules is deployed and in place before the fork occurs, but doesn't actually start using those new rules until some triggering event. In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules. This event is called activation of the new rules.

The fork, however, doesn't occur until a block is found by the nodes following the new rules, that is invalid to blocks following the old:

[G] [G']
 |   |
[F] [F']
 |   |
[E] [E'] <-- Hard fork occurs when this block is mined
 | /
[D]
 |
[C]
 |
[B] <-- "forking" nodes start following new rules here
 |
[A]

Here we see an example where the nodes following the new rules activate at block B. However blocks C and D are valid under the new rules, and the old rules, thus they don't cause the fork. When block E' is mined, it is only valid under the new rules, meaning that it is rejected by clients who follow the old rules. Those clients that reject the block go on to mine E, and we now have two irreconcilable chains.

  • 1
    I think it's also worth noting that if block F is found before F', the forks can reconverge and E' will be orphaned. This is because nodes and miners will follow the longest valid chain. Since the older blocks are valid on the new rules, a longer chain of old-style blocks will still trump a shorter chain of new-style blocks. This is why over 50% of the hash rate needs to support a new rule before a fork will succeed. – Kevin Nowaczyk Mar 23 '17 at 0:14
  • 1
    "In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules." In fact, BU unlimited does not contain code that performs any such checks. Rather, some proponents of BU have suggested that they wait until there is 75% of support before they manually trigger the hardfork. – Murch Mar 23 '17 at 8:30
  • So as I understand it the software for BU, BTC and SegWit is already developed and deployed and now it is a matter of waiting until more than 50% of miners signal towards one of these and agree on a time to start mining the new block & chain (in order to avoid orphaning blocks)? – Josh Mar 27 '17 at 12:52
  • 1
    Josh, as per @Murch's comment, BTU appears to be triggering it manually. If so, they could do it at 50%, 75%, 95%, or even 20%. I'm not familiar with their code, and am not even entirely sure who "they" are. This might make a good new question. – Jestin Mar 28 '17 at 1:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.