在本节中,我们将学习SHA-256如何应用于在区块链中构建区块。我们将在比特币区块链的背景下进行讨论,并了解这与矿工的角色如何联系。未成年人实际上正在构建区块,并将这些区块添加到区块链中以构建比特币区块链将是什么。
在下图中,你可以看到此块由块号,数据字段,与其关联的加密哈希和Nonce组成。
文章图片
在上图中,生成的哈希看起来像00001acbm010gfh1010xxx。我想指出的是,此哈希具有四个前导零。四个前导零表示该块是否有效。出于实际目的,你将看到此哈希对应于随机数,而块编号对应于可用数据。由于哈希具有四个前导零,因此它是一个有效块。
如果我们在数据部分进行任何更改,它将提供完全不同的哈希值,如下图所示。
文章图片
如果新生成的哈希没有四个前导零,那么它将不是有效的块。为了使该块有效,我们将使用称为nonce的字段来实现。
Nonce代表在密码通信中使用过的数字,以便该块的哈希满足特定条件。可以生成此标准的哈希值,该哈希值的前四位必须为零。因此,生成的哈希看起来像是00001acbm010gfh1010xxx。
随机数基本上是一个随机数,它指出如何实际使此特定块为你提供有效的哈希。你可以通过手动更改随机数来做到这一点。通常,矿工从Nonce值1开始,并一直递增该值,直到生成的哈希满足指定条件为止。因此,可能需要进行多次迭代,直到生成具有四个前导零的所需散列为止。在比特币系统中生成区块的预期时间为10分钟。一旦矿工成功开采了该区块,他就将其释放到系统中,并使其成为链中的最后一个区块。
【区块链块散列】在Anders Brownworth哈希程序中,当我们单击如图所示的“我的”按钮时,它将给出有效的块。该块具有唯一的随机数,散列在开头以四个零开头。
文章图片