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值以計算該區塊的解 。