美文网首页
从零开始学区块链:分布式账本;拜占庭将军问题;共识机制

从零开始学区块链:分布式账本;拜占庭将军问题;共识机制

作者: 心声的恋人 | 来源:发表于2020-11-27 02:05 被阅读0次

    目录

    前言

    分布式账本

    拜占庭将军问题

    共识机制

    前言

    这些天,我偶尔发现水龙头app上有学习区块链的课程,看了几个视频之后,发现里面的课程很适合刚入门的小白,想着自己学习区块链相关的知识可以提高自己对区块链的认知,便打算把这个课程内容记录下来。有想了解和学习的小白们,请继续往下看吧,也衷心希望这些课程的内容能对大家有所帮助。

    01分布式账本

    分布式账本是区块链的四大核心技术之一。

    如果说密码学是区块链的基石,那么分布式账本就是区块链的骨架,

    简单来说,分布式账本就是一种数据存储的技术,是一个去中心化的分布式数据库。

    比如我们早期使用的淘宝软件,我们的信息实际都存储在阿里的一个大数据库里,信息都比较集中,一旦这个集中式的数据库发生问题就会出现宕机,就会出现无法使用等严重后果。

    后来阿里意识到数据存在着潜在的风险,于是把数据分散到多个数据库中,共同储存数据。

    哪怕其中的一个出现问题,其他的数据库也能够顶替他继续运行,保证整个淘宝网络的正常工作。

    而这种分散储存数据的技术就是分布式数据库,区块链采用的分布式账本则更加特殊。

    它同样是一种分布式的数据库,而它与阿里使用的分布式数据库的区别在于,区块链是去中心化的,阿里是中心化的。

    像阿里使用的中心化数据库,数据储存在一个大的数据库中,中心化巨头自行维护,用户没有权限进来。

    用户们要想查看历史数据,都得接入他们的中心服务器发送请求,一旦这些中心化的巨头想要用你的数据做些什么,你也无能为力。

    而分布式账本则是去中心化的数据库,由一个个数据库连接起来,形成一个大的分布式数据库。

    每个数据库权限相同,都可以查看储存所有的数据。

    就好比每个人人手一个帐本,每笔交易大家都会共同记录,过一段时间大家聚在一起对一下账本,一旦有谁篡改历史记录,立马就能被大家发现,而且这个账本的每一个人都完全开放,如果你想参与进来,只要通过区块链网络的许可,就可以成为其中的一个节点。

    分布式账本在区块链中的作用,不仅仅是使得数据具有多个备份,有效防止数据丢失,更赋予了区块链去中心化的特点,防止数据都集中在巨头手中而巨头拿你数据作恶的情况出现。

    总的来说,分布式账本就像是区块链的灵魂。

    在今天这样一个大数据时代,中心化巨头数据作恶的情况,比比皆是。

    希望区块链能像个勇士那样披荆斩棘,为现在数据乱象画上一个句号。

    02拜占庭将军问题

    我们在之前讲过,分布式账本可以说是区块链的框架。

    每个人都可以自由地参与进来,共同处理区块链中的数据。

    基于这一点,区块链实际上就是一个大的分布式计算网络。

    它并没有一个类似中央指挥室的东西来发号施令,整个网络是完全分散的,要依靠不同的结点间。

    彼此交换信息,达成共识才能统一行动,整个过程就像无领导小组讨论一样。

    对此,有人就提出了疑问,万一有节点发送了错误的信息,干扰网络正常运行或者大家产生了分歧怎么办

    于是学者们便建立了一个模型,统一将这类问题,称为拜占庭将军问题。

    拜占庭将军问题是这样的。

    拜占庭帝国想要攻打一个国家,它派出了多支军队进行围攻,但敌国军事实力也很强。

    将军们必须在同一个时间一起发动进攻,才能获取胜利。

    现在的问题在于每个将军都分散在敌国四周,只能依靠通信兵骑马相互通信,确定进攻的时间。

    可是一方面通讯兵可能会在送信过程中被敌方击杀。

    另一方面根据不可靠消息,这些将军中有叛徒的存在,可能会像其他将军传达虚假指令影响他人判断。

    如果整个分布式网络相当于拜占庭帝国,每个节点相当于里面的将军。

    那么在这种状态下,该怎么做才能保证网络中的全部节点对于某个事情达成一致?这就是拜占庭将军问题。

    总的来说,拜占庭将军问题是分布式网络必须要解决的问题。

    如同刚才描述的,不仅各个节点之间的通讯,可能由于网络故障导致延后或者中断,更可能存在恶意节点故意发送错误的信息干扰网络的运行。

    后来,又有人证明出了,“拜占庭容错”的观点,简单来说就是信息的伪造或错误观念不重要,只要诚实的将军数量大于总数的三分之二,即使有少部分不诚实的将军存在,整个系统也可以达成一致。

    于是大家以此为基础设计出了很多解决方案。

    区块链四大核心技术中的共识机制就是为了解决这个问题而诞生的一个方案。

    个人理解:拜占庭将军问题实质上是指多个节点需要保持信息一致性的问题。

    03共识机制

    分布式网络中必须要解决的一个至关重要的问题就是拜占庭将军问题,而区块链作为分布式网络中的典型代表,则采用了一系列新型的技术来解决这个问题,这个技术就叫做共识机制。简单来说共识机制就是一种规则,每个节点都必须遵守。

    它同样是区块链的四大核心技术之一,在区块链网络中主要起到了协调全节点账目保持一致的作用。

    为什么这么说?

    我们都知道区块链是去中心化的,基于分布式账本技术,每个人都可以自由地加入进来,成为其中的一个节点。

    想一想如果只是单纯如此会造成什么结果,比如,我作为一个节点加入进来,有一笔数据我是这样处理的。而另一个人是以另一种方式处理的。

    我们两个谁都说服不了谁,权限又都平等,这样整个网络就很容易发生分歧,产生混乱。

    此外在这种环境下我和其他节点相互不认识,又没有一个中心化的权威机构来做担保。

    我怎么确定其他人处理的数据没问题?

    所以说,中心化的环境下,没有一个比较中心化节点能做决策协助网络运行。

    中本聪为了解决这个问题,想了个办法。

    虽然整个网络中,没有一个中心化的节点能做决策,但是我可以设立一套规则,每个节点必须遵守规则内容要包含两点。

    第一是解决分布式账本中,每个节点怎么记账的问题

    第二是解决不同节点间如何交换信息,达成共识的问题。

    这样就能在一个没有中心化节点存在的情况下,既能让每个节点比较统一地做一件事,又能保证每个节点的小数据库之间数据一致,从而令分布式网络比较有序的去运行。

    所以,共识机制更像是一种制度,如果把区块链当成一个社会,那么共识机制就是这个世界中的法律,人人都得遵守。

    不仅解决了信任的问题,更维护着整个区块链社会的正常运行。

    下期预告

    什么是Pow共识机制?

    什么是Pos共识机制?

    什么是智能合约?

    相关文章

      网友评论

          本文标题:从零开始学区块链:分布式账本;拜占庭将军问题;共识机制

          本文链接:https://www.haomeiwen.com/subject/icutwktx.html