Blockchain

如果不驗證整個區塊鏈,比特幣節點啟動是否安全?

  • September 20, 2019

在我看來,增加執行的完整節點數量的最大障礙之一是與下載區塊鏈相關的啟動成本。一個類似但不太重要(在我看來)的問題是完整區塊鏈所需的磁碟空間量。

修剪 Merkle Tree 中的分支時, Nick ODell 寫道:“[比特幣核心] 是建立在您下載並驗證所有區塊的假設之上的。” 在將交易從舊塊轉移到新塊中會允許更多的修剪嗎?Murch 建議檢查一些假設,我認為其中之一是我的假設,即沒有必要解析整個區塊鏈。感謝 Murch,這個問題旨在解決這個假設。

全節點在網路上提供多種功能:

  1. 代表其所有者驗證區塊鏈
  2. 向其他節點提供先前的區塊和交易
  3. 將交易和區塊中繼到其他節點

不獨立驗證區塊鏈會在一定程度上犧牲這些功能中的每一個。

  1. 如果節點不獨立驗證區塊鏈,全節點的所有者仍然依賴於信任對等節點
  2. 如果節點不儲存之前的交易和區塊,它就無法將它們提供給正在追趕網路的其他節點
  3. 如果節點沒有驗證區塊鏈,它可能會被欺騙中繼無效的交易和區塊。

所以是的,一個節點可以跳過下載和驗證區塊鏈的重要步驟,但我認為我不再認為它是一個“完整節點”。它不會幫助整體網路健康,也不能完全被其所有者信任。那時,我建議簡單地執行一個SPV 節點

一般來說,比特幣有政策,有規則。每個完整節點獨立工作,通過檢查每個接收到的塊、交易等來執行規則……一旦接收到的塊被檢查和驗證,一個完整節點將更新其 UTXO 集以反映儲存在區塊鏈中的最新狀態在記憶中。

如何處理塊,留給完整節點的所有者作為政策決定。作為所有者,您可以選擇讓您的完整節點在修剪模式下執行。也就是說,您擺脫了所有交易,其 UTXO 用於減輕儲存使用量,因為這些交易不會增加價值來維持目前狀態。請注意,您的政策決定不會影響您的全節點執行比特幣規則的能力。

直接解決你的問題。不,如果不下載整個區塊鏈,比特幣就無法**安全啟動。**作為一個全節點,獨立驗證導致比特幣目前狀態的狀態轉換序列是其功能的一部分。因此,信任模型禁止它信任某些其他獨立節點可共享的 UTXO 集。當然,可能還有其他節點實現可以放寬這個要求,但我不知道。

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