Ethash

Ethash是以太坊上的加密貨幣的共識算法，使用工作量証明。 Ethash也使用Keccak，一種已標準化為SHA-3的散列函数。 但Ethash與SHA-3並不相同，不應將兩者混淆。

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

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

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

抵制ASIC的原因 

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

参考文献 

密码学
有未审阅翻译的页面