跟大家一起學習區塊鏈技術系列之一 比特幣之共識規則變化

所有全賬本節點用相同的共識規則來驗證區塊的有效性。有時候為了引入新的特性或者防止網絡濫用,共識規則不得不進行改變,這樣就造成一段時間內新版本節點使用新規則,舊版本節點使用舊規則,亂了,一般會產生兩種結果:

1 遵循新規則的區塊被新版本節點接受,被舊版本節點拒絕。例如,在一個區塊裡的交易使用了新的特性,新版的節點知道這個特性並接受了它,但是就版本節點因為它不符合舊規則而拒絕了它。

2 違反新規則的區塊被新節點拒絕,被舊版本節點接受。例如,在區塊裡有一個濫用交易的特性,新版本節點因為它不符合新規則而拒絕了它,而舊版本節點因為符合舊規則而接受了它。

第一種情況,挖礦接受從舊版本節點發出數據,拒絕與使用新版本節點的礦工在同一條鏈上工作,這樣就形成了兩條鏈,我們叫硬分叉。

跟大家一起學習區塊鏈技術系列之一 比特幣之共識規則變化

第二種情況,被新版本節點拒絕,如果新版本節點佔據大部分算力,舊版本節點可能和主鏈永久的偏離了。因為在這種情況下,舊版本節點不得不和新版本節點一樣的接受所有區塊,所以新版本節點就創建了一個更強的鏈,舊版本節點將接受它是最好的一條有效區塊鏈。這稱為軟分叉。

跟大家一起學習區塊鏈技術系列之一 比特幣之共識規則變化

儘管分叉會對區塊鏈造成實際的分歧,共識規則的改變我們一般用潛在的可能性來描述它到底需要軟分叉還是硬分叉。比如,區塊大小增加1MB需要硬分叉。在這個例子了,實際的分叉並不需要,但分叉是個可能的結果。

新共識規則有多種方式激活。在比特幣的頭兩年裡,中本聰主導了幾次軟分叉,僅僅通過發佈前向兼容的客戶端來做的,客戶端立即執行新的規則。很多軟分叉是通過設置標識日來進行,這個標識日是決定什麼時間或哪個區塊高度之後強制啟用新的規則。這樣通過標識日啟用分叉的方式成為UASF(用戶激活分叉),分叉是否成功取決於是否有足夠的節點過了標識日後強制使用新規則。

最近的軟分叉要等待大部分算力(通常75%或95%)發信號說他們準備好強制使用新規則了。一旦過了發信號的閾值,所有節點開始強制使用新的規則。這種分叉稱為MSAF(礦工激活分叉),這些分叉成功與否取決於礦工的意願。


分享到:


相關文章: