基于哈希的度量验证

如果你对足够多的随机短语进行了哈希,有点像打字机上的猴子,最终你会发现一个匹配特定模式的哈希。在哈希为“ya”的情况下,请注意它以模式“666”开头。这类似于比特币,但比特币要求找到与以“000”开头的模式匹配的哈希值。可以通过将前一个区块中的信息插入到SHA-256哈希算法中来创建的任何哈希,并用于创建下一个块,只要它在数字中具有正确数量的前导零,网络就会认可,并且区块奖励将是你的。

由于想要挖掘比特币的人数不断增加,因此每秒寻找SHA-256哈希值的算力总是越来越多。比特币软件通过自动调整共识度量的难度来处理这种意外事件,增加前导零的数量以形成共识。这可以保证新块的创建时间与前面的块大致相同。对于比特币网络,为十分钟,但可以轻松更改。在以太坊中,平均区块生成时间约为10秒。

基于风险的度量

通常称为Proof-of-Stake(PoS)度量,这些度量基于以下事实建立共识:选择创建无效区块的每个人都会失去比通过创建有效区块获得的更多的东西。该度量是通过关于链内数据的共识创造的,而不是关于链外数据的共识。基于哈希的共识度量主要关注SHA-256哈希的质量和精确性。基于风险的度量主要关注任何特定节点在添加新块时所承担的风险。

所有节点在这里达成一致的度量是哪些节点创建了正确的块,哪些节点没有。在某种程度上,这已经内置在比特币协议中。比特币协议假定正确的块是大多数节点正在挖掘的块。它假设矿工不会选择不正确的区块,因为这不利于挖掘坏区块。

另一方面,基于风险的链依赖于对未能创建网络中其他节点认可的块的创建者的快速,即时和不可逆转的影响。通过强制执行资源丢失的风险,基于哈希的度量(也依赖于不想浪费资源的人员)过程可以以更简单的方式进行缩短和实施。目前正在研究在以太坊中实现这种共识度量模型。

工作量证明是一种共识协议,它将网络中的有效区块链视为创建计算成本最高的链。这里提到的计算工作是将所有块添加到当前区块链所必须完成的工作。这项工作由网络节点完成,并且必须在计算上很困难,以便使工作变得非常重要,但也必须是可行的,以便在经过合理的努力之后可以实现。最终,网络将依赖于提供此PoW的节点以维持区块链,因此,网络的最佳利益是需要合理的PoW。

在以太坊网络以及许多其他区块链网络中,获取PoW需要找到要添加到区块链的块的哈希。这个哈希是通过散列由块的数据和随机数组成的字符串获得的(创建此字符串的方法可能会有所不同,但整个过程是相同的)。该哈希必须小于某个阈值(由网络的难度确定),并且一旦节点发现产生该哈希的随机数,则接受相应的块并将其添加到区块链中。

找到这个有效散列的方法是修改nonce,通常将其初始化为零并在每次迭代时递增,直到产生低于网络阈值的哈希。此过程称为挖掘。由于挖掘中使用的哈希函数的性质,找到有效随机数的唯一方法是通过暴力搜索,即检查随机数的每个可能值,直到找到满足网络要求的散列。因此,提供有效的随机数被认为是PoW。