共识算法
区块链架构是一种分布 式的架构。其部署模式有公共链、联盟链、私有链三 种,对应的是去中心化分布式系统、部分去中心化分 布式系统和弱中心分布式系统。 分布式系统中,多个主机通过异步通信方式组成 网络集群。在这样的一个异步系统中,需要主机之间 进行状态复制,以保证每个主机达成一致的状态共 识。然而,异步系统中,可能出现无法通信的故障主 机,而主机的性能可能下降,网络可能拥塞,这些可 能导致错误信息在系统内传播。因此需要在默认不可 靠的异步网络中定义容错协议,以确保各主机达成安 全可靠的状态共识。 利用区块链构造基于互联网的去中心化账本,需 要解决的首要问题是如何实现不同账本节点上的账本 数据的一致性和正确性。这就需要借鉴已有的在分布 式系统中实现状态共识的算法,确定网络中选择记账 节点的机制,以及如何保障账本数据在全网中形成正 确、一致的共识。 在20世纪80年代出现的分布式系统共识算法,是 区块链共识算法的基础。我们下面从基本的拜占庭容 错技术入手,逐步介绍适合于私有链/联盟链和公共 链的共识算法。
学习资料