首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的哈希值和工作量证明是什么

亲爱的区块链社区成员们:在我的上一篇博客文章中,我谈到了实体字节码(Solidity Bytecode)。今天,我想谈谈区块链的哈希值和工作量证明。

众所周知,区块链是以太坊生态系统的核心。它是一个仅附加的结构,用于存储网络中执行的每个事务。区块链中的每个块都包含其前任的哈希值。这个结构创建了一个链,可以追溯到起源块。当一个块在链中存在较长时间时,人们就不可能对其进行追溯更改,因为所有后续块都是相互依赖的,并且需要太多的资源来重新计算从要更改块开始的所有序列。

在其他有用的信息中,包含两件事物:Merkle树和Nonce值。第一个用于事务验证,第二个用于挖掘流程。

让我先解释一下Merkle树:

通常如果要验证块中事务的有效性,需要确保每个事务中都不修改哈希值。要以可伸缩的方式实现这一点,可以使用一种称为Merkle树的特殊数据结构。使用这种结构,您不必遍历块中的所有事务来验证有效性。你只需要穿过一条Merkle的叶节点就可以做到这一点。Merkle树是一种数据结构,用于在一个块中存储整个事务列表的数字签名。它在二进制哈希值树的帮助下以一种有效的方式验证事务的完整性。它的叶节点包含一个块的各个事务的哈希值。每个非叶节点哈希值都是它的两个子节点的哈希值构成的。然后,这个树的根节点包含在所有相关事务的块中。

Merkle树允许节点仅从Merkle上下载块的根部和少量节点来验证事务。在图2所示的示例中,只需要节点Hash(D)就可以在块中添加Hash(AB)和Hash(EFGH)来证明事务Hash h(C)的存在。这个验证需要平均O(log n)的时间,并且最多是O(n)的时间,因为结构与二叉搜索树相同。如果攻击者将无效事务偷偷带入树底部的某个位置,则该事务的哈希值向上传播到根节点,并将使整个块的哈希值无效。

现在,让我来解释一下

第二个值称为Nonce值,用于挖掘过程。它是所谓的工作量证明算法的一部分。更具体地说,挖掘器将通过哈希只函数运行块的唯一头元数据(包括时间戳和软件版本)(它将返回一个固定长度、打乱的数字和字母串,看起来是随机的)来改变“nonce值”,这会影响得到的哈希值。如果挖掘人员发现了与当前目标匹配哈希值,挖掘人员将可以在网络上广播块,让每个节点验证并添加到各自的分类帐副本上。如果矿工B找到了哈希值,那么矿工A将停止对当前块的工作,并对下一个块重复这个过程。大约每12-15秒,一个矿工就会发现一个块。如果挖掘人员开始更快或更慢地解决谜题,算法就会自动调整问题的难度,从而使挖掘人员恢复到大约12秒的解决时间。

我希望这篇博文能让你更好地了解关于区块链的哈希值和工作量证明。在接下来的几周里,我将与你们分享关于区块链世界技术的其他见解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181109A1XHHJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券