Hash

什麼是中間狀態?使用中間狀態如何加速散列?

  • June 19, 2015

將“中間狀態”定義為“對前半部分數據進行雜湊處理後的預計算雜湊狀態”。

我聽說在加速散列的上下文中使用了“中間狀態”。使用中間狀態如何加速散列?

人們經常談論 SHA256 就像它是一個單一的操作,但事實並非如此。相反,輸入被分解成 64 字節的塊,然後將每個塊放入一個壓縮函式中。散列部分的散列狀態不依賴於數據的未來部分。由於在第二個塊中找到隨機數,因此更改隨機數不會改變散列函式在散列第一個塊後的狀態。

這在其他應用程序中很有用。例如,如果您正在對一個大文件進行雜湊處理,這意味著您可以對其進行雜湊處理,而無需一次將整個文件載入到記憶體中或多次從磁碟載入。

這對比特幣礦工的實際後果是,在 99.99999998% 的情況下,您只需要 SHA256 壓縮函式的 2 次迭代來檢查可能的塊解決方案,而不是 3 次。換句話說,您可以更快地探勘 50%。當然,既然其他人都這樣做,那隻是意味著每個人的難度都更高。

midstate實際上是散列的中間**狀態

另請參閱:中本聰是否打算允許中間狀態計算來加速散列?

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