主页 > 安卓版下载imtoken官网 > 以太坊挖矿的原理是什么?挖矿算法是如何计算的?

以太坊挖矿的原理是什么?挖矿算法是如何计算的?

安卓版下载imtoken官网 2023-03-02 06:47:02

今天要跟大家讲的内容,和以太坊的挖矿原理有关。其实之前我也给大家详细介绍过比特币的挖矿原理。这和比特币还是有一定区别的!如果大家有兴趣,也可以详细阅读下面的内容,希望对大家有所帮助!

以太坊的共识机制是PoW(Proof of Work),使用的算法是Ethash,是Dagger-Hashimoto算法的改进版。流程大致如下:

1.对于每个区块,首先计算一个种子(seed),它只与当前区块的信息有关;然后根据种子生成一个32M的随机数据集(缓存)。

以太坊挖矿一天赚多少_以太坊eth挖矿详细教程_以太坊挖矿原理

2. 根据Cache生成一个1GB的数据集DAG(有向无环图),是一个完整的搜索空间,挖掘过程是从DAG中随机选择元素(类似于比特币挖掘找到合适的Nonce)然后进行hash操作,可以快速从Cache中计算出DAG指定位置的元素,然后hash验证。

Cache 和 DAG 需要定期更新,每 1000 个块,并且要求 DAG 的大小随时间线性增长以太坊挖矿原理,从 1G 开始,每年增加约 7G。

挖矿算法是如何计算的?

以太坊eth挖矿详细教程_以太坊挖矿一天赚多少_以太坊挖矿原理

以太(ether)的挖矿算法称为Ethash,也称为Dashimoto(Dagger-Hashimoto)以太坊挖矿原理,是Hashimoto算法结合Dagger的变种。

其特点是挖矿效率基本与CPU无关,但与内存大小和内存带宽正相关。内存大小和带宽要求意味着通过共享内存大规模部署的挖矿芯片在挖矿效率上并没有线性或超线性的提升。

QQ截图20180314230532.png

以太坊挖矿一天赚多少_以太坊挖矿原理_以太坊eth挖矿详细教程

接下来我们看一下Dashimoto的基本流程:

1、对于每一个区块(block),首先计算一个种子(seed)。种子的计算只依赖于当前块的信息,例如块号和块头。

2、使用种子生成一个 32MB 的伪随机数据集,称为缓存。轻客户端需要保存缓存。

以太坊eth挖矿详细教程_以太坊挖矿原理_以太坊挖矿一天赚多少

3、基于缓存生成一个 1GB 的数据集,称为 DAG。这个数据集中的每个元素只依赖于缓存中的几个元素。也就是说,只要有缓存,就可以快速计算出DAG中指定位置的元素。一个完整的可开采客户需要保存 DAG。

4、挖矿可以概括为从 DAG 中随机选择元素,然后对它们进行哈希处理的过程。验证过程是一样的,只是不是从DAG中选择元素,而是根据缓存计算指定位置的元素,然后验证这组元素的hash结果小于某个值。由于缓存小,指定位置的DAG元素容易计算,验证过程只需要普通CPU和普通内存即可完成。

5、缓存和DAG每个周期更新一次,一个周期的长度是1000块。也就是说这1000个区块生成的缓存和DAG是完全一样的,所以挖矿的主要工作是从DAG中读取数据,而不是更新缓存和DAG。

以太坊挖矿原理_以太坊eth挖矿详细教程_以太坊挖矿一天赚多少

DAG 的大小随时间线性增长,从 1GB 开始,每年增加约 7GB - 所以到 2015 年 12 月约为 8GB,到 2016 年 12 月约为 15GB。

注:上述步骤中的数字随着开发的进行而有所调整,具体数值请参考源码。

学习了上述相关内容后,你能清楚地了解以太坊的挖矿原理吗?当然,小峰小编会继续为大家传递更多精彩和有价值的知识点。有一些帮助。最后,希望大家继续关注本站内容。