2018-08-15小白学区块链——以太坊的挖矿原理

我们知道以太坊的共识机制是权益证明机制(Proof of Stake,简称POS),使用的算法是Ethash。简单来说这个系统主要做两件事:一是读取内存,二是用加密算法把数据混编产生出新的加密数据。以太坊主要就是通过运行这套算法运行的,今天就了解一下以太坊的挖矿原理。

1.以太坊挖矿原理

以太坊使用Ethash的算法,这种算法是对 Dagger-Hashimoto算法的改良版本,流程大概如下:对于每一个块,首先计算一个种子(seed),该种子只和当前块的信息有关;然后根据种子生成一个32M的随机数据集(cache)。根据Cache生成一个1GB大小的数据集合DAG(有向非循环图),它是一个完整的搜索空间,挖矿的过程就是从DAG中随机选择元素(类似于比特币挖矿中查找合适Nonce)再进行哈希运算,可以从Cache快速计算DAG指定位置的元素,进而哈希验证。要求对Cache和DAG进行周期性更新,每1000个块更新一次,并且规定DAG的大小随着时间推移线性增长,从1G开始,每年大约增长7G左右。

2.以太坊挖矿的过程

矿工把以太坊的交易数据打包到一个区块中。一个区块包含了一系列的交易,区块里每一笔交易都必须要经过一个验证过程,每个区块都与它的前一个区块链接起来,形成区块链。

世界各地的矿工都在同一时间创建和验证区块,矿工在提交一个区块到区块链上的时候都会提供一个数学机制的“证明”,这个证明就像一个保证:如果这个证明存在,那么这个区块一定是有效的。为了让一个区块添加到主链上,一个矿工必须要比其他矿工更快的提供出这个“证明”。通过矿工提供的一个数学机制的“证明”来证实这个区块是否有效,证实了一个新区块的矿工都会被奖励一定的以太坊币ETH作为奖赏。

你可能感兴趣的:(2018-08-15小白学区块链——以太坊的挖矿原理)