摘要
作为区块链核心技术的共识算法,为区块链的去中心化、开放自治、信息不可篡改、匿名溯源等功能的实现提供了机制支撑和保障,实现了分布式系统中强一致性和最终一致性的高效达成。以比特币出现为时间节点,将共识算法分为之前的经典分布式共识算法和之后的区块链共识算法,在此基础上根据算法的实现原理对共识算法又进一步分类,并选择其中的典型算法,重点从去中心化、可扩展性、安全性、一致性等方面进行了讨论。首先,提出了区块链共识算法的一般模型,给出了共识算法的基本定义。其次,在介绍经典分布式共识算法特点的同时,研究了两军问题、拜占庭将军问题、FLP不可能性定理、CAP定理和Paxos等分布式一致性算法及其改进,分析了算法的执行流程和功能特征。再次,对于区块链共识算法,根据实现原理和应用场景的不同,将其分为PoW共识算法、PoS共识算法、PoW+PoS混合共识算法和PoW/PoS+BFT/PBFT混合共识算法,在每一类中选择了具有代表性的算法后分别给出了算法流程,并结合具体应用场景进行了深入分析。最后,指出了区块链共识算法在性能与可扩展性、激励机制、安全与隐私、并行处理等方面的研究热点和发展方向。
关键词: 区块链; 共识算法; 分布式系统; 拜占庭容错
共识是一个选择或意见集中与统一的问题,