为了使比特币矿工能够从验证交易中实际赚取比特币,必须发生两件事。
首先,他们必须验证价值 1 兆字节(MB)的事务,理论上该事务可以小到只有 1 个事务,但通常有几千个,具体取决于每个事务存储的数据量;其次,为了向区块链添加交易块,矿工必须计算解决一个复杂的数学问题,也称为“工作量证明”。
他们实际上正在尝试寻找一个小于或等于目标哈希的 64 位十六进制数字。
基本上,矿工的计算机会根据单位每秒散列数(MH/s),每秒千兆位散列(GH/s)或什至每秒兆兆散列(TH/s)的速度去寻找符合条件的值,猜测所有可能的“哈希”直到找到解决方案为止。
换句话说,这是一场猜大小的赌博。
一个有用的类比解释,假如我现在是一个五岁的孩子:“我告诉三个朋友我脑中想到一个 1 到 100 之间的数字,然后将该数字写在了纸上并将其密封在信封中。我的朋友们不必猜测出确切的数字,他们只需要有人能够猜测出一个数字小于或等于我写在纸上的数字,这个人就将获得奖励,而且不限制猜测的次数,他们可以一直尝试(即挖矿)直到有人成功。
比方说,我想了一个数字 19。如果朋友 A 猜 21,他们就输了,因为 21>19。如果朋友 B 猜 16,而朋友 C 猜 12,那么理论上他们都得出了可行的答案,因为 16<19 并且 12<19。即使 B 的答案更接近目标答案 19,但也不会多给 B 额外的奖励。
现在想像一下,我提出了'猜我在想什么数字'这个问题,但是我不是在问三个朋友,也不是在问一个介于 1 到 100 之间的数字,相反,我是在问数百万个的比特币矿工,我在找一个 64 位的十六进制数字,这个数字是 上一个区块的计算结果+随机数 后进行哈希计算且符合以 17个0开头,比如说小于 0000000000000000057fcc708cf0130d95e27c5819203e9f967ac56e4df598ee 的值。
现在你会发现这很难猜测正确的答案,必须大量设备的尝试计算才可能找到,如果是找 18个0开头 的值那么难度就会更大了。