主页 > imtoken添加币种选哪个 > 区块链挖矿的本质是什么

区块链挖矿的本质是什么

imtoken添加币种选哪个 2023-03-11 05:30:32

区块头包含了当前区块的多个特征值。

在这里,你需要了解什么是哈希,这是了解区块链所必需的。

所谓“哈希”,是指计算机可以为任何内容计算出一个相同长度的特征值。区块链的哈希长度是 256 位,这意味着无论原始内容是什么,最终都会计算出一个 256 位的二进制数。并且可以保证,只要原始内容不同,对应的hash就一定不同。

比如字符串123的hash是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制),二进制是256位,只有123才能得到这个hash。 (理论上其他字符串有可能得到这个hash,但是概率太低,可以近似为不可能。)

因此,有两个重要的推论。

四、哈希的不变性

区块和哈希是一一对应的,每个区块的哈希都是为“区块头”(Head)计算的。也就是说,将块头的特征值连接在一起,以形成一个很长的字符串,然后计算该字符串的hash。

哈希 = SHA256(区块头)

区块链挖矿到底能带来什么收益

以上是区块哈希的计算公式,SHA256是区块链的哈希算法。注意这个公式只包含块头,不包含块体,也就是说哈希是由块头唯一确定的,

如前所述,区块头包含很多内容,包括当前区块体的哈希,以及前一个区块的哈希。这意味着如果当前块体的内容发生变化,或者前一个块的hash发生变化,肯定会导致当前块的hash发生变化。

这对区块链有重大影响。如果有人修改了一个区块,该区块的哈希值就会改变。为了让后续的区块仍然连接到它(因为下一个区块包含前一个区块的哈希),该人必须依次修改所有后续区块,否则更改的区块将从区块链中删除。由于后文提到的原因,hash的计算是耗时的,短时间内修改多个区块几乎是不可能的区块链挖矿到底能带来什么收益,除非有人掌握了全网51%以上的算力。

区块链正是通过这种联动机制保证了自身的可靠性。数据一旦写入,就不能被篡改。就像历史一样,发生的事情就是发生的事情,从此无法改变。

每个区块都连接到前一个区块区块链挖矿到底能带来什么收益,这就是“区块链”名称的由来。

五、挖矿

因为必须保证节点之间的同步,所以不能太快添加新块。想象一下,你刚刚同步了一个块,准备根据它生成下一个块,但是此时另一个节点生成了一个新块,你不得不放弃一半的计算,重新同步。因为在每个区块之后,只能跟随一个区块,并且只能在最新区块之后生成下一个区块。因此,您别无选择,只能在听到信号后立即同步。

区块链挖矿到底能带来什么收益

所以,区块链的发明者中本聪(本为化名,真实身份未知)故意让新增区块变得困难。他的设计是,平均每 10 分钟,整个网络可以产生一个新的区块,每小时 6 个。

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

这个过程被称为挖矿,因为计算一个有效哈希的难度就像在世界的沙子中找到一粒满足条件的沙子。计算哈希的机器称为矿工,操作矿工的人称为矿工。

六、难度系数

读到这里,你可能会有一个疑问,人家说挖矿难,但挖矿不只是用电脑算个hash,这就是电脑的强项,怎么会变难,不可以计算了很久?

事实证明,不能使用任何哈希,只有满足条件的哈希才会被区块链接受。这个条件特别苛刻,以至于大部分hash都不满足要求,必须重新计算。

原来区块头包含一个难度系数(difficulty),它决定了计算hash的难度。例如,第 100000 个区块的难度系数为 14484.16236122。

区块链挖矿到底能带来什么收益

区块链协议规定目标值(target)可以用一个常数除以难度系数得到。显然,难度系数越高,目标值越小。

哈希的有效性与目标值密切相关,只有小于目标值的哈希才有效,否则哈希无效,必须重新计算。由于目标值非常小,hash小于这个值的几率非常小,可能要计算10亿次才算一次命中。这就是挖矿速度如此缓慢的根本原因。

如前所述,当前区块的哈希是由区块头唯一确定的。如果要对同一个区块重复计算哈希,就意味着区块头必须不断变化,否则不可能计算出不同的哈希。块头中的所有特征值都是固定的。为了让区块头发生变化,中本聪特意添加了一个名为 Nonce 的随机项。

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

如果你幸运的话,你可能会在一段时间内找到 Nonce。如果运气不好,可能算了 21.47 亿次都没有找到 Nonce,也就是当前块体不可能计算出满足条件的哈希。此时,协议允许矿工更改块体并开始新的计算。

七、难度系数动态调整

区块链挖矿到底能带来什么收益

如上一节所述,挖矿是随机的,并不能保证恰好十分钟就会出块。分钟数,有时小时可能不起作用。总的来说,随着硬件设备的提高和矿机数量的增长,计算速度肯定会越来越快。

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

难度系数越高(目标值越低)越难挖掘。

八、区块链的分叉

即使区块链是可靠的,但仍有一个问题没有解决:如果两个人同时向区块链写入数据,也就是同时添加了两个区块,因为它们是都连接到前一个区块,形成一个分叉。此时应该采用哪个区块?

目前的规则是新节点总是使用最长的链。如果区块链中有分叉,它会查看分叉后面是哪个分叉,并首先到达 6 个新区块(称为“六次确认”)。按10分钟的区块计算,1小时即可确认。

区块链挖矿到底能带来什么收益

由于新区块的生成速度是由算力决定的,所以这条规则意味着算力最大的分支就是真正的一条区块链。

九、总结

区块链作为非托管分布式数据库,自 2009 年以来已经运行了 8 年,没有出现重大问题。这证明它有效。

但是,为了保证数据的可靠性,区块链也有自己的价格。一是效率,数据写入区块链,至少要等十分钟。所有节点同步数据需要更多时间;另一个是能源消耗,出块需要矿工进行无数次无意义的计算,非常消耗能源。

因此,区块链的适用场景其实是非常有限的。

没有被所有成员信任的管理权限写入数据。不要求实时使用挖矿收益可以支付自己的成本

如果以上条件都不能满足,那么传统的A数据库是更好的解决方案。

目前区块链最大的应用场景(可能是唯一的应用场景)是以比特币为代表的加密货币。