比原链 Bystack 区块链 BaaS 平台 BBFT 共识算法解析

2024-08-13 07:11:19

近日,BYTOM技术团队发布了区块链BaaS平台,其中包含了侧链共识算法BBFT(Fault)。在本文中,我将阐述BYTOM BBFT试图解决的问题,并分析BBFT与其他共识协议的主要区别。BBFT是PBFT的一个变种,其原理与PBFT相同。想要深入了解BBFT的精妙之处,必须进入PBFT的语境中。早在区块链通过比特币流行起来之前,PBFT就已经作为一种共识协议存在于世上。它由BYTOM于1999年发明,是一个拥有20年历史的经典设计,是为了解决分布式系统中的一个经典问题:拜占庭将军问题而发明的。时至今日,PBFT仍然蕴含着许多值得反复推敲的精妙之处,并不断启发后人发明更好的协议。

PBFT基本运行流程

PBFT 是一个三阶段协议,有两轮投票。每个视图(View)都会有一个特定的节点作为领导节点(/),负责通知所有节点进入投票流程。每个节点都会经历 Pre-// 三个阶段,根据收到的消息决定是否投票/进入下一阶段。每个节点投票后都会向所有其他节点发送消息。如果某个节点在两阶段投票后达成了多数共识,则各个节点可以更新本机状态并结束本轮投票。视图变更(View-)只有在多数节点发起的情况下才会执行。当当前的领导节点无法正常执行任务时,这可以取代当前的领导节点,保证协议的正常运行。

PBFT 的特点

PBFT 与中本聪共识(区块链)有着截然不同的特点:PBFT 是一种许可制、基于领导节点、基于通信的共识协议,它优先考虑安全性而不是活动性。

PBFT 的问题

首先,PBFT中每个节点在每一轮投票中需要进行n次通信,假设n为1000,则每次共识至少需要10万次通信。虽然PBFT已经是BFT家族中最实用的协议,但如此庞大的通信需求依然是扩展的瓶颈。

如何提高效率?

聚合签名

为了提高效率,一个直观的想法就是避免nn次通信。我们可以指定网络中的一个节点作为协调器,负责向各个节点发送/接收投票,这样各个节点只需要向协调器发送消息,从而避免nn次通信。然而在这样的场景下,协调器可能会作恶,因为协调器可以在实际收到指定数量的消息之前,执行下一轮投票或者更新状态。因此,我们可以使用阈值签名()来保证协调器的合法行为。阈值签名可以保证超过阈值数量(t-of-n)的签名都是有效的。换句话说,我们可以规定,只有当协调器收集到2f+1个阈值签名时,协调器才能以合法的签名继续推进共识。FBFT是BFT家族协议,它使用聚合签名来提高效率。

比原链_比原链bytomico_比原链bytom

图 1:FBFT

管道设计

每个内容必须经过两轮投票/三个阶段才能达成共识。如果有m条内容,则需要进行2m次投票。管道设计()可以减少投票次数。其基本思想是:每个节点在第i轮投票时,同时也在为前一个内容i-1投票。这样可以省去对同一内容重复投票的冗余,大大提高效率。这一思想最早见于2018年发布的协议。

比原链_比原链bytom_比原链bytomico

图 2:

只有部分节点参与共识:最小生成树

另一种提高效率的方法是避免所有节点都参与共识,而这正是比原链 BBFT 所做的。在 BBFT 中,节点的类型有三种:Node/Node/Node。这些节点形成一个树形结构,树是网络中节点的最小生成树,可能由分布式算法衍生,也可能由外部服务提供。树叶处的节点为 Node;树的根为 Node;其余为 Node。每个节点都有不同的任务:Node 负责投票;Node 不需要参与投票,但必须负责聚合 Node 发来的签名;Node 负责与其他 Node 交换消息。BBFT 的运行流程如下图所示,BBFT 的共识过程就是信息从根传播到树叶再回到根的过程。

比原链_比原链bytomico_比原链bytom

图 3:BBFT:树

比原链bytom_比原链_比原链bytomico

图 4:BBFT

如何确保正确性(和)?

在将新技术引入PBFT提高效率的同时,也要保证协议本身的安全性和活跃性。接下来我们来看看上述协议是如何保证这两点的。

看法-

FBFT 采用了 PBFT 的 view ,即正常情况下不更换 节点,只有当超过 2f+1 个节点发起 view 时才更换 节点。虽然 view 本身是一种可以更换恶意 节点的机制,但也要求协议必须有三个阶段才能保证协议的安全性(即不发生分叉)。

领导者轮换 ( )

另一方面,引入了领导节点轮换机制,每轮更换领导节点,避免视图变更带来的高通信成本。领导节点轮换在很多BFT家族协议中也很常见,被认为是保障安全性的主流机制。

杂交种()

Bytom BBFT 取其长,采用视图变更和领导节点轮换,可谓双保险。但值得注意的是,目前的 BBFT 技术白皮书只有一轮投票模型,并没有提出两轮投票/三阶段共识模型。另外,领导节点轮换顺序也将根据各个节点的质押情况进行,若有节点违反协议,则会受到惩罚。

BBFT 的挑战

基于以上分析比较,BBFT 目前面临几个重大挑战。首先,最小生成树的生成,如何兼顾去中心化和效率?其次,BBFT 仅采用单轮投票作为共识,当引入观点变更时,可能会出现分叉,这样的网络也会受到日蚀攻击的威胁。最后,在引入门限签名的前提下,需要引入分布式私钥生产协议(Key)来共同生成私钥。这部分在技术白皮书中还未提及,但它是可能造成瓶颈的潜在因素。

结论

本文简单介绍了PBFT的特点及其性能问题,并对比了FBFT//BBFT等协议针对性能问题的解决方案,最后总结了比原链BBFT未来的挑战,希望能够帮助读者更好的理解BBFT的本质。

参考

标签: 比原链
首页
欧意注册
欧意下载
联系