主页 > 区块链 > 区块链的本质区块链是什么?懂的区块链教程!

区块链的本质区块链是什么?懂的区块链教程!

佚名 区块链 2021年12月24日

Blockchain(区块链)现在很火,新闻媒体报道了很多,声称它将创造未来。

但是,很少有易于理解的介绍性文章。关于什么是区块链以及什么是特别的,很少有解释。

接下来,我将尝试编写一个最容易理解的区块链教程。毕竟这不是什么难事,核心概念很简单,几句话就能说清楚。希望读完这篇文章,你不仅能了解区块链,还能明白什么是挖矿,为什么挖矿越来越难。

应该指出的是,我不是这方面的专家。虽然很早就关注了,但在今年年初开始仔细了解区块链。欢迎您更正文章中的任何错误和不准确之处。

一、区块链的本质

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

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

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

二、区块链最大的特点

分布式数据库并不是什么新发明,市场上早就有这样的产品。然而,区块链具有革命性的特点。

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

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

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

三、阻止

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

每个块包含两个部分。

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

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

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

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

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

四、 不可修改的哈希

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

如前所述加拿大28群吧,区块头包含很多内容,包括当前区块体的Hash和前一个区块的Hash。这意味着如果当前区块的内容发生变化,或者前一个区块的Hash发生变化,肯定会导致当前区块的Hash发生变化。

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

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

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

五、挖矿

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

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

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

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

六、难度系数

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

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

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

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

Hash 的有效性与目标值密切相关。只有小于目标值的Hash才有效,否则Hash无效,必须重新计算。由于目标值很小,所以Hash小于这个值的可能性极小,可能要计算10亿次才算为1。这就是挖矿速度如此缓慢的根本原因。

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

七、难度系数动态调整

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

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

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

八、区块链的分叉

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

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

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

九、总结

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

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

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

没有由所有成员信任的管理权限写入的数据。它不需要实时使用挖矿收益来弥补自己的成本。

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

目前区块链最大的应用场景(也可能是唯一的应用场景)是以比特币为代表的加密货币。在下一篇文章中,我将介绍比特币的入门知识。

十、参考链接

(结束)

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