Merkle-Tree
發現塊後更改它有多難?
一旦礦工找到了一個區塊,他添加或刪除該區塊中包含的 tx 有多容易?他是否必須從頭開始解決修改後的塊,還是有一點他可以恢復解決過程?
一旦礦工找到了一個區塊,他添加或刪除該區塊中包含的 tx 有多容易?
是不可能的。解決的區塊依賴於交易數據的每一個字節,沒有任何東西可以改變。這樣做很重要。如果我可以廣播一個已解決的區塊,但省略了我向其他人發送代幣的交易,本質上會恢復我的支出怎麼辦?這將導致一個不安全的系統。
他是否必須從頭開始解決修改後的塊,還是有一點他可以恢復解決過程?
基本上就像重新開始一樣。這主要是因為塊頭中的默克爾根。可以把它想像成一個依賴於交易每個字節的函式,如果任何交易發生變化,那麼函式輸出就會完全改變。
有關比特幣中默克爾樹的更多資訊,請參閱此處:什麼是默克爾根?
編輯:我想添加這個我覺得有用的探勘類比。
礦工計算的每個雜湊都有機會解決一個塊。挖礦基本上就像拍攝自己翻轉 256 個硬幣的影片,試圖獲得一長串正面。一串正面需要多長時間取決於您與之競爭的其他硬幣翻轉者的數量。如果你得到足夠長的一串正面,你展示證明(影片)並獲得獎勵。否則,您只需再試一次。每次進行新的雜湊(數十億次)時,您基本上都重新開始,並且更改塊數據不會使您或多或少不太可能成功翻轉硬幣。
請注意成功翻轉正面需要大量工作(這需要您多次嘗試,每次嘗試都非常容易),但驗證硬幣翻轉影片是否合法的工作很少。