比特币是如何挖矿的?比特币的挖矿原理解释

日期:2024-06-20 |   作者: 浓缩机



  当您听说比特币“挖矿”时,您会想到将硬币从地下面挖出来。但是比特币不是物理的实体,你看不见,摸不着,那么为什么我们称其为挖矿呢?

  因为它类似于金银开采,比特币存在于协议的设计中(就像黄金存在于地下一样),但是它们尚未被发现(就像尚未挖出的黄金一样)。 比特币协议规定每大约10分钟产生一个比特币区块,每个区块包含少数的比特币,(最早开始是每个区块50个,经过2次减半之后,当前时间2020-03-07,每个区块12.5个比特币,下一次减半后,2020-05月左右,将变为每个区块6.25个比特币)。比特币矿工所做的挖矿工作就是找到那些区块,从而获得区块里面包含的比特币。

  比特币协议这样设计是为了奖励创建经过验证的交易区块并将其包括在区块链中的矿工。

  让我们先谈谈“比特币节点”。节点是运行比特币软件的计算机,并通过参与信息中继来帮助保持比特币运行,任何人都可以运行一个节点,您只需下载比特币软件(免费)并打开某个端口即可(缺点是它消耗电能和存储空间-撰写本文时网络占用约200GB左右)。节点在网络上传播比特币交易,一个节点会将信息发送到它知道的几个节点,后者将信息中继到他们了解的节点,等等。这样一来,交易最终很快就会遍及整个网络。

  一些节点是挖矿节点(通常称为“矿工”),这些矿工将未完成的交易分组为块,并将其添加到区块链中。他们怎么样才能做到这一点呢?通过解决一个个复杂的数学难题,这是比特币计划的一部分,并将含在区块中,要解决的难题是找到一个数字,将其与块中的数据组合并通过哈希函数哈希计算时,产生的结果要在一些范围内。这比听起来要难得多。

  (一个细节,此数字称为“nonce”,是“number used once”的缩写词。对于比特币网络,随机数是0到4,294,967,296之间的整数。)

  他们怎么样找到这一个数字呢? 通过随机猜测,对,一个一个试,哈希函数无法预测输出结果,因此,矿工们猜出了神秘的数字,并将哈希函数应用于该猜中的数字与区块中数据的组合。产生的哈希值必须以预定个数的零开始,无法知道哪个数字会有效,因为两个连续的整数会产生千差万别的结果,此外,也有一定可能会有多个随机数产生同样预期的结果,或者可能一个也没找到(在这样的一种情况下,矿工会继续尝试,但使用不相同的区块数据配置)。

  第一个在结果范围内获得哈希值的矿工宣布其对网络其余节点的胜利,其他所有矿工立马停止在当前区块上的工作,并开始尝试找出下一个区块的神秘号码。作为对其工作的奖励,胜利的矿工获得了一些新的比特币。

  在撰写本文时,每个区块奖励为12.5比特币,其价值将近11.38万美元,即将在20年5月要进行减半,减半后每个区块为6.25个比特币。

  尽管这听起来并不轻松,有很多挖矿节点在争夺该奖励,这是运气和计算能力的问题(您可以执行的猜测计算次数越多,能力就越强,当然还和运气有关)。

  此外,成为挖矿节点的成本相当大,这不仅是因需要强大的硬件(如果您的处理器比竞争对手的处理器更快,那么您有更大的机会先找到正确的nounce),还因为运行这些处理器所消耗的大量电能。矿机的运行成本是非常耗电的。

  并且,为解决难题而奖励的比特币数量将减少,现在是12.5,但每四年左右减半(下一次在20年5月)。比特币相对于电力和硬件成本的价值可能会在未来几年内上升,以部分弥补这一下降,但这并不100%确定。

  经常调整计算难度(哈希字符串开头所需的零个数),因为要保证平均需要大约10分钟来处理完成一个区块。

  为什么要十分钟? 那就是比特币研发人员认为对于稳定和减少新代币流通量来说必要的时间量,中本聪认为这个时间比较合理。所以比特币转账速度慢是中本聪大神早早预料到的,故意这样设计的,必然有其相应的原因。

  我们首次拥有一种以去中心化,无信任和防篡改的方式实现便捷的数字转账的系统,带来的成就可能是巨大的。