以太坊是怎么挖币的 具体的流程了解一下

2009年比特币诞生,在这不到十年间里,比特币的涨幅达到了2600万倍。而之后又诞生了许多的虚拟货币。就比如今天小编所说的以太坊。今天小编就和大家一块看一下以太坊是怎么挖币的?希望对大家能够有所帮助。

以太坊其实等同于比特币但是与比特币又有不同之处,以太坊是一个平台,又是一种编程程序,以太坊的各种抽象概念,图灵完备、智能合约等等并不是一般人所能明白的,以太坊的这些概念基本不可能实现,而其他一些已经落地去中心化的应用,都因为当前互联网的局限性,止步不前。

以太坊是怎么挖币的?

设计目标

抵抗矿机(ASIC Resistance)。使用专门优化的芯片产生的挖矿优势应该尽可能的小,小到即使使用普通CPU挖矿也能产生收益。

轻客户端可验证。轻客户端应该有能力验证每一个块的真实性。目标是在普通桌面电脑上运行用C实现的验证算法,验证时间小于0.01秒,用Python或者Javascript小于0.1秒,使用内存不超过1MB。

挖矿算法

以太坊(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种。它的特点是挖矿的效率基本与CPU无关,却和内存大小和内存带宽正相关。对内存大小和带宽的要求意味着那些通过共享内存的方式大规模部署的矿机芯片并不能在挖矿效率上有线性或者超线性(super-linear)的增长。

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

对于每一个块(block),先计算出一个种子(seed)。种子的计算只依赖于当前块的信息,例如block number以及block headers。

使用种子产生32MB的伪随机数据集,称为cache。轻客户端需要保存cache。

基于cache再生成一个1GB大小的数据集,称为the DAG。这个数据集中的每一个元素都只依赖cache中的某几个元素,换句话说,只要有cache就可以快速计算出DAG中指定位置的元素。完整的可挖矿的客户端需要保存DAG。

挖矿可以概括为从DAG中随机选择元素然后对其进行hash的过程。验证的过程也是一样,只不过不是从DAG里面选择元素,而是基于cache计算得到指定位置的元素,然后验证这个元素集合的hash结果小于某个值。由于cache很小, 而且指定位置的DAG元素很容易计算,因此验证过程只需要普通CPU和普通内存即可完成。

cache和DAG每一个周期更新一次,一个周期的长度是1000个块。也就是说这1000个块产生的cache和DAG是完全一样的,因此挖矿的主要工作在于从DAG中读取数据,而不是更新cache和DAG。DAG的大小随时间的推移线性增长,从1GB开始,每年增加大约7GB – 因此到2015年12月大约是8GB, 到2016年12月大约15GB。

挖矿时的注意事项

由于挖矿就是电脑进行大量的运算,那么大量的运算就会产生大量的热量,而主机温度过高会造成电脑死机,这样就会造成较大的损失。所以应该注意矿机的温度控制,最好是安装空调对机房进行降温处理。另外,还要在挖矿的过程中停电,一旦停电电脑的部分数据就会丢失,从而造成损失。

每年产出多少?

目前,每产生一个新区块就会产生5个新以太币。计算一下,如果每14秒挖出一个区块,一年有3150万秒(365x24x60x60),这意味着每年有225万个区块被挖出来。225万个区块,每个区块5个以太币,也就是每年会产出1130万个以太币。这个数字与低于1800万以太币产量的数字,吻合。