区块链区块哈希

17 Mar 2025 | 阅读 2 分钟

在本节中,我们将学习 SHA-256 如何应用于构建区块链中的区块。我们将结合比特币区块链的背景进行讨论,并理解这如何与矿工的角色联系起来。矿工实际上正在构建区块,这些区块被添加到区块链中,以构建比特币区块链。

在下面的图片中,您可以看到该区块由区块编号、数据字段、与之相关的加密哈希和一个 Nonce 组成。

Blockchain Block Hashing

在上面的图片中,生成的哈希看起来像 00001acbm010gfh1010xxx。我想指出的是,这个哈希有四个前导零。这四个前导零描述了区块是否有效。出于实际考虑,您会看到这个哈希对应于 nonce,而区块编号对应于可用数据。由于哈希有四个前导零,因此它是一个有效区块。

如果我们对数据字段进行任何更改,它将生成一个完全不同的哈希,这可以在下图所示。

Blockchain Block Hashing

如果新生成的哈希没有四个前导零,那么它将不是一个有效区块。为了使区块有效,我们将使用一个称为 **nonce** 的字段。

Nonce 是 **一次性使用的数字** 的缩写,在加密通信中使用,以便区块的哈希满足特定标准。这个标准可以是生成一个必须有前导四位为零的哈希。因此,生成的哈希将看起来像00001acbm010gfh1010xxx

Nonce 本质上是一个随机数,它决定了您如何才能真正让这个特定的区块为您提供一个有效的哈希。您可以通过手动更改 nonce 来做到这一点。通常,矿工从 Nonce 值 1 开始,并不断递增它,直到生成的哈希满足指定的标准。因此,可能需要多次迭代才能生成具有四个前导零的期望哈希。在 比特币 系统中生成区块的预期时间是 10 分钟。一旦矿工成功挖出区块,他就会将该区块释放到系统中,使其成为链中的最后一个区块。

在 Anders Brownworth 的哈希程序中,当我们点击图片所示的“挖矿”按钮时,它会给出一个有效区块。该区块具有一个唯一的 nonce,其哈希在开头有四个前导零。

Blockchain Block Hashing