Quite complex though to really understand the intricacies

Reply to this note

Please Login to reply.

Discussion

You can be my advisor 😂

A hard fork relaxes consensus rules, making a previously invalid block valid. Legacy, un-upgraded nodes do not recognize hard fork blocks. Bitcoin Cash was a hard fork because it increased the maximum block size beyond the 1MB that legacy nodes would accept.

A soft fork does the opposite: it imposes additional rules on blocks, making them even more strict. Legacy nodes accept the new, even more strict blocks, although they’d have no problem with the old ones either. SegWit was a soft fork because it re-purposed some OP codes that previously did nothing and made them into check functions. Legacy nodes would just see no-ops and allow them to pass by, while upgraded nodes would enforce the new rule.

When you have a contentious soft fork, it means that there’s a significant cohort of both upgraded and un-upgraded nodes, and blocks of both kinds are being produced. Upgraded nodes only follow the lower-weight chain, while legacy nodes follow the higher-weight chain.

The only thing keeping the legacy nodes on the higher-weight chain is that higher weight. If the soft fork chain gets heavier, then the legacy nodes would experience a deep reorg since the fork chain is valid to them.

As long as the legacy chain is heavier, both can persist indefinitely. However, if an upgraded node ever defects back to the legacy chain, they too will experience a deep reorg. So the soft forkers really need a continued mining presence to continue their experiment. Fortunately, any amount of mining is sufficient, so long as it doesn’t drop off all at once and can instead difficulty-downgrade piecemeal.

Actually quite deep