why bip 34 uses two step on MASF(Miner Activated Soft Fork)? in bip 34, which change to bitcoin version 1 -&gt; 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 &lt; 950 :
   if block_height_limit &gt; current_height :
     accept()
 if blocks &gt; 950 :
     return accept_new_version();
     drop version_1_block

why step 1 is needed on MASF step?
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.