区块链 Nonce2025 年 1 月 20 日 | 阅读需 6 分钟 "Nonce" 或 "仅使用一次的数字" 是比特币挖矿软件使用的一个数字。 将其插入区块头后,数据就会被哈希。如果生成的十六进制值的总和小于或等于网络的难度目标,矿工的区块就会被添加到区块链中。当另一个区块被打开时,这个过程会重新开始。 关键点
理解 Nonce比特币 Nonce 是一个 32 位(或 4 字节)的数字,矿工试图通过它构造一个有效的哈希值,以便在比特币区块链中创建一个新区块。Nonce 是区块头中的一个字段;其他字段包括:
在比特币网络上,被称为矿工的用户竞相在每次尝试失败后更改 Nonce,以生成一个小于或等于网络目标哈希值的哈希值。将加密哈希函数应用于数据称为哈希。区块数据被加密哈希函数(一种将数据转换为具有固定长度的独特值、十六进制字符输出的数学技术)加密。 此哈希值通过充当加密指纹来确保区块的内容永远不会被更改。矿工可以更改的区块头中唯一可变的就是 Nonce。通过改变 Nonce,矿工可以计算出替代的解决方案并改变区块的哈希值。 例如,前面的段落使用 SHA-256 技术进行了哈希处理,如下所示: 通过在段落的末尾附加零值(Nonce)可以获得一个不同的十六进制值: 如果您将那个零更改为一,您将得到: 比特币挖矿软件就是这样使用 Nonce 的。每次尝试,Nonce 值会递增一,直到达到预定值。第一个发现有效哈希值低于网络难度目标的矿工将获得区块奖励。一旦他们的区块被上传到区块链并广播到网络,过程就会重新开始。目标难度衡量找到有效 Nonce 的难度。为了保持区块生成率恒定,它会定期更改。 附加 Nonce 和时间戳在区块浏览器中,您会看到 Nonce 通常只达到数十亿。例如,区块 841,948 的 Nonce 是 1,614,498,317。区块 841,949 的 Nonce 是 4,218,083,700。这与现代采矿机在一秒钟内产生的哈希值数量相差甚远。 此外,Nonce 的长度最多只能是 32 位(4 字节),这意味着它最多只能比 42.9 亿稍大一点。哈希的速度非常快,需要滚动(rollover)才能发挥作用。因此,在比特币 ASIC 矿机开始席卷网络后,开发了另一种技术。Coinbase 数据字段使用一个额外的随机创建的整数,称为“额外 Nonce”(extra nonce)。通过将此值添加到 Coinbase 交易空间,默克尔根会发生变化。 由于默克尔根包含在区块头中,因此区块头的哈希值是动态的。为了尝试找出答案,会调整额外 Nonce 和 Nonce。如果两者都无法产生结果,挖矿程序会允许矿工更改时间戳。通过这三个参数的组合,区块链能够实现大约每十分钟挖掘一个区块的目标。 Nonce 这个词是什么意思?"Nonce" 是 "number used once"(仅使用一次的数字)的缩写。在挖掘区块时,比特币区块链使用它来帮助生成哈希值。 “Nonce”一词是什么意思?在区块链的上下文中,Nonce 是一个单次使用的数字。就其在区块链上的应用而言,它是一个数字,每次尝试哈希以生成满足网络难度要求的哈希值时,该数字都会逐步增加。 什么构成 Nonce?用于区块挖掘的 Nonce 是 Nonce 的最佳示例。区块 841,954 使用了 Nonce 3,983,795,221。这并不意味着矿工只需要尝试 3.98 万亿次;它可能与可变的额外 Nonce 和时间戳条目结合使用,滚动了数千次。由于 Nonce 是一个 32 位值,因此它最多只能达到略高于 42.9 亿。 Nonce 对区块链安全的重要性
比特币区块链网络如何使用 Nonce?
不同类型的 Nonce1. 交易 Nonce每个区块链网络中的每笔交易都有一个称为交易 Nonce 的唯一值。其主要目的是确保只执行授权的交易,从而促进不可重放性。 每笔新交易都会增加与账户关联的交易 Nonce。每笔被确定为重复并返回给用户的交易的 Nonce 的最后几位会增加 Nonce。 2. 区块 Nonce区块 Nonce,也称为指针,是在挖矿过程中附加到区块头的一个值。在 PoW 方法中,它用于确定与预期网络难度级别相对应的哈希值。矿工通过修改区块 Nonce 持续瞄准低于目标难度的哈希值;通过这种方式,他们可以生成一个合法的区块,该区块将被添加到区块链中。 要理解交易 Nonce 在区块链生态系统中的功能(它维护着网络的安全性与完整性),需要能够区分它们与区块 Nonce。虽然区块 Nonce 对于防止交易重放攻击至关重要,但交易 Nonce 在防止交易重放攻击方面具有优势,因为工作量证明方法生成计算上困难的区块,从而提高了整体网络安全性。 结论矿工们竞相寻找一个 Nonce,该 Nonce 满足挖掘比特币的网络难度要求。将哈希方法应用于区块头中的数据,生成一个必须小于或等于网络难度目标的值。 每次尝试满足目标时,Nonce 都会递增一。它会被滚动(rolled over),并且额外 Nonce 和时间戳会与它一起使用,直到矿工成功(如果它超过 32 位限制)。 下一个主题基于区块链的碳信用生态系统 |
我们请求您订阅我们的新闻通讯以获取最新更新。