什麼是使用者啟動的軟分叉 (UASF) 提案?與硬分叉相比,它的風險如何?
比特幣社區正在討論shaolinfry提議的 UASF 啟動 SegWit 作為版本比特啟動的替代方案。我看到了對該提案的頻繁和廣泛的討論,尤其是與其他軟分叉啟動和硬分叉方法相比,它的風險和優勢的問題。
- UASF 提案包含什麼內容?
- 與其他升級協議的方法相比,它的風險如何?
- UASF 提案包含什麼內容?
UASF 提案是 BIP9 的擴展,允許軟分叉指定強制啟動時間。如果此時礦工還沒有開始發出支持信號,他們必須開始發出信號。在此時間之後不表示支持軟分叉的任何塊都將被拒絕。
BIP148 是 UASF 提案的一個實例,它為 SegWit 實現了 UASF。這個想法是讓經濟上的大多數使用者和企業執行迫使礦工啟動 SegWit 的軟體。如果礦工沒有在建議的時間開始向 SegWit 發出信號,他們的區塊和在其中開采的比特幣將無效。從這個意義上說,它是礦工的硬分叉,但對於大多數全節點運營商來說是軟分叉。
軟分叉通常會經歷這個
IsSuperMajority
過程,礦工在最後 1000 個區塊中有 95% 表示準備好執行之前不會開始執行新規則。這通常只是為了協調,以便礦工們就新規則何時執行達成一致。然而,最近,礦工們一直在使用這個過程來阻止 SegWit 軟分叉被強制執行。許多人認為礦工不應該能夠阻止軟分叉,因此創建 UASF 是為了消除礦工的這種能力。
- 與其他升級協議的方法相比,它的風險如何?
UASF 可能會在礦工更新他們的軟體以支持它之前過渡到強制執行(通常這是礦工故意的,因為啟動日期會提前很長時間選擇)。在這種情況下,根據升級網路的其餘部分,該礦工可能正在探勘無效塊。如果大部分網路已經升級了他們的軟體以強制執行軟分叉的信號,但大部分礦工不同意發出支持軟分叉的信號,那麼可能會發生鏈分叉。非挖礦節點會看到非常緩慢的塊生成時間,並且事務積壓可能會增長。挖礦節點會產生區塊和其中的比特幣,這些區塊和比特幣不會被交易所和使用者承認為有效,如果不升級,他們開采的比特幣就會變得毫無價值。
這種情況將在經濟利益相關者和礦工之間造成對峙。對於升級的節點,僵局持續的時間越長,在沒有礦工探勘它們的情況下積壓的交易就越多。對於礦工來說,鏈分叉意味著他們正在創建交易所和使用者不會接受的比特幣作為付款,這本質上是在賠錢。只是為了恢復共識和清理交易積壓,哪個組會先讓步並支持對方的鍊是不確定的。由於正常變異數,使用者和交易所已經應對低交易吞吐量和高塊解決時間,而礦工目前有近 100% 的塊被網路接受。所以我懷疑礦工們會是第一個讓步並開始表示支持他們不喜歡的軟分叉的人。
但是,礦工可能會生成一個塊,表示支持軟分叉,而實際上並未執行軟分叉施加的新規則。這可能會暫時掩蓋缺乏共識,只要產生的塊遵循新軟分叉的所有規則。一旦產生了一個不滿足新的軟分叉規則但根據舊的軟分叉前規則仍然有效的塊,就會出現具有前面提到的相同僵局動態的鏈分裂。
UASF 還依賴於讓大部分網路,尤其是交易所等大型經濟參與者進行升級。如果這沒有發生,並且礦工自己沒有開始發出對新軟分叉的支持信號,那麼少數升級的節點將有風險分叉到他們自己的鏈上而沒有礦工。這可能會導致一些比特幣服務中斷,但由於大部分節點和礦工都在支持不斷增長的鏈,因此至少會就哪條鏈有效達成共識。升級後的使用者必須降級他們的軟體才能恢復與主鏈的共識。在這種情況下,UASF 失敗。
但是誰來決定軟分叉是否有足夠的共識來保證強制啟動時間?少林弗里在這個話題上有這樣的說法:
我的文本中有一個隱含的假設,即部署軟分叉的決定(無論啟動方法如何)是基於使用者將使用新功能的合理預期。算力信號不是投票,而是協調觸發器。軟分叉向後兼容並可選擇加入;只要它們寫得好並且沒有錯誤,使用者最多應該對它們不可知論,因為他們可以選擇是否安全使用新功能,而不會妨礙其他人享受該功能。一個有爭議或不合理的軟分叉不會獲得牽引力,我相信這將是不言而喻的。[來源]
因此 UASF 可用於嘗試強制進行有爭議或可能有害的更新,但強制執行 UASF 啟動時間將需要大部分網路升級,因此這可能被視為一個相對較小的風險因素。
簡而言之,UASF 風險更大,但當礦工拒絕支持有經濟多數支持的軟分叉時,可能會被認為是必要的。