Segregated-Witness
網路分區/修剪網路時的預設行為
我從反對 SegWit 的人那裡聽說過這樣的論點,即在 SegWit 啟動後,節點可能會選擇刪除/修剪所有見證。據我了解,這可能與已經僅儲存區塊鏈的修剪版本的節點沒有太大區別。並且使用 SegWit 規則集的節點不會接受沒有見證人的塊,只有不遵循 Segwit 規則集的向後兼容節點才會接受?
我的問題是核心節點的預設行為是什麼,當它接收到 X 的塊時,其後的塊只是實際塊數據被修剪的標頭檔。
換句話說:如果我的節點以某種方式遠離真實/整個比特幣網路會發生什麼,這樣我的節點只會收到無法驗證的修剪塊。我的節點是否只接受具有完整數據的塊為止的塊,並丟棄其餘的塊,直到收到這些塊的完整數據?如果我的節點是挖礦節點怎麼辦?
比特幣核心不支持修剪見證人。它完全支持修剪塊,但這與隔離見證無關。
在沒有見證人的情況下,網路中的任何完整節點都不會接受隔離見證區塊。沒有它根本不可能驗證一個塊,所以沒有見證人被視為等同於根本沒有收到一個塊。
SegWit 確實啟用了中繼的見證人。這是針對輕量級客戶端的頻寬優化,因為它們一開始並不關心見證數據。
理論上,節點確實可以選擇根本不儲存見證,但何必呢?如果他們不關心為其他想要驗證歷史的節點提供服務,他們已經可以完全刪除這些塊。
所有剪枝節點都有一個最少需要保留的塊數,對應於幾天的時間。這應該足以克服重組和臨時分區。