《区块链宝典》共识算法(一)

前言:区块链系统是一种分布式架构系统,分布式系统中,多个主机通过异步通信的方式组成网络集群,异步通信要保证每个主机达成一致的状态共识。区块链这种基于互联网的去中心化系统,需要解决的首要问题就是如何实现不同节点上数据的一致性正确性,这就需要借鉴分布式系统实现状态共识的算法
可以毫不夸张的讲,学习区块链就必须掌握共识算法

在这里插入图片描述

一、什么是共识算法?

(一)、分布式系统

  • 区块链系统本质就是一个分布式应用软件。区块链架构是一种分布式架构。其部署模式有公共链联盟链私有链三种,对应的是去中心化分布式系统部分去中心化分布式系统弱中心分布式系统

  • 分布式系统中多个主机通过异步通信方式组成网络集群。在这样的一个异步系统中,需要主机之间进行状态复制,以保证每个主机达成一致的状态共识。然而异步系统中,可能出现无法通信的故障主机,而主机的性能可能下降,网络可能拥塞,这些可能导致错误信息在系统内传播。因此需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识

  • 分布式系统必须要解决数据一致性问题。区块链系统的本质是分布式应用软件,首要问题自然是解决一致性问题,实现多个独立节点之间达成共识。分布式一致性问题分厂难以解决,难点在于:

    • 分布式系统本身可能出现故障;
    • 分布式系统之间的通信可能有故障或是显著延迟;
    • 分布式系统运行速度大不相同,快慢不一。
      -以上难点都属于非拜占庭问题,分布式系统除了节点故障外,还存在拜占庭将军问题,也就是存在恶意节点的问题。而计算机科学家对拜占庭将军问题的得出的研究结果是:FLP定理(不可能性定理)CAP定理

(二)、分布式系统的一致性问题

  • 理想的分布式系统的一致性应该满足
    • 可终止性:一致性的结果可在有限时间内完成
    • 共识性:不同节点最重完成决策的结果应该相同
    • 合法性:决策的结果必须是其他进程提出的提案
  • 对于分布式系统,希望具备以下能力
    • 分布式系统作为一个逻辑整体,不应该返回错误的结果
    • 只要系统里的大部分机器工作正常仓,整个分布式系统就能邮箱运行,这也是分布式系统应用的一个优点,抵抗单点故障
    • 系统的性能是可以横向拓展的,对于分布式系统来说,木桶原理不起作用
    • 分布式系统必须是异步的。每个节点按照自己的时序独立工作,没有全序的时间顺序
  • 在实际的计算机集群中,可能会存在以下问题:
    • 节点处理事务的能力不同,网络节点数据的吞吐量有差异
    • 节点间通讯的信道可能不安全
    • 可能会有恶意节点出现
    • 当一部处理能力达到高度一致时,系统的可拓展性就会变差(容不下新节点的加入)
  • 实现全网一致性其实只需要在某个时刻达成最终一致即可

(三)、FLP定理与CAP定理

  • FLP定理:在异步通信场景,即使只有一个进程失败,也没有任何算法能保证非失败进程达到一致性
  • CAP定理:它是告诉你,在异步通信场景中,如果有一个进程失败的话,那么还是有些非失败的进程达成一致性
  • 分布式计算系统不可能同时确保一致性可用性分区容错性,这三者不可兼得。这是一个典型的不可能三角
  • 既然不能同时满足,只有弱化对某个特性的支持
    • 弱化一致性:对于实时的强一致性不要有太高的要求
    • 弱化可用性:要提高性能,保持可靠,尽量避免加载不必要的模块,也就是牺牲可用性
    • 弱化分区容错性:对于分布式系统,分区容错是必然的。区块链系统,尤其是公有链,用各种公式算法,悠闲解决的就是保证整个系统的容错能力。

(四)、传统分布式一致性算法和区块链共识算法

  • 一致性就是指数据要完整、要同步。
  • 所谓的共识算法,主要是为了解决分布式系统中,所有节点对于数据的一致性和有效性问题儿指定的一系列规则。通过类似节点投票的方式,确保分布式系统不会因为某个节点的问题导致分布式系统的数据发生安全问题。
  • 传统分布式一致性算法和区块链共识算法相同点
    • 强调序列化
    • 少数服从多数远侧
    • 分离不该的问题:即多节点覆盖少数节点日志,倡廉覆盖短链区块。
  • 传统分布式一致性算法和区块链共识算法不同点
    • 传统分布式一致性算法大多不考虑拜占庭容错,即假设所有节点只发生宕机、网络异常等非人为因素的问题,并不会考虑恶意节点篡改数据的问题;
    • 传统分布式一致性算法是面向数据库的,儿区块链共识模型面向交易的,所以严格来说,传统分布式一致性算法应该处于区块链共识模型的下一层。
发布了23 篇原创文章 · 获赞 91 · 访问量 2621

猜你喜欢

转载自blog.csdn.net/qq_45828877/article/details/104057151