ETH以太坊Pow算法分析!以太坊挖矿源码解析
2025-11-04 02:19:36阅读量:11 字体:大 中 小
一、Ethash 算法KWT北海亭 - 区块链数字货币实时行情平台
1.1 EthashKWT北海亭 - 区块链数字货币实时行情平台
Ethash是以太坊1.0中使用的PoW(工作量证明)算法,它是Hashimoto算法结合Dagger之后产生的一个变种。它的特点是计算的效率基本与CPU无关,却和内存大小和内存带宽正相关。因此通过共享内存的方式大规模部署的矿机芯片并不能在挖矿效率上有线性或者超线性的增长。KWT北海亭 - 区块链数字货币实时行情平台
该算法的一般流程如下:KWT北海亭 - 区块链数字货币实时行情平台
首先根据块信息计算一个种子(seed, c++代码中为seedhash)KWT北海亭 - 区块链数字货币实时行情平台
使用这个种子,计算出一个16MB的cache数据。轻客户端需要存储这份cache.KWT北海亭 - 区块链数字货币实时行情平台
通过cache,计算出一个1GB(初始大小)的数据集(DAG),DAG可以理解为是一个完整的搜索空间,全客户端和矿工需要存储完整的DAG,挖矿过程中需要从DAG中重复的随机抽取数据拿去和其他数据计算mixhash,DAG中每个元素的生成只依赖于cache中的少量数据。每到一个新的纪元DAG会完全不一样,并且它的大小也随时间线性增长。KWT北海亭 - 区块链数字货币实时行情平台
由于仅根据cache就可以使用少量内存快速的计算出DAG中指定位置的数据,所以轻客户端只需要存储cache就可以高效的进行校验。KWT北海亭 - 区块链数字货币实时行情平台
1.2 内存难解KWT北海亭 - 区块链数字货币实时行情平台
由于比特币将hash算法作为pow工作量证明的重要手段,后续的各种采用pow的数字货币也延续了这个设计,以SHA256、MD5(MD5后来被证明不具备强碰撞性数字货币一般不用)为代表算法。在设计之初都是算力敏感型,意味着计算资源是瓶颈,主频越高的 CPU 进行 Hash 的速度也越快。这个设计直接导致后来的矿机出现,采用ASIC芯片的矿机更是将这种运算能力成倍提升,更多矿场的出现使得当时的比特币面临算力中心化的威胁。为了限制计算能力的依赖,人们开始寻求新的算法,既然要限制CPU的能力,目光自然投向存储依赖,也就是内存依赖。KWT北海亭 - 区块链数字货币实时行情平台
Hashimoto算法采用IO饱和的策略来对抗ASIC,使内存读取成为采矿过程中的限制因素。KWT北海亭 - 区块链数字货币实时行情平台
Dagger算法使用DAG(directed acyclic graphs 有向无环图)来同时实现内存难解和内存易验证两个特点。 主要原理是,计算每个nonce需要DAG中的一小部分,采矿过程需要存储完整的DAG,禁止每次计算DAG的相应子集,而验证过程是允许的。KWT北海亭 - 区块链数字货币实时行情平台
1.3 参数定义KWT北海亭 - 区块链数字货币实时行情平台
二、DAGKWT北海亭 - 区块链数字货币实时行情平台
DAG是ethash算法中需要频繁访问的数据集,这个为每个epoch生成的。DAG要花很长时间生成,如果客户端至少按照需要生成它,那么在找到新epoch第一个区块之前,每个epoch过渡都要等待很长时间。然而,DAG的生成只取决于区块数量,所以可以预先计算出DAG来避免在每个epoch过渡过长的等待时间。KWT北海亭 - 区块链数字货币实时行情平台
DAG的生成流程如下:KWT北海亭 - 区块链数字货币实时行情平台
2.1 Dag_size 和Cache_sizeKWT北海亭 - 区块链数字货币实时行情平台
每个epoch的dagsize和cachesize都不同,上面已经定义了创世时的初始值,以太坊还提供了一个表来存储接下来2048个纪元(大约20年)的各个值。详见官网或源码cpp-ethereum/libethash/data_sizes.h.KWT北海亭 - 区块链数字货币实时行情平台
获取datasize 和cachesize的方法如下:KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
2.2 SeedhashKWT北海亭 - 区块链数字货币实时行情平台
算法中需要一个seedhash,由下面程序生成,从程序可见每个epoch的seed是不变的。KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
2.3 CacheKWT北海亭 - 区块链数字货币实时行情平台
使用seedhash计算cache。KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
2.4 DAGKWT北海亭 - 区块链数字货币实时行情平台
最后使用cache计算DAG,light参数中保存的是cache数据.KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
2.5 DAG文件KWT北海亭 - 区块链数字货币实时行情平台
DAG每次生成都需要很长时间,因此生成时候需要存在文件中,再使用mmap映射到内存中。DAG文件路径一般如下KWT北海亭 - 区块链数字货币实时行情平台
Mac/Linux : $HOME/.ethash/full-R–KWT北海亭 - 区块链数字货币实时行情平台
Windows: $HOME/Appdata/Local/Ethash/full-R–KWT北海亭 - 区块链数字货币实时行情平台
是ethash算法的版本号,在libethash/ethash.h 中REVISION定义。KWT北海亭 - 区块链数字货币实时行情平台
是上面计算出来的seedhashKWT北海亭 - 区块链数字货币实时行情平台
路径下可能会有多个DAG文件,这取决于用户或者客户端是否删除过时的DAG文件。KWT北海亭 - 区块链数字货币实时行情平台
格式:KWT北海亭 - 区块链数字货币实时行情平台
DAG文件以8字节的幻数开头,值为0xfee1deadbaddcafe, 以小端格式写入。接下来是小端格式写入的dataset数据。KWT北海亭 - 区块链数字货币实时行情平台
三、Ethash实现KWT北海亭 - 区块链数字货币实时行情平台
3.1 EthashKWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
图1 算法流程图KWT北海亭 - 区块链数字货币实时行情平台
参数说明:KWT北海亭 - 区块链数字货币实时行情平台
Header_hash: 是当前块头部数据的hash值,在矿机调用get_ethwork时从任务参数中获取。KWT北海亭 - 区块链数字货币实时行情平台
Nonce: 是每次计算ethash使用不同的数,不能重复。可以取时间戳或随机数作为起始值,然后递增。KWT北海亭 - 区块链数字货币实时行情平台
对于矿工来说,如果result的值小于或等于target,那么就完成了挖矿过程,将当前的nonce和mix_hash作为工作量证明提交工作;如果result的值大于target,那么就需要改变nonce的值,再次调用ethash算法.KWT北海亭 - 区块链数字货币实时行情平台
Ethash算法程序如下:KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
从图中看,每次ethash从DAG随机取64128=8192Bytes, 以GTX1070显卡为例,带宽为256GB/s, 那么每秒能承受256102410241024/8192=33554432次ethash运算,即33MH/s的算力。可见,该算法对内存带宽的要求很高。KWT北海亭 - 区块链数字货币实时行情平台
3.2 快速验证KWT北海亭 - 区块链数字货币实时行情平台
当验证一个工作提交是否有效时,速度很快。KWT北海亭 - 区块链数字货币实时行情平台
下面是快速验证程序:KWT北海亭 - 区块链数字货币实时行情平台
KWT北海亭 - 区块链数字货币实时行情平台
免责声明:
本文《ETH以太坊Pow算法分析!以太坊挖矿源码解析》版权归原作者所有,内容不代表本站立场!
如本文内容影响到您的合法权益(含文章中内容、图片等),请及时联系本站,我们会及时删除处理。
推荐阅读

知名NFT项目无聊猿公司Yuga Labs宣布:美国SEC调查结案 NFT不是证券
ewX数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com)讯:知名NFT项目「无聊猿(Bored Ape Yacht Club,BAYC)」背后的公司Yuga Labs宣布,美国...
阅读: 79

Doodles宣布将在Solana上发行Meme币DOOD!NFT周交易量飙至1600万美元
eHR数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com):Doodles新团队宣布会在Solana上发行$DOOD Meme币后,Doodles NFT的周交易量飙升到1,60...
阅读: 60

蓝筹NFT项目Doodles宣布发行代币DOOD!放弃以太坊先选择Solana
MWi数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com):在胖企鹅、Azuki等知名项目相继发币后,又一以太坊蓝筹NFT项目宣布发币!以太坊市值第6大NFT项目,以动画、短片以...
阅读: 93

MegaETH推出The Fluffle灵魂绑定NFT!承诺至少空投5%代币
Ztb数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com):近日获得Vitalik Buterin投资的以太坊Layer2 MegaETH宣布将发行旗舰NFT系列The Fluf...
阅读: 82

任天堂Switch2 正式亮相!可能导入元宇宙链游、NFT与冷钱包?
nnm数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com):任天堂自2017年推出Nintendo Switch游戏机后,一直是任天堂的主要销售动力,而经历多年等待,任天堂16日...
阅读: 99

区块链助力文化传承!印度铁路基于Polygon在大壶节推NFT车票
YPe数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com)讯:印度铁路餐饮和旅游公司(IRCTC)与区块链业者Chaincode Consulting携手合作,将在一年一度的宗教...
阅读: 97

美国纽约检察长向诈骗犯空投NFT传票!创司法史上新里程碑
eJf数字认知网 - 区块链数字货币实时行情平台数字认知网(65901.com):非同质化代币(NFT)创下侦办犯罪案件新用途!据纽约地检署网站公告,纽约总检察长Letitia James正在起诉一群...
阅读: 78

透明性与隐私保护:区块链的双重特征探讨
区块链技术自诞生以来,便以其独特的去中心化、不可篡改和透明性等特点,在金融、供应链、数字版权等领域展现出巨大的应用潜力。然而,随着区块链技术的广泛应用,隐私保护问题也日益凸显,成为业界关注的焦点。区块...
阅读: 65

怎么理解区块链的意思?专家视角带你洞悉区块链的未来
区块链,这一基于分布式数据存储、点对点传输、共识机制和加密算法等计算机技术的新型应用模式,近年来在金融科技、供应链管理、身份验证等多个领域掀起了革命性的变革。从专家的视角来看,区块链不仅是一种技术创新...
阅读: 95

全球数字货币区块链最新消息速递:探索数字金融新未来
随着科技的飞速发展,全球数字货币和区块链技术正以前所未有的速度改变着金融行业的面貌。以下是一些最新的消息速递,展示了这一领域内的创新进展和探索方向。hpQ数字认知网 - 区块链数字货币实时行情平台hp...
阅读: 56
猜你喜欢
XRP当前价格与2012年比特币价格对比:未来潜力巨大
2025-11-10
Tether在10月市场震荡后增发10亿美元USDT,稳定币总发行量达60亿美元
2025-11-10

日本金融服务管理局的制度转变和加密货币机构的采用:比特币主流化监管的催化剂
2025-11-10

以太坊不断增长的机构流动性及其对长期价值的影响
2025-11-10

Chainlink 熊市表现强劲,但 16 美元支撑位可能扭转下行趋势
2025-11-10

2025 年后加密货币格局中的新兴山寨币:如何应对风险回报动态和机构情绪转变
2025-11-10

PEPE已死?暴跌91% 投资者纷纷撤离
2025-11-10
