Blockchain-Fork

什麼是軟分叉?什麼是硬分叉?他們有什麼區別?

  • July 15, 2021

當人們談論比特幣工作方式可能發生的變化時,他們有時會說特定的變化可以作為軟分叉來實現。那是什麼意思?這與硬分叉相比如何?

什麼是項目分叉?

軟體開發中的分叉是指獨立項目從軟體項目中分離出來的事件。這樣的分叉有時會發生在開源領域,當一個項目的社區內有不可調和的計劃/目標時,通常會導致社區的分裂和隨後的兩個不同的項目。在實踐中,這表現為原始碼被複製,然後由分叉器獨立地在不同的方向上開發。例如,在這種傳統意義上的分叉中,萊特幣是比特幣的一個分叉:萊特幣最初是比特幣程式碼庫的副本,但後來發展成為一個獨立的項目(儘管仍然密切相關)。

比特幣術語中的軟分叉和硬分叉

比特幣中的軟分叉硬分叉這兩個術語描述了比特幣協議的兼容性突破性變化:如果社區在這樣一個問題上存在不可調和的分歧,那麼比特幣的舊版本和新版本可能會在此後作為不同的項目出現。雖然兩個版本的比特幣協議都在使用,但接受程度的差異可能會導致持久的區塊鏈分叉,即兩條不同的最長鏈,它們都被網路的一部分認為是有效的。

軟分叉是向前兼容的

與早期版本相比,軟分叉限制了塊接受規則。

新有效塊是舊有效塊的子集

新規則允許先前有效塊的子集,因此新版本認為有效的所有塊在舊版本中也有效。如果至少 51% 的算力轉移到新版本,系統會自我糾正:

舊版本的比特幣核心創建的在新範式下無效的區塊可能會開始一個短期的“僅舊區塊鏈分叉” ,但最終,它們將被在新範式下創建的鏈分叉所取代,因為在舊範式上工作的散列能力(“僅舊版本”)將小於在新範式上(“被所有版本接受”) .

但是,如果少於 51% 的算力切換到新版本,則區塊鏈分叉不會自動修復,因為在舊規則下創建的鏈具有更大的算力並且與新規則不兼容。這可以通過軟分叉的採用者放棄他們的鏈來補救,或者更多的散列能力切換到軟分叉鏈。後者將導致軟分叉鏈最終超越並重組另一個鏈尖。

硬分叉不向前兼容

硬分叉擴展了一組有效塊

硬分叉簡化了塊接受規則,使以前無效的塊在新版本中有效。顯然,這不是向前兼容的,因為舊版本不會接受新區塊,導致舊範式的使用者無限期地留在他們自己的區塊鏈分叉上。要在沒有區塊鏈分叉的情況下實施硬分叉,所有使用者必須自願切換到新協議。

HF != 區塊鏈分叉

最近,我看到“硬分叉”與“鏈分裂”互換使用。它們指的是不同的東西。**當挖礦同時基於多個鏈尖時,鏈分裂是網路的狀態。**發生這種情況的原因有很多,包括硬分叉、軟分叉、有缺陷的節點軟體,以及兩個礦工在同一高度發現一個區塊。

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