主页 > 挖矿 > 01.的本质区块链是什么?特别之处的最大是怎么回事?

01.的本质区块链是什么?特别之处的最大是怎么回事?

佚名 挖矿 2021年12月01日

区块链(blockchain)是眼下的热门话题,新闻媒体纷纷报道,声称它将创造未来。但是,很少有易于理解的介绍性文章。关于什么是区块链以及什么是特别的,很少有解释。

01.区块链的本质

什么是区块链?总之,它是一个特殊的分布式数据库。

首先,区块链的主要功能是存储信息。任何需要保存的信息都可以写入或读取区块链,因此它是一个数据库。

其次,任何人都可以搭建服务器,加入区块链网络,成为节点。在区块链的世界里,没有中心节点,每个节点都是平等的,存储的是整个数据库。您可以向任何节点写入/读取数据,因为所有节点最终都会同步以确保区块链的一致性。

02.区块链最大的特点

分布式数据库并不是一项新发明,此类产品早已上市。然而,区块链具有革命性的特点。

区块链没有管理员,它是完全去中心化的。其他数据库有管理员,但区块链没有。如果有人想在区块链上添加审计,是无法实现的,因为它的设计目标是防止出现一个中央权威。

正是因为无法管理,区块链无法被控制。否则,一旦大公司、大集团控制了管理权,就控制了整个平台,其他用户就得听从了。

但是,没有管理员,每个人都可以向其中写入数据。我们如何确保数据可信?被坏人改变了怎么办?请继续阅读,这就是区块链的魔力。

03. 块

区块链是由区块组成的。块与数据库记录非常相似。每次写入数据时,都会创建一个块。

为什么能挖矿_r9 370能挖矿吗_小米路由器能挖矿吗

每个块包含两个部分。

Head:记录当前区块的元信息

正文:实际数据

区块头包含当前区块的多个元信息。

构建时间

实际数据的哈希(即块体)

前一个区块的哈希值

...

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

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

小米路由器能挖矿吗_为什么能挖矿_r9 370能挖矿吗

比如字符串123的Hash为(十六进制):8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0,转换成二进制是256位,只有123才能得到这个Hash。

因此为什么能挖矿,有两个重要的推论。

推论1:每个区块的Hash不同,可以通过Hash来识别区块。

推论2:如果一个区块的内容发生变化,它的Hash肯定会发生变化。

04.Hash 不可修改

区块和哈希值是一一对应的,每个区块的哈希值都是为“区块头”(Head)计算的。

哈希 = SHA256(区块头)

以上是区块Hash的计算公式。哈希由区块头唯一确定,SHA256是区块链的哈希算法。

如前所述,区块头包含很多内容,包括当前区块体的Hash(注意“区块体”的Hash,而不是整个区块),以及前一个区块的Hash。这意味着如果当前区块的内容发生变化,或者前一个区块的Hash发生变化,肯定会导致当前区块的Hash发生变化。

这对区块链来说意义重大。如果有人修改了一个区块,该区块的哈希值就会改变。为了让后续区块能够连接到它,此人必须同时修改所有后续区块,否则更改后的区块将离开区块链。由于后面会提到的原因,Hash的计算是耗时的,同时修改多个区块几乎是不可能的,除非有人掌握了全网51%以上的算力。

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

r9 370能挖矿吗_为什么能挖矿_小米路由器能挖矿吗

每个区块都与前一个区块相连,这就是“区块链”名称的由来。

05.挖矿

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

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

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

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

06. 难度系数

看完本文,你可能会有疑问。人们都说挖矿难为什么能挖矿,但是挖矿不就是用电脑算哈希吗?这就是电脑的优势。怎么会变得困难呢??

原来不是任何Hash都可以使用,只有满足条件的Hash才会被区块链接受。这个条件特别苛刻,以至于大部分hash都不符合要求,必须重新计算。

原来区块头包含一个难度系数,它决定了计算Hash的难度。例如,第 100,000 个区块的难度系数为 14484.16236122。

r9 370能挖矿吗_为什么能挖矿_小米路由器能挖矿吗

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

Hash 的有效性与目标值密切相关。只有小于目标值的Hash才有效。否则,Hash 无效,必须重新计算。由于目标值非常小,Hash 小于这个值的可能性非常小。它可能被计算了 10 亿次才算为 1。这就是挖矿这么慢的根本原因。

区块头中还有一个Nonce值,记录了hash重新计算的次数。第100,000个区块的Nonce值为274148111,即计算2.740亿次获得有效Hash,即可将该区块加入区块链。

07.难度系数动态调整

即使挖矿很困难,也不能保证在十分钟内出块。有时会在一分钟内计算出来,有时可能在几个小时内没有结果。总体来说,随着硬件设备的提升和矿机数量的增加,计算速度肯定会越来越快。

为了让输出速率保持在十分钟不变,中本聪还设计了难度系数的动态调整机制。他规定难度系数每两周调整一次(2016个区块)。如果这两周的平均出块速度为9分钟,则表示比法定速度快10%,所以难度系数必须提高10%;如果平均生成速度为 11 分钟,则表示它比法定速度更快。速度慢了10%,所以难度也要降低10%。

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

08.区块链分叉

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

为什么能挖矿_r9 370能挖矿吗_小米路由器能挖矿吗

当前规则是新节点总是使用最长的区块链。如果区块链出现分叉,它会查看分叉后面是哪个分支,先到达6个新区块(称为“六确认”)。按照10分钟一个区块的计算,一小时就可以确认。

由于新区块的生成速度是由算力决定的,这条规则意味着算力最大的分支是真实的比特链。

09.摘要

区块链作为无人值守的分布式数据库,从2009年至今已经运行了8年,没有出现重大问题。这证明它是可行的。

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

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

1.没有所有成员信任的管理权限

2. 写入的数据不需要实时使用

3.挖矿的收益可以弥补自己的成本

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

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

广告位
标签: 区块链   科技新闻