A. 關於分叉你想要知道的事情
一、分叉指什麼?
分叉,從字面意義可以理解為將區塊鏈分裂成兩個路徑。通常是在規則重新修正的過程中,參與礦工需要在兩個路徑中二選一。
二、分叉是怎麼形成的?
我們前面講到過挖礦本身,是指網路上的礦工誰最早發現新的區塊,並將他加入到最長的鏈上,但如果有兩個礦工幾乎同時發現區塊呢,都添加到前一個區塊上,這時區塊就會分叉稱兩條路,但是,當新的下一個區塊被發現,並添加到其中一條上時,這種不確定性就會消失,最長的鏈仍然會一直持續下去,那另一條鏈就會被網路「孤立」「拋棄」。
當開發者想修改決定交易是否成立的軟體規則,也可以自願對網路進行分叉。
當一個區塊包含無效交易時,該區塊將被網路忽略,發現這個區塊的礦工就會失去區塊獎勵。因此通常礦工只想挖到有效區塊,並加入最長的鏈。
三、為什麼要分叉?
我們都知道區塊鏈的特性,尤其比如說比特幣的特性,挖礦的邏輯,發放獎勵的標准,以及是否為有效交易的規則都是預先就設定好的,所有參與挖礦的礦工們都是在遵循既有的游戲規則。
同時,我們也可以想得到,一切預先設定好的既有規則,很難保證能夠一直適用於後續的運作中,一旦出現小的問題,或者需要修復修正的地方怎麼辦,網路維護者們通常會採用網路升級並且向下兼容的方式進行,這就是軟分叉。
而另一種情況是,軟體升級並且互不兼容,或者社區對於規則有歧義,並且雙方無法達成一致時,可能會分割網路算力,如果非常大算力比重的礦工挖礦時,遵循的是兩條不同的規則,則會在網路上形成兩條不同的,互相完全不兼容的鏈,並且都會一直延續下去,有不同的擁躉。我們都說加密數字貨幣的價值是靠共識決定的,所以有共識在,兩個鏈都會有價值,這是常規意義上說的硬分叉。
四、什麼是軟分叉和硬分叉?
硬分叉 是軟體升級,將不兼容舊軟體的新規則引入網路。你可以將它看作規則的延伸(使區塊大小為2MB,而不是1MB的新規則將需要硬分叉)。
分叉後,繼續運行舊版軟體的節點將發現新交易是無效的。因此為了切換到新鏈繼續挖有效區塊,所有網路節點必須升級為新規則。
當出現某種政治僵局,社區部分人堅持舊規則,就會出現問題。舊鏈的哈希率、網路算力將變得不合時宜。重要的是,舊鏈的數據和規則仍被看作具備價值,礦工當然希望繼續挖礦,開發者也希望繼續支持它。
軟分叉 是強化一些規則,並且向後兼容。
沒升級的節點會繼續將新交易視為有效的。然而未升級節點繼續挖出的區塊將被升級節點拒絕。因此軟分叉需要網路的大部分算力。
軟分叉是升級比特幣的常用方法,因為它使網路分裂的風險被認為是較低的。過去成功的軟分叉包括BIP 66軟體升級(涉及簽名驗證)、P2SH(修改比特幣地址格式)。
五、分叉是無限制的嗎?
是,根據上面的描述你應該可以看得到,分叉並沒有數量時間的限制,如果需要軟體升級,或者社區分歧無法達成一致,分叉是隨時都可以進行的,但考慮到社群所有人的利益,並不會非常頻繁的發生。
六、分叉會帶來什麼?
最簡單的,硬分叉會產生分叉幣,如果社區無法達成一致,則原有的共識會割裂成兩個陣營,分別維護不同的規則和網路,比如前段時間很火的 BCH 算力之爭,最後分叉造成 BCHABC 和 BCHSV 兩種代幣,原有的價值會被割裂成兩部分。之前持有 BCH的人,在分叉結束後會1:1根據快照收到同樣數量的另一種分叉幣。