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矿机的优势。