user101073: 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?

user7272: 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.

101073: <p>in bip 34, which change to bitcoin version 1 -&gt; 2, uses two step for network's consensus.</p>
<blockquote>
<p>step 1. check if 750 of the last 1000 blocks are version 2 or greater.</p>
<p>step 2. check if 950 of the last 1000 blocks are version 2 or greater.</p>
</blockquote>
<p>but in my opinion, step 1 is useless process in consensus step.</p>
<p>we just need :</p>
<pre><code>check if 950 of the last 1000 blocks are version 2 or greater.
 if blocks &lt; 950 :
   if block_height_limit &gt; current_height :
     accept()
 if blocks &gt; 950 :
     return accept_new_version();
     drop version_1_block
</code></pre>
<p>why step 1 is needed on MASF step?</p>
 7272: <p>The two thresholds enable two different rules.</p>

<p>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.</p>

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

<p>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.</p>
