区块链中的随机数(Nonce)是什么?


像比特币这样的加密货币使用区块链作为去中心化、分布式、公共的数字账本,记录比特币的所有交易。区块链具有一个独特的特性,即以哈希值的形式将前一个区块的值存储在当前区块中,这使得在不更改所有后续区块的情况下无法更改任何区块。

矿工创建并验证区块,并因使用其 CPU 算力而获得奖励。获得超过 50% 共识的区块将被添加到区块链中。在区块验证过程中,矿工将完成**工作量证明**,该证明涵盖区块的所有数据,并检查当前区块的哈希值是否小于目标值。

为了创建大多数网络参与者都接受的区块,矿工们争先恐后地尽快完成工作量证明。工作难度会进行调整,以确保每个区块至少需要 10 分钟的时间,这已成为比特币网络中将区块添加到区块链的标准时间。

**Nonce 是工作量证明的核心部分**。Nonce 是一个随机整数,是一个 32 位(4 字节)的字段,由矿工调整,使其成为一个有效的数字,用于对区块的值进行哈希运算。**Nonce 是一个只能使用一次的数字**。一旦找到完美的 Nonce,它就会被添加到哈希化的区块中。连同这个数字,该区块的哈希值将被重新哈希,并创建一个复杂的算法。

它会与现有的目标进行比较,判断它是否小于或等于当前目标。矿工每秒会测试和丢弃数百万个 Nonce,直到找到有效的“黄金 Nonce”。为了比其他矿工更快地完成验证,矿工们利用他们的计算机哈希算力相互竞争。一旦找到“黄金 Nonce”,他们就可以完成区块并将其添加到区块链中,从而获得区块奖励。

这排除了任何重复或重复使用同一比特币的可能性。无论其他字段是否更改,Nonce 都会发生变化,因为它具有唯一性,因此成为工作量证明中最重要的组成部分。在密码学中,**Nonce** 是一个任意数字,在密码通信中只能使用一次。它通常是在身份验证协议中发布的一个随机数,以确保相同的通信不会被重复使用。

将有一些常量信息、时间戳、具有难度的哈希值以及 Nonce,当这些信息通过哈希算法 SHA256 处理后,将成为一个新的区块。这里 Nonce 扮演着非常重要的角色。正如我们已经讨论过的,会尝试数百万个 Nonce 值,直到找到“黄金 Nonce”。目标哈希值定义为难度,哈希值的迭代计算需要矿工的计算机资源。只有使用正确的 Nonce 值,才能创建工作量证明,从而在区块链中生成一个新的区块。

更新于: 2019-07-30

4K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告