Ethash以太坊上的加密貨幣的共識演算法,使用工作量証明[1] Ethash也使用Keccak,一種已標準化為SHA-3雜湊函數。 但Ethash與SHA-3並不相同,不應將兩者混淆。

由版本1.0開始,Ethash已被設計為抵制ASIC,主要方法為藉着極大量的隨機查表,加重記憶體的負載,ASIC無法再利用專用線路而加速。[2]

Ethash是從Dagger-Hashimoto演算法改動而成的。[3][4][5]Ethash使用一個初始值為1GB的DAGdataset及一個初始值為16MB的假亂數表cache,它們的內容每30000個區塊就會重新計算,這個30000區塊的間隔稱為epoch。每個epoch所產生的內容都會增大,因此1GB與16MB都只是初始值。

礦工會儲存整個dataset和cache,而輕客戶端只需要儲存cache。礦工挖礦時將找到的nonce填入區塊頭,並需要以SHA-3形式不斷查表尋求MIX值以計算該區塊的解。[1]

抵制ASIC的原因

由於工作量証明的核心是Hash運算,運算得愈快的礦工將愈大機會挖掘到新的區塊而獲得更多貨幣收益。礦工的挖礦裝置亦由CPU演變為GPU,再由GPU演變為ASIC。礦機門檻的提升導致了礦工人數下降,大多數的收益集中於少部份礦工,這種節點的集中與區塊鏈的原意去中心化是相違背的。因此,Ethash的計算過程中增加了對主記憶體的要求而抵抗ASIC礦機的優勢。

參考文獻

  1. ^ 1.0 1.1 wiki: The Ethereum Wiki. 8 February 2018 [8 February 2018]. (原始內容存檔於2019-03-28). 
  2. ^ Rudlang, Marit. Comparative Analysis of Bitcoin and Ethereum (PDF). Norway: NTNU: Norwegian University of Science and Technology. Jun 2017: 52–53 [29 September 2018]. (原始內容存檔 (PDF)於2018-01-23). 
  3. ^
    Vitalik Buterin的。 匕:記憶體-難以計算、記憶體的容易證實大的下行壓力,現在長可替代頁面存檔備份,存於互聯網檔案館)的。 技術報告,hashcash.org 網站2013年。
  4. ^ Dryja, Thaddeus. Hashimoto: I/O bound proof of work (PDF). Semantic Scholar. [2019-01-30]. (原始內容存檔 (PDF)於2017-08-10). 
  5. ^ Tikhomirov, Sergei. Ethereum: State of Knowledge and Research Perspectives (PDF). International Symposium on Foundations and Practice of Security. 17 Feb 2018, (FPS 2017): 206–221 [29 September 2018]. (原始內容 (PDF)存檔於2018-01-23).