<p>The fix is in deciding when the change takes effect, and only validating with the stricter rule from that point onwards. </p>

<p>The easiest way is to decide upon a block height, say: 695,837 and all the blocks before that one are validated with the old rules, and blocks 695,837 and onward are validated with stricter rules.</p>

<p>Something a bit more sophisticated was used for SegWit. Every 2016 blocks, the difficulty gets modified to make sure we get a block once per 10m on average. These 2016 block intervals were used to gage support for the softfork, through signalling in the version bits of each block. Miners get to set these when they find a block, and only when 95%+ of the blocks in a 2016 timespan contained a certain flag would SegWit activate. This way, there was no fixed block height dictated in code, but instead, the miners together were able to dictate the lock in of the soft fork.</p>

CC BY-SA 3.0
2017-11-01T11:02:44.733Z
2017-11-01T15:40:31.793Z
2017-11-01T15:40:31.793Z
BlackBeltBob
<p>Making a soft fork means making consensus rules stricter.</p>

<p>Therefore there is a risk that some old blocks mined long down the blockchain get invalidated.</p>

<p>How was this handled in bitcoin soft forks? Did the developers of the fork have to make sure that all previously mined blocks up to current head validate?</p>

<soft-fork>
What if old blocks invalidate with soft fork?
croraf
# What if old blocks invalidate with soft fork?

(Asked by: username_0 on 2017-11-01)

Making a soft fork means making consensus rules stricter.

Therefore there is a risk that some old blocks mined long down the blockchain get invalidated.

How was this handled in bitcoin soft forks? Did the developers of the fork have to make sure that all previously mined blocks up to current head validate?

**Tags:** soft-fork


---

## 1 answers

### Answer by username_1 on 2017-11-01. Score: 2

The fix is in deciding when the change takes effect, and only validating with the stricter rule from that point onwards.

The easiest way is to decide upon a block height, say: 695,837 and all the blocks before that one are validated with the old rules, and blocks 695,837 and onward are validated with stricter rules.

Something a bit more sophisticated was used for SegWit. Every 2016 blocks, the difficulty gets modified to make sure we get a block once per 10m on average. These 2016 block intervals were used to gage support for the softfork, through signalling in the version bits of each block. Miners get to set these when they find a block, and only when 95%+ of the blocks in a 2016 timespan contained a certain flag would SegWit activate. This way, there was no fixed block height dictated in code, but instead, the miners together were able to dictate the lock in of the soft fork.


---

