Blockchain

有哪些替代方法可以將檢查點硬編碼到比特幣客戶端中?

  • November 19, 2018

檢查點似乎是比特幣安全和驗證裝置的重要組成部分。在定義檢查點之間的最大間隔的開發人員中是否有書面政策?

當比特幣客戶端變得成熟並且發布越來越少時會發生什麼。是否提出了其他類似檢查點功能的機制?

檢查點有兩個目的:

  • 他們對鏈條的歷史部分進行硬編碼
  • 它們允許我們在該歷史部分禁用檢查(昂貴的簽名檢查)。

我個人不喜歡第一部分,因為它要求使用者相信他們下載的軟體包含正確的檢查點。當然,無論如何,他們已經以更實質性的方式信任程式碼,但只是要求以可信的方式頻繁更新一些數據,以跟上區塊鏈驗證性能,這對我來說是錯誤的。當然,如果沒有第一部分,我們就不可能有第二部分。或者我們可以嗎?

有一個提議的想法,但沒有實現,將同步機制修改為包括兩個步驟:

  • 第一步,只下載和驗證標頭,與現在下載和驗證塊的方式大致相同。這將導致客戶端知道最佳的有效區塊鏈,但它不知道其中的交易是否有效。
  • 第二步,下載並驗證該鏈上的實際塊。這種機制有幾個優點,包括能夠在多個節點上分發同步,並且不會冒險下載側鏈(有時稱為孤兒)。

此外,它可能有一個規則“如果一個塊上面有 N 個塊,則不驗證簽名檢查”。由於客戶端在進行完整的交易驗證之前已經知道有一條有效的鏈,因此不需要檢查點來防止獲取錯誤的鏈。

當然,這在實施之前必須考慮很多,但我相信它會讓我們不再依賴檢查點。

編輯:檢查點的好處可以通過更好的方式來實現,例如assumevalid.

比特幣核心的最新版本(>= 0.14)帶有選項--assumevalid <safe-block>。這提供了將簽名驗證跳過到安全塊而不對歷史進行硬編碼的好處。如果看到另一個較重的鏈不包含安全塊,比特幣軟體將正確地重組到另一個鏈。更多資訊:比特幣核心 0.14 中 –assumed-valid 的信任假設是什麼?

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