上文中提到的“难题”便是如下内容。
我们已经叙述过,Block的散列是:约十分钟的交易十前一个Block的散列十通过随机数被计算出来。
这里的随机数指的是数列,如果它发生了改变,那么Block的散列值也会发生变化。比特币中“计算出的散列最初必须有一些0存在(现在是
在辅论四中我们会提到,列是单向函数,不存在简便算法(一般认为)。因此,必须通过一个个的计算,才能得到随机数。
具体的计算并没有太大的难度,但是需要计算的数量却十分庞大。目前,目标值被设定在平均花费十分钟的时间找到,十分钟是个平均数。正确的随机数有时不到十分钟就会被找到,有时却需要十分钟以上的时间。目标值每隔两周就会进行一次调整,根据计算机性能的提升,计算难度也在上升。
计算速度快的比特币矿机可能会较早地找到目标值。但是,因为计算要求较高的准确率,所以计算速度快的计算机也不是一定就会胜出。
如果找到了正确的随机数,那么利用它所计算出的Block散列就会满足程序设定的条件,从而也就能确定出它的准确性。
这个方式就被称作“Hash cash”,这原本是应对垃圾邮件的对策,在1997年由Adam Back发明。
在比特币诞生的初期,挖掘者们利用普通的电脑就可以完成挖掘。后来,随着计算难度的提高,不利用专业的计算机已经无法在计算中胜出了。