2

in bip 34, which change to bitcoin version 1 -> 2, uses two step for network's consensus.

step 1. check if 750 of the last 1000 blocks are version 2 or greater.

step 2. check if 950 of the last 1000 blocks are version 2 or greater.

but in my opinion, step 1 is useless process in consensus step.

we just need :

check if 950 of the last 1000 blocks are version 2 or greater.
 if blocks < 950 :
   if block_height_limit > current_height :
     accept()
 if blocks > 950 :
     return accept_new_version();
     drop version_1_block

why step 1 is needed on MASF step?

Murch
  • 71,155
  • 33
  • 180
  • 600
sang oh
  • 23
  • 3

1 Answers1

3

The two thresholds enable two different rules.

If more than 750 of the last 1000 blocks are version 2, the network starts enforcing BIP34 - at this point, blocks that claim to be version 2 but do not comply with the requirements outlined in BIP34 are rejected. Version 1 blocks continue to be accepted.

Once more than 950 of the last 1000 blocks are valid version 2 blocks, all new version 1 blocks are deemed invalid.

This allows for a mostly graceful transition, and gives miners time to upgrade their systems in a rolling manner as opposed to requiring everyone to update at the same moment.

Raghav Sood
  • 16,869
  • 3
  • 21
  • 42