ALOKEX蔡徐坤:教你如何了解以太坊1.0之Ethash的算法
什么是Ethash算法?蔡徐坤:ALOKcoin888
Ethash是以太坊1.0版本的基于POW工作量证明的一个挖矿算法,是一种过渡的算法,它是Dagger-Hashimoto的最新版本,是Hashimoto算法结合Dagger算法生成的一个新变种。
什么是Dagger-Hashimoto算法?
Dagger-Hashimoto作为心太坊挖矿算法Ethash的前身,Ethash的目标是抵御ASIC矿机,轻客户端验证和全链数据存储,团队希望CPU也能参与挖矿获得收益。
Dagger-Hashimoto其实是两种算法,分别是Hashimoto算法和Dagger算法。Hashimoto算法是由Thaddeus Dryja发明的,旨在通过IO限制来抵制ASIC矿机;Dagger算法是由V神发明的,它利用了有向无环图DAG同时实现了内存计算困难但易于验证的特性。
Ethash算法是如何工作的?
1,存在一个种子,可以通过块高度直到该点来计算每个块。
2,从种子,你可以计算一个16MB的伪随机缓存cache,用于轻客户端存储缓存。
3,从缓存中,我们能够生成一个1GB的数据集,该数据集中的每一项都取决于缓存中的一小部分,完整客户端和矿工存储了这个数据集,数据集随着时间线性增长。
4,挖矿涉及抓取数据集的随机片并将它们一起哈希,通过使用缓存再次生成所需的特性数据集的片段, 从而低内存的机器可以进行验证, 因为只需存储缓存即可验证。
总结一下:
Ethash基本思路和比特币的pow类似,都是不断随机nonce得到的值与难度进行比较,满足条件则挖矿成功,否则继续尝试。
与比特币比拼cpu算力不同的是,Ethash通过生成一个巨大的数据集,通过限制内存来防止具备强大算力的ASIC矿机垄断,增强了去中心化能力。
本文来源:ALOKEX全球站原文标题:ALOKEX蔡徐坤:一分钟简单了解以太坊1.0之Ethash算法