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).