nonce 是一个只使用一次的数字。在挖矿中,它是矿工在计算区块头哈希值时需要改变的变量。区块头包含前一个区块的哈希值、时间戳、默克尔根、难度目标以及 nonce 值。矿工会尝试不同的 nonce 值,直到生成的哈希值低于目标难度。没有捷径可走。找到有效 nonce 的唯一方法是不断尝试,每秒进行数十亿次。第一个找到有效 nonce 的矿工将获得广播区块的资格。
比特币中的 nonce 字段为 32 位,这意味着大约有 40 亿个可能的值。这听起来很多,但现代 ASIC 矿机很快就会耗尽 nonce 空间。当 nonce 空间耗尽时,矿工会更改区块头的其他部分,例如时间戳或 coinbase 交易,然后重新开始。这样他们就能获得一组新的 nonce 值。nonce 是一个很小的数字,却承担着重要的任务。它使得工作量证明机制成为可能,并防止矿工重复使用相同的哈希值。如果没有 nonce,随机生成一个有效的区块将是不可能的。
临时事实
- 比特币中的 32 位字段——约有 40 亿个可能的值
- 矿工修改以找到有效的哈希值
- 很快耗尽——矿工调整其他标头字段
- 这并非秘密——获胜的随机数会在版块中公布。
nonce 不是一种安全特性。它是一种使哈希值不可预测且工作可验证的机制。
Comments
No comments yet. Be the first to share a thought.
Leave a comment