2

When you start the initial block download with the latest versions of Bitcoin Core, how does your node know that old blocks were valid according to different rules prior to soft forks?

3

Old blocks in the chain are still valid under the current consensus rules.

In a broad sense, this is because the code will be written to enact rule changes at specific block heights, and thus older blocks will not be subject to said new rules.

To put it differently: the consensus ruleset doesn't just cover what new blocks are supposed to look like, they also cover what the historical valid chain looks like!

Sometimes, specific exceptions are written in, such as is the case with BIP 30.

5
  • This is incorrect. Old blocks aren't necessarily valid under the new consensus rules post soft fork activation. A soft fork enforces additional restrictions that old blocks aren't expected to abide by. Dec 5 '20 at 21:22
  • 2
    No it isn't, in such an example the consensus rules would be "all blocks after x height must follow 'new rule'". Older blocks are thus still implicitly valid under this 'current consensus ruleset'. To put it differently: the consensus ruleset doesn't just cover what new blocks are supposed to look like, they also cover what the historical valid chain looks like!
    – chytrik
    Dec 5 '20 at 21:26
  • 1
    Ah ok I see what you mean, your answer wasn't clear to me. Yeah if you include the historical consensus rules in the soft fork consensus rules then yeah old blocks are still valid because they are not being assessed by the same rules as the new blocks. Dec 5 '20 at 21:30
  • 1
    @MichaelFolkson I edited the answer to include some text from my comment, hopefully its a little more clear. Appreciate the feedback, helps to keep content on here accurate and easily digestible
    – chytrik
    Dec 5 '20 at 21:39
  • thank you both for the answer.
    – Dirk
    Dec 6 '20 at 15:44
2

A soft fork is a change to the Bitcoin protocol that adds additional restrictions to the rules enforced by full nodes. However, these additional restrictions only apply to blocks from the point of activation. Blocks pre soft fork activation aren't expected to meet the new restrictions. These blocks are validated according to the old protocol rules that continue to be present in the code of a protocol implementation (e.g. Bitcoin Core).

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.