主页 > imtoken用什么id下载 > 区块链入门教程第 2 阶段:什么是挖矿?

区块链入门教程第 2 阶段:什么是挖矿?

imtoken用什么id下载 2023-07-12 05:13:23

火币比特币交易手续费_火币网如何交易比特币_比特币交易为什么出不完小数

矿工们已经疯狂赚钱了,有人这么说。 有人说他是高科技行业,也有人说他是庞氏骗局。

文本

火币网如何交易比特币_比特币交易为什么出不完小数_火币比特币交易手续费

01

采矿和矿工

我们在上一篇文章中说过,区块链是由很多节点组成的。 为了保证节点间的同步,每个新区块的添加速度不能太快。 想象一下,你刚刚同步了一个区块,准备根据它生成下一个区块,但是此时另一个节点生成了一个新的区块,你不得不放弃一半的计算重新同步。 因为每个块只能跟一个块,所以只能在最新块之后生成下一个块。 因此,您别无选择,只能在听到信号后立即同步。

火币网如何交易比特币_火币比特币交易手续费_比特币交易为什么出不完小数

因此,区块链的发明者中本聪(此为化名,真实身份未知)故意让新区块难以添加。 他的设计是,平均每10分钟,全网可以产生一个新的区块,一个小时只有六个。

这种输出速度不是通过命令来实现的,而是通过刻意设置的海量计算来实现的。 换句话说,只有通过极其大量的计算才能得到当前区块的有效哈希值,才能将新区块添加到区块链中。 由于计算量大,无法快速起来。

这个过程称为挖矿(mining),因为计算一个有效哈希的难度就像在全世界的沙子中找到一粒符合要求的沙子。 计算哈希值的机器称为矿机,操作矿机的人称为矿工。

2个

难易程度

看完这篇,你可能会有疑问。 都说挖矿难,但是用电脑算个hash算不上挖矿,计算也是电脑的强项。 怎么会变得这么难? 出不来?

原因是不是任何哈希都是可接受的,只有满足条件的哈希才会被区块链接受。 这个条件太苛刻了,大部分哈希都不符合要求,必须重新计算。

火币比特币交易手续费_火币网如何交易比特币_比特币交易为什么出不完小数

因为每个区块都包含一个难度系数(difficulty),这个值决定了计算哈希的难度。 例如,区块 100,000 的难度系数为 14484.16236122。 我们也可以将难度简单理解为:挖一个数据块需要多少时间。

同时,难度值difficulty的计算公式为:难度值=最大目标值/当前目标值

什么是目标值:目标值是当前出块所达到的目标值的哈希值,用于矿工的工作量证明。 矿工挖出的区块头哈希值必须小于目标值,才能成功挖出数据块。

当前目标值是指生成的数据块的头部信息哈希值的参考索引。 最大目标值是一个固定值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF。

因为只有小于目标值的哈希才有效,否则哈希无效,必须重新计算。 由于目标值很小,hash值小于这个值的可能性极小,可能要计算10亿次才算命中。 这就是挖矿如此缓慢的根本原因。

上一篇文章提到过,当前区块的哈希由区块头唯一确定。 如果要对同一个区块重复计算hash比特币交易为什么出不完小数,就意味着block header必须不断变化,否则不可能计算出不同的hash。 区块头中的所有特征值都是固定的。 为了让区块头发生变化,中本聪特意添加了一个名为Nonce的随机项。

Nonce 是一个随机值。 矿工的作用其实就是猜测Nonce的值,让区块头的哈希值小于目标值,从而写入区块链。 Nonce非常难猜,目前只能采用穷举法逐一试错。 根据协议,Nonce是一个32位的二进制值,最大可以达到21.47亿。 第100000个区块的Nonce值为274148111,可以理解为矿工从0开始,计算了2.74亿次才得到一个有效的Nonce值,这样计算出来的hash才满足条件。

火币比特币交易手续费_比特币交易为什么出不完小数_火币网如何交易比特币

运气好的话,过段时间说不定就能找到Nonce。 如果运气不好,可能计算了21.47亿次都没有找到Nonce,也就是当前区块体无法计算出满足条件的hash。 此时,协议允许矿工更改区块体并开始新的计算。

3个

难度系数动态调整

上一篇文章提到,挖矿是随机的,不能保证十分钟内出块。 有的时候一分钟就能算出来,有的时候可能几个小时都解决不了。 一般来说,随着硬件设备的提升,矿机数量的增加,计算速度肯定会越来越快。

为了让输出速率保持在十分钟不变,中本聪还设计了难度系数动态调整机制。 他规定难度系数每两周调整一次(2016个区块)。 如果这两周的平均出块速度为9分钟,则意味着比法定速度快了10%,那么接下来的难度系数会增加10%; 如果平均生成速度为 11 分钟,则表示这比法定速度慢 10%,因此下一个难度系数将降低 10%。

难度系数调的越来越高(目标值越来越小),使得挖矿难度越来越大。

不过,有人可能会问,区块链是去中心化的,谁来调节难度? 难度调整在每个完整节点内独立且自动发生。 所有节点每 2,016 个区块调整一次难度。 难度调整公式是通过将最近 2,016 个区块花费的时间与 20,160 分钟(两周,或者以 10 分钟的速度计算这些区块预计花费的时间)进行比较来计算的。 根据实际时间与预期时间的比率调整难度(更难或更容易)。 简单来说,如果网络发现出块速度快于 10 分钟,就会增加难度。 如果发现慢于10分钟,则降低难度。

比特币交易为什么出不完小数_火币网如何交易比特币_火币比特币交易手续费

这个公式可以概括为:

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

4个

矿工收益

既然挖矿不容易,为什么会有人想当矿工呢? 以比特币为例。

一是交易的确认离不开矿工。

二是比特币协议规定,挖出新区块的矿工将获得奖励。 一开始(2008年)是50个比特币,后来每4年减半。 目前(2018 年)是 12.5 个比特币。 这也是比特币的增发机制,流通中的新比特币就是这样诞生的。

比特币交易为什么出不完小数_火币比特币交易手续费_火币网如何交易比特币

您可能已经看到奖励每 4 年减半。 由于比特币可以分为八位小数,那么到2140年,矿工将得不到任何奖励,比特币的数量也将停止增长。 此时比特币交易为什么出不完小数,矿工的收入完全取决于交易手续费。

所谓交易手续费,就是矿工可以从每笔交易中获得佣金,具体数额由支付方自愿确定。 你可以什么都不带,不给矿工一分钱,但那样的话,你的交易将不会被处理,再写入区块链并得到确认就来不及了。 矿工总是优先考虑费用最高的交易。

目前,由于交易笔数激增,手续费水涨船高,一个区块2000笔以上交易的总手续费可达3到10个比特币。 如果你的手续费降低了,很可能一周后交易还没有确认。

一个区块的奖励是12.5个比特币,加上手续费,收益还是相当可观的。 按照现在的价格,可以达到75万人民币左右。 想想看,运气好的话,几分钟就能挖出一个区块,得到这么大的一笔钱,于是人们蜂拥而至挖矿。

5个

总结

一句话,矿工之所以存在,是因为当前的收益大于自己的成本,唯利是图是人之常情。