首页 > 热点资讯 > 正文

挖矿原理与过程:小白入门指南

2024-05-08 04:11
来源:网络

挖矿原理与过程:小白入门指南

矿工与挖矿概念解析

区块链由众多节点构成,为了确保各节点间的时间同步,新区块的产生速率不可过快。设想一下,你刚完成一个区块的同步并准备构建下一个区块,然而其他节点却又产生了新区块,迫使你不得不中断一半的计算工作,重新进行同步。每个区块仅能紧跟一个新区块,参与者始终只能在其基础上生成下一个区块。因此,一旦接收到新信号,就必须立即执行同步操作。

于是,区块链的创始人中本聪有意使新区块的添加变得十分困难。其设计原则是,全网平均每10分钟仅能生成一个新区块,这意味着一小时内最多仅有六个新区块诞生。

这样的产出速度并非通过指令强制实现,而是借助于大量计算工作的设置。换言之,唯有经过海量的计算,才能获得当前区块的有效哈希值,并将其附加至区块链。由于计算任务艰巨,所以新区块的生成速度较慢。

这一过程被称为“挖矿”,寻找有效哈希的过程宛如在全球沙海中寻觅一粒特定的沙粒。执行计算任务的机器称作矿机,操控矿机的人则被称为矿工

挖矿难度系数及其意义

面对此情此景,你或许会产生疑惑,为何常说挖矿艰难,毕竟计算机擅长的就是计算,为何却迟迟无法算出一个哈希值呢?

问题在于,不是任何一个哈希值都能被区块链接纳,只有符合特定条件的哈希值才会被接受。这一条件极为严格,导致大部分哈希值都无法达标,必须重新计算。

每个区块均含有一个难度系数(difficulty),该系数定义了计算哈希值的难度水平。例如,第100000个区块的难度系数为14484.16236122,简而言之,我们可以将difficulty视作挖掘数据区块所需时间的度量。

难度值(difficulty)的计算公式为:难度值 = 最大目标值 / 当前目标值。其中,目标值是矿工需达成的工作量证明标准,矿工挖掘的区块头部哈希值必须小于目标值,这样才能成功挖掘数据区块。

当前目标值指的是当前生成数据区块所需的头部信息哈希值参考阈值,而最大目标值为固定值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。

由于只有小于目标值的哈希值才被视为有效,否则就需要重新计算。鉴于目标值极小,使得哈希值小于目标值的概率微乎其微,可能需要尝试十亿次才能找到一个符合条件的哈希值,这正是挖矿速度缓慢的根本原因。

Nonce 的作用与动态调节机制

前面提到,当前区块的哈希值由唯一的区块头决定。若要对同一区块反复计算哈希值,则意味着区块头必须不断变化,否则无法得出不同的哈希值。区块头内的所有特征值均固定不变,为了令区块头发生变化,中本聪引入了一个随机变量——Nonce。

Nonce 是一个随机数字,矿工的任务便是猜测出适合的Nonce值,使得区块头的哈希值小于目标值,从而能够加入区块链。Nonce 非常难以预测,当前只能通过穷举法逐一尝试。根据协议,Nonce 是一个32位的二进制数值,上限可达约21.47亿。例如,第 100000 个区块的 Nonce 值为274148111,这意味着矿工自零开始,经过大约2.74亿次的计算,才最终找到了一个满足条件的有效Nonce值。

矿工的运气好坏将直接影响Nonce值的发现速度。有时幸运的话,很快就能找到Nonce;而不幸的时候,即使计算完所有可能的Nonce值,也可能无法找到满足条件的值。此时,协议允许矿工修改区块内容,重启计算流程。

动态难度调节与矿工收益

挖矿带有随机性,无法确保恰好每十分钟就能产出一个新区块,有时仅需一分钟即可完成,有时甚至耗时几小时也可能颗粒无收。总的来看,随着硬件设备性能的提升以及矿机数量的增长,计算速度肯定会越来越快。

为了维持每十分钟产生一个新区块的恒定产出速率,中本聪设计了难度系数的动态调节机制。规则规定,每隔两周(即2016个区块)难度系数将会调整一次。假如在这两周内,新区块的平均生成时间为9分钟,表明实际生成速度超出了法定速度的10%,那么接下来的难度系数应上调10%;反之,如果平均生成时间为11分钟,意味着实际速度低于法定速度的10%,那么接下来的难度系数则需下调10%。

随着难度系数不断提高(目标值逐渐缩小),挖矿的难度也随之增大。然而,在去中心化的区块链系统中,是谁负责调节难度系数呢?实际上,难度系数的调整是在各个完整节点中独立且自动进行的。每当连续产生的2,016个区块中的所有节点都将自动进行难度调整。调整公式是基于过去2,016个区块的实际生成时长与期望生成时长(即两周内按照10分钟/区块的速度预期所需时长)相比较而得出的。简单地说,当网络发现区块产生速度超过10分钟时,会提高难度系数;反之,则降低难度系数。

难度调整的公式可概括为:

New Difficulty = Old Difficulty * (Actual TIMe of Last 2016 Blocks / 20160 minutes)

矿工的经济激励与收益来源

尽管挖矿充满挑战,但仍有许多人投身其中。拿比特币为例,矿工参与挖矿的原因主要有两点:

1. 确认交易离不开矿工的贡献。
2. 比特币协议规定,成功挖掘新区块的矿工将获得奖励。最初(2008年)为50枚比特币,此后每四年减半,截至2018年,挖矿奖励为12.5枚比特币。这也是比特币供应量递增的方式,新发行的比特币由此产生。

显而易见,随着时间推移,每四年奖励减半,直至2140年,矿工将不再获得新的区块奖励,比特币总量也将不再增加。那时,矿工的主要收入来源将转为交易手续费。

交易手续费指矿工可以从每笔交易中提取一定比例作为收入,具体金额由支付方自愿决定。当然,用户也可以选择不支付任何手续费,但这样一来,他们的交易可能无法及时处理,长时间无法被写入区块链并获得确认。矿工通常会选择优先处理手续费较高的交易。

目前,随着交易数量激增,手续费水涨船高,单个区块内包含2000多笔交易的总手续费已能达到3-10枚比特币。如若手续费给得不够高,交易可能一周都无法获得确认。

目前,新区块的奖励加上手续费,矿工的收益相当丰厚。按照当前市场价格计算,每挖掘出一个区块可获得约75万元人民币的收入。可见,挖矿的巨大收益诱惑使得人们对这项活动趋之若鹜。

举报
关注公众号“多特资源号”
内容来源于网络,不代表本站观点,侵删
热搜资讯