Blockchain

為什麼在更改區塊鏈中的數據時需要在更改塊之後重新散列每個塊?

  • January 24, 2018

也許我的問題很愚蠢,但是,為什麼在更改區塊鏈中的數據時需要在更改塊之後重新散列每個塊?

每個塊包含其數據的散列和前一個塊的散列。如果我更改塊№ 9000 中的數據,那麼塊№ 9001 將引用一個不存在的塊。鏈條將被打破。我讀過的每篇文章都說:

為了完成這項工作,您需要重建並重新散列篡改塊之後的每個塊,替換先前塊散列指針的內容。

但是,如果塊只包含前一個塊的雜湊,為什麼我不能改變塊№9001中的前一個塊雜湊值,如果我更改塊№9000中的數據?這不是恢復鏈條嗎?

區塊雜湊是一個包含前一個區塊雜湊作為輸入的雜湊。

假設您嘗試更改區塊 9000 中的數據。您按照自己喜歡的方式對其進行修改,然後成功探勘修改後的區塊(在該高度找到滿足難度門檻值的雜湊)。您現在有一個帶有新雜湊的塊 9000,因此塊 9001 在以前的塊雜湊中具有錯誤的值。

您的理論是您可以簡單地更新塊 9001 中的前一個塊雜湊,但由於該欄位是塊 9001 雜湊輸入的一部分,因此修改它會更改塊雜湊。現在你需要通過修改成功地探勘塊 9001,一旦你這樣做了,塊 9002 將需要被修改以具有新的 previousblockhash 引用塊 9001 的新塊雜湊,然後它也需要被探勘,所以 -等等。

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