為什麼 SHA3 不利於 ASIC?
比特幣使用 SHA-256 加密,乙太坊使用 SHA3 加密。為什麼 SHA-256 加密的礦工可以猜測 TH/s 的雜湊,而 SHA3 加密的礦工只能在 MH/s 中散列?算法更複雜嗎?
我不是專家,但我擅長探勘學術文獻,這就是我發現的與 FPGA 和 ASICS 相關的 SHA3(與 SHA2 相比)。
請注意,這篇論文的歷史可以追溯到 2011 年,由於 NIST 在 2015 年才發布了 SHA3 標準,因此 SHA3 的獲勝者尚未確定。看看這篇論文中的 Keccak 結果。ASIC 領域,至少是具有特定雜湊目的的 ASIC,在過去 6 年中發生了很大變化,而且這些數字可能不是最新的。
這些圖表(和相應的表格)表明,對於所有考慮的 FPGA 系列和兩個散列函式變體(具有 256 位和 512 位輸出),Keccak 是唯一始終優於 SHA-2 的候選者。
另一篇也很老的論文可以追溯到 2010 年,有跡象表明 Keccak (SHA3) 比 SHA-256 更快。
圖 5 說明了架構差異如何影響性能結果。一些曲線,如 Keccak 和 Luffa 的曲線,非常陡峭。這意味著面積的小幅增加會產生顯著的性能改進。
另外,我不知道乙太坊有任何 ASIC,它們目前正在使用 GPU 進行探勘。您可能已經知道:GPU 的速度比 ASIC 慢很多,因此處於 MH/s 範圍內也就不足為奇了。
你的前提是有缺陷的。我認為對 ASIC 有利是 Keccak 獲勝的原因之一:在 ASIC 參考實現的決賽入圍者中,它既是最快的,又具有最佳的性能/面積比。
順便說一句,如果您認為它只使用簡單的和/xor/rot/not 操作,就很容易理解為什麼在硬體中流水線更容易,從而消除了 SHA-2 中討厭的 32 位加法器。
雖然 SHA-3 在軟體中確實較慢,但我們不要忘記它的設計目的是不易受到長度擴展攻擊,因此可以使用單個 SHA-3 代替比特幣的雙 SHA-2。
參考:
- <http://csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/documents/papers/SCHAUMONT_SHA3.pdf>
- <https://keccak.team/keccak.noekeon.org/is_sha3_slow.html>
順便問一下,ASIC 阻力有什麼意義?“礦池阻力”更重要,這可以通過設計散列(而不是散列!)以一種不會向礦工隱瞞任何資訊的方式來實現,也許就像讓整個塊成為散列的主題一樣容易而不僅僅是頭部。