假設有效會降低比特幣的安全性嗎?
比特幣的假設是下載塊並驗證它以防止被愚弄。
但預設情況下,該
assumevalid
選項在軟體中啟用,據我了解,它使一些數據(直到 2017 年?)在未經驗證的情況下成為真實的。那麼,我們可以認為比特幣節點是安全的嗎?如果是這樣,為什麼?
當然,您可以禁用此選項,但可能有 99% 的人甚至不知道此選項已啟用。
據我了解,這使得一些數據(直到 2017 年?)在未經驗證的情況下成為真實的。
你理解錯了。首先,
assumevalid
每個主要版本都會更新這些塊,因此最新版本最多會過時幾個月。對於比特幣核心 0.18.0,assumevalid
區塊是0x0000000000000000000f1c54590ee18d15ec70e68c8cd4cfbadb1b4f11697eee
從今年 2 月開始的。其次,
assumevalid
不只是讓比特幣核心在沒有驗證的情況下盲目接受區塊。比特幣核心仍將驗證區塊的大部分部分,包括工作量證明、UTXO、金額等。唯一未驗證的是腳本,因為腳本很昂貴。assumevalid
只是意味著包含在作為該塊祖先的assumevalid
塊中的交易中的所有腳本都被假定為有效的。由於它只為
assumevalid
區塊的祖先假設這一點,如果有一個大型工作重組從區塊鏈中刪除了該區塊,所有腳本都將被驗證。那麼,我們可以認為比特幣節點是安全的嗎?如果是這樣,為什麼?
我們可以。節點仍在驗證其他重要的事情,如 PoW、UTXO、數量等。為塊選擇的
assumevalid
塊始終是在創建 PR 以更新塊時有幾千塊深的assumevalid
塊,以及數万塊發佈時塊很深。因此,由於需要進行大量工作,因此極不可能對其進行重組。即使它被重組,比特幣核心也不會變得不安全,只是會慢一點。此外,為了在程式碼庫中更新該塊,需要多人同意更改並在其上簽字。許多開發人員這樣做並進一步向 PGP 簽署了一條消息,表明他們同意該區塊是比特幣主鏈的一部分。
雖然這確實引入了一點信任,但人們可以獨立地檢查該區塊是否是主鏈的一部分,以便區塊瀏覽器並在他們自己的節點中查找該區塊。他們可以檢查該塊及其祖先是否確實有效。