Consensus

為什麼 bip 34 在 MASF(Miner Activated Soft Fork)上使用兩步?

  • July 1, 2020

在比特幣版本 1 -> 2 的 bip 34 中,網路共識使用了兩步。

步驟 1. 檢查最後 1000 個塊中的 750 個是否是版本 2 或更高版本。

步驟 2. 檢查最後 1000 個塊中的 950 個是否是版本 2 或更高版本。

但在我看來,步驟 1 在共識步驟中是無用的過程。

我們只需要:

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

為什麼 MASF 步驟需要步驟 1?

這兩個門檻值啟用了兩種不同的規則。

如果最後 1000 個區塊中有超過 750 個是第 2 版,則網路開始強制執行 BIP34——此時,聲稱是第 2 版但不符合 BIP34 中概述的要求的區塊將被拒絕。版本 1 塊繼續被接受。

一旦最後 1000 個區塊中有超過 950 個是有效的版本 2 塊,則所有新的版本 1 塊都被視為無效。

這允許一個非常優雅的過渡,並讓礦工有時間以滾動方式升級他們的系統,而不是要求每個人同時更新。

引用自:https://bitcoin.stackexchange.com/questions/92069