拜占庭容错算法的定义及PBFT、FBA和dBFT的区别

拜占庭容错算法是一种应对分布式系统中节点故障或恶意行为的技术,PBFT(实用拜占庭容错)、FBA(拜占庭容错协议)和dBFT(委托拜占庭容错)是几种常见的拜占庭容错算法。PBFT采用共识机制并保证安全性,但速度较慢;FBA通过选取节点子集进行共识,效率高但不保证安全性;dBFT利用节点间的代表进行共识,并具有快速、安全的特点。这些算法都旨在提高系统的容错性,确保分布式系统的稳定运行。

拜占庭容错算法是一种在分布式系统中实现故障恢复的算法,它是由拜占庭将军问题衍生出来的。拜占庭将军问题是一个经典的分布式系统问题,它描述了一群分散在不同地点的将军,需要通过信使来传递消息,从而达成一个共同的决策。然而,这些将军中可能有一些是叛徒,他们会故意发送错误或不一致的消息,以破坏其他忠诚将军的一致性。因此,拜占庭容错算法的目标是在一个存在故障或恶意节点的非信任环境中,保证系统中的大多数节点能够达成一个正确的共识。

拜占庭容错算法有多种版本,每种版本都有各自的优缺点和适用场景。本文将介绍三种比较常见和重要的拜占庭容错算法:实用拜占庭容错(PBFT),联邦拜占庭协议(FBA)和授权拜占庭容错算法(dBFT)。

实用拜占庭容错(PBFT)

实用拜占庭容错(PBFT)是一种基于投票的拜占庭容错算法,它由Miguel Castro和Barbara Liskov在1999年提出,是第一个在实际系统中可行的拜占庭容错算法。PBFT可以在失效节点不超过总节点数1/3的情况下保证消息传递的正确可靠。PBFT主要用于私有链或许可链,因为它需要预先确定参与共识的节点集合,也就是说,节点的身份是事先知道的。PBFT的优点是高交易通量和吞吐量,但缺点是通信开销大,扩展性差。

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。所有的副本在一个被称为视图的轮换过程中运作。在某个视图中,一个副本作为主节点(leader),其它的副本节点作为备份节点(backup)。主节点通过随机算法选出,用来负责与提案的客户端通信。

PBFT共识过程可以分为四个阶段:预准备(pre-prepare),准备(prepare),提交(commit)和回复(reply)。具体流程如下:

  • 客户端向主节点发送请求消息。
  • 主节点给请求消息编号,并向所有副本节点广播预准备消息。
  • 每个副本节点收到预准备消息后,检查消息是否有效,并向所有副本节点广播准备消息。
  • 每个副本节点收到2f+1个有效的准备消息后(包括自己发送的),进入准备状态,并向所有副本节点广播提交消息。
  • 每个副本节点收到2f+1个有效的提交消息后(包括自己发送的),进入提交状态,并执行请求操作,并向客户端发送回复消息。
  • 客户端收到f+1个相同的回复消息后,认为请求已经完成,并返回结果。

其中f表示最大可能存在的失效或恶意节点数。通过这样一个四阶段过程,PBFT可以保证只要有超过2/3的正常节点达成一致,就可以抵抗少于1/3的失效或恶意节点的影响。

PBFT的一个典型应用是Hyperledger Fabric,它是一个开源的企业级区块链平台,支持智能合约和多种共识算法。Hyperledger Fabric在0.6版本中使用了PBFT作为默认的共识算法,后来在1.0版本中改用了更灵活的可插拔的共识框架,但仍然保留了PBFT作为一种可选的共识算法。

联邦拜占庭协议(FBA)

联邦拜占庭协议(FBA)是一种基于拜占庭协议(BA)的拜占庭容错算法,它由David Mazieres在2015年提出,是一种适用于开放式的分布式系统的共识算法。FBA不需要预先确定参与共识的节点集合,而是允许每个节点自由选择信任哪些节点,并根据信任关系形成局部子集。FBA可以在失效或恶意节点不超过总节点数1/3的情况下保证消息传递的正确可靠。FBA的优点是去中心化程度高,网络扩展性好,但缺点是安全性和活性依赖于信任图的结构。

FBA中的每个节点都有一个唯一的标识符和一个公钥,用来验证消息的签名。每个节点都有一个自己选择信任的节点集合,称为准同意集(quorum slice)。一个准同意集表示该节点认为必须达成一致的最小节点集合。一个准同意集可以包含任意数量和任意类型的节点,甚至包括自己。一个准同意集不一定是固定的,可以随着时间和情况而变化。一个准同意集也不一定是对称的,即A信任B不一定意味着B信任A。

FBA中所有节点的准同意集构成了一个信任图(trust graph),信任图反映了整个网络中节点之间的信任关系。信任图中存在一个特殊的子图,称为联邦(federation),它满足以下两个条件:

  • 重叠性:对于联邦中的任意两个节点A和B,存在一个联邦中的节点C,使得C属于A和B的准同意集。
  • 安全性:对于联邦中的任意两个节点A和B,不存在一个非联邦中的节点C,使得C属于A和B的准同意集。

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

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

  • 提名阶段:每个节点可以提出一个或多个候选值,并将其广播给自己的准同意集。每个收到候选值的节点都会将其转发给自己的准同意集,直到整个网络都收到了所有候选值。每个节点会根据某种规则选择一个候选值作为自己提名的值,并将其广播给自己的准同意集。如果一个节点收到了足够多(至少f+1)相同提名值,并且该值也属于自己提名过或收到过的候选值,则该值被认为是可接受的值(accepted value),并进入下一个阶段。
  • 投票阶段:每个节点会根据自己的可接受值,生成一个投票消息,并将其广播给自己的准同意集。每个收到投票消息的节点都会将其转发给自己的准同意集,直到整个网络都收到了所有投票消息。每个节点会根据某种规则选择一个投票值作为自己确认的值,并将其广播给自己的准同意集。如果一个节点收到了足够多(至少2f+1)相同确认值,并且该值也属于自己确认过或收到过的投票值,则该值被认为是批准的值(confirmed value),并进入下一个阶段。
  • 最终阶段:每个节点会根据自己的批准值,生成一个最终消息,并将其广播给自己的准同意集。每个收到最终消息的节点都会将其转发给自己的准同意集,直到整个网络都收到了所有最终消息。如果一个节点收到了足够多(至少2f+1)相同最终值,并且该值也属于自己最终过或收到过的批准值,则该值被认为是共识的值(consensus value),并结束共识过程。

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

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

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

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

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

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

  • 预备阶段:主节点从交易池中选择一批交易,并打包成新区块,并向其他代表节点广播区块消息。每个收到区块消息的代表节点都会检查区块是否有效,并向其他代表节点广播签名消息。如果一个代表节点收到了超过2/3的有效的签名消息,则进入下一个阶段。
  • 提交阶段:主节点收集所有的签名消息,并将其附加到新区块上,并向其他代表节点广播最终区块消息。每个收到最终区块消息的代表节点都会验证区块和签名是否有效,并将区块添加到自己的区块链上,并向网络中的普通节点广播区块。普通节点收到区块后,也会验证区块和签名是否有效,并将区块添加到自己的区块链上。

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

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

总结

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

以上就是什么是拜占庭容错算法?PBFT、FBA和dBFT有什么区别?的详细内容,更多关于详解拜占庭容错算法的资料请关注码农之家其它相关文章!

相关文章

  • Utopia加入Base链,加速Coinbase钱包内的链上支付!

    Utopia Labs团队现已加入Base链,目的是加速Coinbase钱包的链上支付功能。他们专注于创建针对DAO的支付解决方案,使用稳定币提高跨境支付效率。这一合作希望通过自动化支付管理和透明化的交易处理,为全球用户提供便捷的支付体验。探索Utopia与Coinbase结合如何助力实现加密支付的重大变革。

    2024年11月17日
    578
  • 比特币是什么意思?

    最近听到有很多朋友们在炒虚拟货币哦,说到虚拟货币的时候,大家最先想到的应该就是比特币了,据说这个比特币可是币王哦,为了解开大家的好奇心,小编这就给你们普及一下比特币是什么意思?比特币可以转入银行账户吗?一起来看看吧

    2023年10月30日
    1821
  • 欧意OKXWeb3钱包使用步骤

    这篇文章主要介绍了欧易OKXWeb3钱包使用教程的相关资料,需要的朋友可以参考下本文详细内容介绍

    2023年01月07日
    349
  • 区块链Layer2是什么意思?区块链Layer2如何运行?

    区块链技术的发展引发了一系列的创新和变革,其中Layer2技术成为了一个备受关注的领域。Layer2币种的出现,则是这一技术进一步延伸和发展的产物。本文将带领读者深入了解什么是Layer2币种,其特点和意义,以及其在区块链世界中的应用和前景。让我们开始这段精彩的探索之旅吧!

    2023年09月16日
    1469
  • 特朗普将240万美元的加密资产从以太坊钱包转到Coinbase

    据Arkham Intelligence于12月27日的报道,被认为属于前美国总统唐纳德·特朗普的以太坊钱包最近将通过销售非同质化代币(NFT)赚取的数百万美元的加密资产转移到 Coinbase

    2024年01月05日
    1860
  • 哪些交易所可以买到KDA币?详细盘点KDA币上线交易平台

    KDA币(Kadena)是一个由公共区块链、许可网络和Pact智能合约语言组成的混合区块链平台,在区块链行业中具有较高的技术水平,并已获得大量融资,许多投资者对KDA币感兴趣,但不确定在哪些交易所可以购买,本文将详细盘点目前支持KDA币交易的五家主要交易所,帮助大家更好地了解和选择合适的平台进行交易。

    2024年10月15日
    1895
  • BTG(比特黄金)币种介绍 BTG行情分析

    比特黄金(BTG)是一种基于比特币的加密货币,它在2017年诞生于比特币分叉的过程中。BTG采用了一种名为Equihash的挖矿算法,旨在在矿工之间实现更加公平的竞争,并保护用户的交易隐私。在本文中,我们将介绍比特黄金的特点和功能,提供BTG的行情分析,以及探讨BTG在加密货币市场中的发展前景。无论您是初学者还是经验丰富的投资者,我们相信这篇文章将为您提供有关BTG币种的全面信息。

    2023年12月12日
    293
  • API3币发行量多少?

    API3币这一项目都是由DAO来治理的,通过DAO治理的项目会完全的去中心化和开放,这也就是说,所有权益持有人都能够直接参与项目的治理,很多投资者还不知道API3币发行量多少?下面就让小编为大家带来API3币总量介绍,

    2023年11月15日
    965
  • 区块链投资的交易方式有几种

    想要了解更多关于区块链币种的信息吗?本文将详细介绍区块链币种在交易平台上的运作原理,以及投资区块链币种的风险和机会。我们还将涵盖区块链技术的基本知识,帮助您更好地理解这个快速发展的领域。无论您是初学者还是专业投资者,本文都将为您提供有用的见解和实用的信息。

    2023年08月13日
    663
  • 矿机寿命能达多长时间?如何提升矿机使用寿命?

    参与矿业是进入区块链产业并享受产业红利的重要途径之一,与货币投机相比,矿业更稳定,更适合大型机构和大型基金进入布局,那么,矿机一般寿命多久正常?如何延长矿机寿命?下面将为大家详细介绍

    2024年01月15日
    1762

评论列表

联系我们

在线咨询: QQ交谈

邮件:3522365#qq.com

工作时间:周一至周五,9:30-18:30,节假日休息