比特币区块链新手问题:添加到区块的nonce随机数是如何生成的?
比特币Nonce相关问题解答
认知修正
你此前的理解存在一处小偏差:nonce本身的作用并不是提升挖矿解谜难度。比特币的挖矿难度由全网算力动态调整,具体体现为网络要求区块哈希值必须满足的前导零个数要求,nonce只是矿工用来凑出符合要求哈希值的可变参数。
Nonce的来源与取值规则
- nonce全称为Number Used Once,本质是一个32位长度的无符号整数,没有预设的官方生成来源,取值完全由参与挖矿的矿工自行决定。
- 矿工挖矿的核心逻辑就是持续更换
nonce的取值,将它和区块头内的其他固定字段(前一区块哈希、当前区块交易的默克尔根、时间戳、难度目标值等)共同代入SHA-256哈希函数计算,只要最终输出的哈希值小于网络给定的难度目标值,就算挖矿成功。 - 由于32位nonce最多只能提供约42亿种不同取值,高算力矿机很快就能遍历完所有组合,因此当前矿工还会同步调整区块内的交易排序、修改Coinbase交易中的extraNonce字段来获得更多可变参数,作用和调整nonce完全一致。
内容的提问来源于stack exchange,提问作者dyxdyx
相关产品推荐
相关产品推荐

