什么是拜占庭容错算法?PBFT、FBA和dBFT有什么区别?

时间:2024-10-12  分类:电子
  • 安全性:对于联邦中的任意两个节点A和B,不存在一个非联邦中的节点C,使得C属于A和B的准同意集。

  • 联邦是FBA中达成共识所需要的最小条件,它保证了联邦内部的一致性和对外部的隔离性。联邦中可能存在多个不相交或部分相交的子联邦,每个子联邦都可以独立地达成共识。


    FBA共识过程可以分为两个阶段:提名(nomination)和投票(balloting)。具体流程如下:



    通过这样一个三阶段过程,FBA可以保证只要有超过2/3的正常节点达成一致,就可以抵抗少于1/3的失效或恶意节点的影响。


    FBA的一个典型应用是Stellar,它是一个开源的分布式支付网络,支持多种货币和资产的转账和交换。Stellar在2015年改用了FBA作为其共识算法,称为Stellar共识协议(SCP)。SCP允许每个节点自由选择信任哪些节点,并根据信任关系形成联邦。SCP可以在网络中快速达成共识,同时保证安全性和去中心化性。


    授权拜占庭容错算法(dBFT)


    授权拜占庭容错算法(dBFT)是一种基于委托权益证明(DPoS)的拜占庭容错算法,它由ErikZhang在2016年提出,是一种适用于公有链或混合链的共识算法。dBFT不需要所有节点都参与共识,而是由网络中持有代币的用户通过投票选出一定数量(通常为21个)的代表节点(delegate),代表节点负责验证交易和生成区块。dBFT可以在失效或恶意节点不超过总代表节点数1/3的情况下保证消息传递的正确可靠。dBFT的优点是低延迟,高吞吐量,节能环保,但缺点是中心化程度较高,代表节点可能存在垄断或勾结。


    dBFT中每个代表节点都有一个唯一的标识符和一个公钥,用来验证消息的签名。每个代表节点都有一个角色:主节点(speaker)或者委员会成员(committeemember)。主节点负责提出新区块,并向其他代表节点广播区块消息。委员会成员负责验证新区块,并向其他代表节点广播签名消息。主节点和委员会成员在每个区块周期中轮换。


    dBFT共识过程可以分为两个阶段:预备(prepare)和提交(commit)。具体流程如下:



    通过这样一个两阶段过程,dBFT可以保证只要有超过2/3的正常代表节点达成一致,就可以抵抗少于1/3的失效或恶意代表节点的影响。


    dBFT的一个典型应用是NEO,它是一个开源的智能经济平台,支持智能合约和多种资产的发行和管理。NEO在2016年采用了dBFT作为其共识算法,称为NEO共识协议(NCP)。NCP允许网络中持有NEO代币的用户通过投票选出21个共识节点,共识节点负责验证交易和生成区块。NCP可以在网络中快速达成共识,同时保证安全性和效率。


    总结


    拜占庭容错算法是一种在分布式系统中实现故障恢复的算法,它可以在存在失效或恶意节点的情况下保证系统中的大多数节点能够达成一个正确的共识。拜占庭容错算法有多种版本,每种版本都有各自的优缺点和适用场景。本文介绍了三种比较常见和重要的拜占庭容错算法:实用拜占庭容错(PBFT),联邦拜占庭协议(FBA)和授权拜占庭容错算法(dBFT)。这三种算法分别适用于私有链或许可链,开放式的分布式系统和公有链或混合链。它们都可以在失效或恶意节点不超过总节点数1/3的情况下保证消息传递的正确可靠,但也有不同的性能,扩展性,去中心化程度等方面的差异。拜占庭容错算法是分布式系统和区块链技术中的一个重要研究领域,未来还有很多值得探索和改进的空间。



    -->> 2/2 文章结束,返回第一页

    以上就是什么是拜占庭容错算法?PBFT、FBA和dBFT有什么区别?的全部内容,望能这篇什么是拜占庭容错算法?PBFT、FBA和dBFT有什么区别?可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。