区块链共识算法比较
2018-10-15 本文已影响28人
vdes
区块链共识算法可以根据其容错类型、部署方式和一致性程度等多个维度加以分类。例如,根据容错类型,可以将区块链共识算法分为拜占庭容错和非拜占庭容错两类;根据部署方式,可以将区块链共识算法分为公有链共识、联盟链共识和私有链共识三类;根据一致性程度,还可以将区块链共识算法分为强一致性共识和弱(最终)一致性共识等。
按照共识过程的选主策略的新分类方法,其优点在于便于刻画共识算法的核心机理。具体来说,可根据选主策略(即函数 f 的具体实现方式)将区块链共识算法分为选举类、证明类、随机类、联盟类和混合类共五种类型:
(1)选举类共识:即矿工节点在每一轮共识过程中通过“投票选举”的方式选出当前轮次的记账节点,首先获得半数以上选票的矿工节点将会获得记账权;多见于传统分布式一致性算法,例如 Paxos 和 Raft等。
(2)证明类共识:也可称为“Proof of X”类共识,即矿工节点在每一轮共识过程中必须证明自己具有某种特定的能力,证明方式通常是竞争性地完成某项难以解决但易于验证的任务,在竞争中胜出的矿工节点将获得记账权;例如 PoW 和 PoS 等共识算法是基于矿工的算力或者权益来完成随机数搜索任务,以此竞争记账权。
(3)随机类共识:即矿工节点根据某种随机方式直接确定每一轮的记账节点,例如Algorand 和 PoET 共识算法等。
(4)联盟类共识:即矿工节点基于某种特定方式首先选举出一组代表节点,而后由代表节点以轮流或者选举的方式依次取得记账权. 这是一种以“代议制”为特点的共识算法, 例如 DPoS 等。
(5)混合类共识:即矿工节点采取多种共识算法的混合体来选择记账节点,例如 PoW+PoS 混合共识、DPoS+BFT 共识等。
image.png