区块链共识算法对比
● [1]陆歌皓,谢莉红,李析禹.区块链共识算法对比研究[J].计算机科学,2020,47(S1):332-339.
拜占庭将军问题与共识
拜占庭将军问题
若分布式系统中存在恶意的计算机节点,这些节点会选择性响应某些请求或篡改系统中的数据,在不可靠的信道上,系统中所有非恶意的节点如何通过消息传递的方式达成共识?
拜占庭错误节点
选择性只响应某些节点请求、对系统中数据做出伪造或篡改等破坏性行为的计算机节点
非拜占庭错误节点
发生宕机、网络异常导致消息延时、丢失或重复等现象的计算机节点称为非拜占庭错误(CrashFault)节点
CFT类共识算法
只能保证分布式系统中节点发生宕机等非拜占庭错误时的整个分布式系统的可靠性,而当系统中节点做出篡改数据等会违背共识原则的行为时,算法无法保障可靠性
只要应用于企业内部等封闭式环境
Paxos算法
Paxos是基于消息传递且具有高度容错特性的一致性算法,主要解决分布式系统中如何就某个特定值(Value)达成一致.Paxos算法的共识过程是Proposer提出提案(Proposal)来争取大多数Acceptor的支持,当某个Proposer提出的提案获得了超过半数的支持时,发送结案结果给所有节点进行确认.
角色
● Proposer,即提案者,负责提出一个提案(Proposal),等待结案被选定,往往是客户端担任该角色;
● Acceptor,即提案的受理者,负责对提案进行投票,往往是服务器担任该角色;
● Learner,即同步者,被告知结案结果,并与之统一,不参与投票,可能是客户端也可能是服务器担任该角色.
<