比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

2019-07-11 19:38 栏目:经验之谈 来源: 查看()
前言 最近,BYTOM技术团队发布了Bystack区块链BaaS平台,包括侧链共识算法BBFT(Bystack Byzantine Fault Tolerance)。在本文中,我将解释原始链条BBFT试图解决的问题,并分析BBFT与其他共识协议之间的主要差异。 BBFT是PBFT的变体,其原理与PBFT一致。如果您想了解BBFT的独创性,您必须输入PBFT上下文。在区块链由比特币主导之前很久,PBFT作为共识协议存在于世界各地。由Castro和Liskov于1999年发明,这是一个具有20年历史的经典设计。它的发明是为了解决分布式系统中的经典问题:拜占庭将军。到目前为止,PBFT仍然包含许多值得反复审查的聪明才智,并继续激励后代发明更好的协议。 PBFT基本运作流程 PBFT是一个三阶段协议,有两轮投票。每个视图都有一个特定节点作为主节点(主节点/主节点),它负责通知所有节点进入投票过程。每个节点将经历预备/准备/提交的三个阶段,并根据收到的消息决定是否投票/进入下一阶段。投票完成后,每个节点都会将消息发送给所有其他节点。 如果节点在两阶段投票后获得多数共识,则每个节点可以更新机器的状态并结束该轮次。仅在大多数节点启动时才执行查看更改。当前的领导节点没有正常执行任务时,这可以替换当前的领导节点并确保协议的正常运行。 PBFT的特点 PBFT与Sakamoto共识(区块链)具有完全不同的特征:PBFT是一种基于许可,基于领导,基于沟通,安全的共识协议。 许可:PBFT没有完全开放。这是因为PBFT需要使节点能够验证彼此的消息并准确掌握节点的数量。区块链是一个向所有人开放的非许可系统。 基于领导者:首先,决定领导者,然后领导者发送提案。最直接的好处是您不需要浪费计算资源来赢得领导节点的机会。缺点是成为领导者节点的机会是不公平的,并且仅在视口改变时缺乏加入网络的动机。区块链是选择多个工作提案最困难的区块。虽然这会导致计算资源的浪费,但成为阻止程序的概率大致是公平的,这与计算能力成正比。 基于沟通:PBFT的安全性基于三阶段投票。虽然没有必要消耗大量的计算资源作为工作证据,但是大量的通信也会导致可扩展性的瓶颈。——即使是最实用的PBFT也不可能扩展到1000多个节点。不仅如此,PBFT使用消息认证码(MAC),这要求每个节点为每轮投票验证消息。大量签名/验证是另一个潜在的瓶颈。 安全性超过生命:无论网络假设如何(同步/异步),PBFT都能确保安全性,并且几乎不可能产生分叉,因此它具有即时终结性的特征。相比之下,区块链比安全性更活跃。它的安全性取决于同步网络。拥有多个共识(和分支)是很常见的。它需要通过一定数量的块来确认。为了确保它不再分离。 PBFT问题 首先,PBFT中的每个节点需要在每轮投票中进行nn通信。假设n为1000,则每个共识需要至少100,000个通信,尽管PBFT已经是BFT族中最实用的协议。如此巨大的通信需求仍然是扩张的瓶颈。 如何提高效率? ·聚合签名 为了提高效率,直观的想法是避免n-n通信。我们可以在网络中指定一个节点作为协调器来发送/接收每个节点的投票,这样每个节点只需要向协调器发送消息,从而避免n-n通信。但是,在这种情况下,协调员有可能做坏事,因为协调员可以在实际接收指定数量的消息之前执行下一轮投票或状态更新。

因此,我们可以使用阈值签名来确保协调器的正确行为。阈值的签名可以保证超过阈值数量(t-of-n)的签名有效。换句话说,我们可以指定只有当协调员收集2f + 1个阈值时,协调员才能继续通过合法签名推进共识。 Harmony FBFT是一种BFT家族协议,它使用聚合签名来提高效率。

比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

·管道设计 每个内容必须经过两轮投票/三个阶段达成共识,如果有m个内容,则需要进行2米投票。流水线操作可以减少投票数量。基本思想如下:让每个节点在第i轮的准备阶段以及其先前内容i-1的提交阶段进行投票。通过这样做,您可以在重复相同内容时节省冗余,并大大提高效率。这个想法最早出现在2018年发布的HotStuff协议中。

比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

·只让一些节点参与共识:最小生成树 提高效率的另一种方法是避免让所有节点都参与共识,这正是原始链BBFT所采用的。在BBFT中,有三种类型的节点:共识节点/网关节点/领导节点。这些节点形成树的结构。树是网络中节点的最小生成树(最小生成树),可以通过分布式算法导出,或者由外部服务提供。叶子的节点是共识节点;树的根是领导者节点;另一部分是网关节点。每个节点都有一个单独的任务:共识节点负责投票;网关节点不需要参与投票,但必须负责聚合共识节点发送的签名;领导者节点负责与其他领导者节点交换消息。 BBFT的操作过程如下图所示。 BBFT的共识过程是消息从根到叶传播到根的过程。

比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

如何确保安全和生活? 在为PBFT提供新技术以提高效率的同时,还必须确保协议本身的安全性和活动性。让我们来看看上述协议如何确保两者。 ·查看更改(查看更改) FBFT遵循PBFT视图更改,即在正常条件下不替换领导节点,并且仅当超过2f + 1个节点启动视图更改时才更改领导节点。虽然视图域转换本身是一种可以取代邪恶的领导者节点的机制,但它还要求协议有三个阶段来确保协议的安全性(即,没有分离)。 ·旋转领袖 另一方面,HotStuff引入了领导节点轮换的机制,取代了每轮中的领导节点,从而避免了高昂的通信成本。领导轮换在许多BFT家庭协议中也很常见,这是目前安全机制的主流。 ·混合动力 与原始的BBFT链相比,每个公司的主管在应用视野转换和领导节点轮换时,相当于双重保险。 然而值得注意的是,目前的BBFT技术白皮书只有一轮投票模型,并没有提出两轮投票/三阶段共识模型。此外,领导节点轮换的顺序也将基于每个节点的赌注。如果节点违反协议,该节点将受到惩罚。 BBFT的挑战 基于上述分析和比较,BBFT目前面临着一些重大挑战。首先,是生成最小生成树,如何平衡分散和效率?其次,BBFT只采用单轮投票作为共识。在引入视图改变的情况下,可能发生分支,并且这样的网络也可能受到日食攻击的威胁。最后,在引入阈值签名的前提下,有必要引入分布式密钥生成(Distributed Key Generation)来共同生成私钥。技术白皮书中未提及此部分,但它可能是导致瓶颈的潜在因素。 结论 本文介绍了PBFT的特点和性能,并比较了FBFT/HotStuff/BBFT对性能问题的解决方案。最后,它总结了原有的BBFT链的未来挑战,希望能帮助读者了解BBFT的本质。 作者:Juin Chiu,Unitychain研究员&台北以太坊Meetup协办单位,目前研究兴趣共识协议/切片/自治状态。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发