我正在学习挖掘,并且让我感到惊讶的第一件事是算法的nounce部分应该是随机循环的,直到你得到一个小于目标散列的数字..只有32位长。 你能解释为什么循环一个unsigned int这么困难,随着时间的推移它会变得越来越困难吗?谢谢。
答案 0 :(得分:2)
任务是:尝试在潜在块中使用不同的nonce值,直到达到哈希值低于某个给定阈值的块为止。
我现在找不到源代码,但我很确定自从引入特殊的采矿ASIC以来,32位的随机数不再足以让矿工们在计划的10分钟间隔内保持忙碌。他们能够在不到10分钟的时间内计算出40亿块哈希值。
增加难度并没有帮助,因为达到了40亿个可能的nonce值都没有给出低于阈值的散列的程度。
因此,他们在块中找到了一些现在用作nonce-extension的附加字段。原理仍然是相同的:尝试不同的值,直到达到低于阈值的散列的块,只有现在它可以变化超过32位,允许阈值降低超过以前的32位隐含障碍
答案 1 :(得分:1)
因为它不仅仅是计算中涉及的32位随机数。 1MB的事务数据也是挖掘输入的一部分。然后有一个非常重要的算术数量到达输出,然后可以与目标进行比较。
比特币挖掘 循环超过所有40亿个uint,直到找到一个"对"之一。
增加难度的方式是,只有部分输出才重要。例如。早期最低的11位必须是一些特定的模式,剩下的21位可能是任何东西。理论上会有200万"对"每个事务块的值,均匀分布在uint的范围内。那么"难度"增加,因此13位必须是某种模式,所以现在减少4倍"右"答案,所以它(平均)需要4倍的时间才能找到答案。