如果比特币挖矿公告只有 32 位长,为什么越来越难找到获胜的哈希值?

if a Bitcoin mining nounce is just 32 bits long how come is it increasingly difficult to find the winning hash?

我正在学习挖矿,让我感到惊讶的第一件事是算法的 nounce 部分应该随机循环直到你得到一个小于目标哈希值的数字..只有 32 位长. 您能解释一下为什么循环 unsigned int 如此困难,以及为什么随着时间的推移越来越困难?谢谢。

因为参与计算的不仅仅是32bit nonce。 1MB的交易数据也是挖矿投入的一部分。然后需要大量的算术运算才能得出输出,然后可以将其与目标进行比较。

比特币挖矿遍历所有 40 亿个单位,直到找到 "right" 个单位。

增加难度的方法是,只有输出的某些位很重要。例如。早期最低的 11 位必须是某种特定的模式,剩下的 21 位可以是任何东西。理论上,每个交易块将有 200 万 "right" 个值,均匀分布在一个 uint 的范围内。然后 "difficulty" 增加,因此 13 位必须是某种模式,所以现在 "right" 答案减少了 4 倍,所以找到一个答案需要(平均)4 倍的时间。

任务是:在你的潜在区块中尝试不同的 nonce 值,直到你到达一个哈希值低于某个给定阈值的区块。

我现在找不到来源,但我很确定自从引入特殊采矿 ASIC 以来,32 位随机数不再足以让矿工在计划的 10 分钟间隔内保持忙碌块。他们能够在不到 10 分钟的时间内计算出 40 亿个区块哈希值。

增加难度不再有帮助,因为它达到了 40 亿个可能的 nonce 值中的 none 给出的哈希值低于阈值的程度。

所以他们在块中发现了一些额外的字段,现在用作随机数扩展。原理还是一样的:尝试不同的值,直到你到达一个哈希值低于阈值的块,只是现在它超过了 32 位可以改变,允许阈值降低到以前的 32 位隐含障碍.