作者: 枯叶子
编辑: Felton
来源:云栖社区
微信公众号ID|Combchain
咱们在之前的很多篇文章里简单地提起了“共识算法”以及“共识攻击”,大家应该对于我们之前提到的“共识攻击”印象还比较深刻吧,对的,就是我们所说的这和公司占有股份一个道理,当你占有整个公司“51%”的股份时,那就是控股了,岂不是可以为所欲为了呢?在区块链技术这也一样,咱们都知道区块链记账以后是不可以篡改的,就算是合理交易写错地址了也不行!but!当你能说服整个区块链上51%的结点同意你的请求时就能够修改记账信息,当这一方法用到不好的方面,那就是“共识攻击”了。而“共识攻击”就是的原理还是“共识算法”,那么这篇文章就带大家走进共识算法咯!
本文是【区块链之技术进阶】的第七篇文章,这篇文章将为大家介绍传统分布式一致性算法和区块链共识模型,以及一些有关两者关系的观点,并且将介绍一些常见的区块链共识模型,读完本文相信大家会对于传统分布式一致性算法和区块链共识过程的异同、关系以及区块链技术的共识算法有一个更加深刻的理解。
本文技术要点:
本文转载自 blockchaindev.org 作者: chenhao 相同点: Append only 强调序列化 少数服从多数原则 分离覆盖的问题:即长链覆盖短链区块,多节点覆盖少数节点日志 不同点: 传统分布式一致性算法大多不考虑拜占庭容错(Byzanetine Paxos除外),即假设所有节点只发生宕机、网络故障等非人为问题,并不考虑恶意节点篡改数据的问题; 传统分布式一致性算法是面向日志(数据库)的,即更通用的情况,而区块链共识模型面向交易的,所以严格来说,传统分布式一致性算法应该处于区块链共识模型的下面一层。 考虑上面的不同点,结合私有链和行业链的性质,我们有: 私有链:封闭生态的存储网络,所有节点都是可信任的,如某大型集团内部多数公司。 行业链:半封闭生态的交易网络,存在对等的不信任节点,如房地产行业A、B、C、D公司。 公有链:开放生态的交易网络,这层主要是为行业链和私有链提供全球交易网络。 由于私有链是封闭生态的存储网络,也就是说使用传统分布式一致性模型应该是最优的;由于联盟行业链其半封闭半开放特性,使用Delegated Proof of XXX 是最优的,可以考虑以传统一致性算法作为基础加入拜占庭容错/安全防护机制进行改进。公有链PoW应该仍然是最优的选择。一、前言
1. 传统分布式一致性算法和区块链共识过程的异同点
2. 区块链共识模型与传统一致性算法的关系
如下图所示:
二、传统分布式一致性算法介绍 本文主要