Hash

SHA1 中斷對於旨在成為工作量證明的算法是否重要?

  • December 4, 2021

假設我正在修改 Scrypt 雜湊函式(https://github.com/Tarsnap/scrypt/blob/master/lib/crypto/crypto_scrypt-ref.c),而我想要做的就是用 SHA1 替換 SHA256程式碼使其更易於計算。(請記住,這個算法的目的是用作 PoW,而不是為了安全。做出這個改變會不會是一個錯誤?

工作量證明需要雜湊函式的圖像前抗性,而不是抗碰撞性。由於比特幣,許多人想要恢復(revert 是密碼學方面的俚語,pre-image 是術語)SHA-256,即使使用Toffoli 門(參見加密)。

雖然 SHA-1 的抗碰撞性永遠消失了,但圖像前的抗性將存在很長時間,而且限制是建構加密量子電腦以執行 Grover 算法並解決其他一些主要問題的日期。PBKDF2 需要雜湊函式的圖像前抗性,而不是衝突。

因此,可以使用 SHA-1,無論是否是雙重的。比特幣設計者的意圖是緩慢探勘

如果想擁有一個更快的挖礦系統,那麼顯而易見的選擇是BLAKE3,它在設計上沒有長度擴展攻擊。雖然 BLAKE3 是並行雜湊,但性能是在 BLAKE3 網站上的單執行緒上給出的。

在此處輸入圖像描述

已經有參考實現和其他一些,這意味著它可以使用了。當然,移植到任何地方都會出現一些問題。


請注意,通過在 Scrypt 中替換 SHA-256,實際上將 PBKDF2-SHA256 替換為 PBKDF2-BLAKE3,其中 PBKDF2 使用 SHA-256 來初始化 HMAC-SHA256。HMAC 的目的是建構偽隨機函式族 (PRF),這就是它在 PBKDF2 中的原因。通過執行帶有秘密前綴的 BLAKE3 可以獲得額外的加速 $ BLAKE3(secret\mathbin|m) $ 而不是 HMAC。

引用自:https://crypto.stackexchange.com/questions/96445