当前位置:首页 > 物联网 > 区块链
[导读] 前言 近日比原链(BYTOM)技术团队发布了Bystack区块链BaaS平台,其中包括侧链的共识算法BBFT(Bystack Byzantine Fault Tolerance)。笔者将

前言

近日比原链(BYTOM)技术团队发布了Bystack区块链BaaS平台,其中包括侧链的共识算法BBFT(Bystack Byzantine Fault Tolerance)。笔者将在这篇文章中阐述比原链BBFT尝试解决的问题以及分析BBFT与其他各家共识协议的主要差异。

BBFT是一个PBFT的变形,它的原理与PBFT一脉相承。若想深刻理解BBFT的巧思,则必须进入PBFT的脉络推敲。早在区块链藉由比特币的大红大紫之前,PBFT就作为共识协议存在于世界上了。由Castro和Liskov于1999年发明,它是一个具有20年历史的经典设计,它的发明是为了解决分布式系统中的一个经典问题:拜占庭将军问题。直到今日,PBFT仍蕴含许多值得反复推敲的巧思,不断启发后世发明出更好的协定。

PBFT基本的运作流程

PBFT是一个具有二轮投票的三阶段协议,每个视域(View)都会有一个特定的节点作为领导节点(Primary/Leader),负责通知所有节点进入投票流程。各节点则会经历Pre-prepare/Prepare/Commit这三个阶段,并依据接收的讯息决定是否投票/进入下一阶段,每个节点投完票后将讯息发给所有其他的节点。

若个节点在两阶段投票之后取得多数共识,则各节点可以更新本机的状态,结束这一回合。视域变换(View-change)仅当多数节点发起时执行,当目前的领导节点并未正常执行任务时,这可以替换当前的领导节点,保证协议正常运作。

PBFT的特性

PBFT与中本聪共识(区块链)有相当不同的特性:PBFT是一个许可制的、基于领导节点的、基于通讯的、安全性重于活跃性的共识协定。

许可制的(Permissioned):PBFT并非完全开放的,这是由于PBFT需要让节点能够验证彼此的讯息以及精准掌握节点的数量,区块链则是属于对任何人都开放的非许可制(Permissionless)。

基于领导节点的(Leader-based):也就是先决定领导节点(Leader),再由领导节点送出提议,这样做最直接的好处就是不需要浪费自己的运算资源去争取当领导节点的机会,然而缺点就是只有在视域变换时才轮替领导节点,成为领导节点的机会并不公平,缺乏加入网络的诱因;区块链则是在多个提案中选择工作证明难度最高的区块作为共识,虽然这样会造成运算资源的浪费,但是成为出块者的机率大致是公平的,其与算力成正比。

基于通讯的(CommunicaTIon-based):PBFT的安全性奠基于3阶段投票,虽然不必如工作证明般消耗大量计算资源,但数量庞大的通讯也造成可扩展性的瓶颈——就算是号称最实用的PBFT,也无法扩展到1000个以上个节点。不仅如此,PBFT使用消息验证代码(MAC),每投一轮票就需要每一个节点验证一次讯息,大量的签名/验证也是另一个潜在的瓶颈。

安全性重于活跃性的(Safety over Liveness):PBFT不论在何种网络假设下(同步/异步)都能确保安全性,几乎不可能出现分岔,因此具有实时敲定(Instant Finality)的特性;相对地,区块链则是活跃性重于安全性,其安全性有赖于同步的网络,而具有复数个共识(及分岔)的情况也相当常见,需要经过一定数量的区块「确认」才能保证其不再分岔的机率足够大。

PBFT的问题

首先,PBFT中的每个节点都需于每一轮投票中做n-n的通讯,假设n为1000,则每一次的共识都需要至少100,000次的通讯,尽管PBFT已经是BFT家族当中最实用的协议,这么巨量的通讯需求仍是扩展的瓶颈。

如何提升效率?

· 聚合签名

为了提升效率,一个直觉的思路是:避免n-n的通讯。我们可以指定网络中的某节点作为协调者来发送/接收每个节点的投票,这样每个节点都只需要向协调者发送讯息即可,从而避免了n-n的通讯。然而,在这样的情境下,协调者有作恶的可能,因为协调者可以在未确实接收到指定数量的讯息前便执行下一轮投票或者进行状态更新。

因此,我们可以使用门坎签章(Threshold Signature)来保证协调者的正当行为,门坎签章的可以保证:需集合超过门坎数量(t-of-n)的签章才有效。也就是说,我们可以指定:唯有当协调者集合 2f+1 个门坎签章后,协调者才能带着合法的签名继续推进共识。Harmony FBFT便是一个使用聚合签名以提升效率的BFT家族协议。

· 管线设计

每个内容都必须经过二轮投票/三个阶段才能达成共识,如果有m个内容就需要执行2m次投票。管线设计(Pipelining)可以减少投票的次数,它的基本思路如下:让每个节点在投第 i 轮的prepare阶段时,同时也是对其前一个内容 i-1 的commit阶段投票。这样做便可以节省对同一个内容重复投票的冗余,大幅提升效率。这样的思路首见于2018年发表的HotStuff协议。

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

另外一种提高效率的方法,就是避免使所有的节点参与共识,这也正是比原链BBFT采取的作法。在BBFT中,节点分为三种:Consensus Node/Gateway Node/Leader Node,这些节点形成树的结构,树为网络中节点的最小生成树(Minimal Spanning Tree),可能由分布式算法得出,或是由外部服务提供。树叶的节点即为Consensus Node;树根为Leader Node;其他部分为Gateway Node。每种节点都有分别的任务:Consensus Node负责进行投票;Gateway Node则不需参与投票,但必须负责聚合由Consensus Node送来的签章;Leader Node负责与其他Leader Node交换讯息。BBFT的运作流程如下图所示,BBFT的共识过程,便是讯息由树根向树叶传播再回到树根的过程。

如何确保正确性(Safety and Liveness)?

在为PBFT带入新技术以提升效率的同时,也必须确保协议本身的安全性与活跃性。接下来我们来看看,上述的协议是如何确保这两者。

· 视域变换(View-change)

FBFT沿用了PBFT的视域变换,即在正常情况下并不更换领导节点,仅有当超过2f+1个节点发起视域变换才会更迭领导节点。视域变换虽然本身是一个能够替换作恶领导节点的机制,但它同时要求协议必须具有3个阶段,才能保证协议的安全性(即不分岔)。

· 领导节点轮替(RotaTIng Leader)

HotStuff另一方面则引入了领导节点轮替的机制,在每个回合都更换领导节点,如此来回避视域变换高额的通讯成本。领导节点轮替也常见于许多BFT家族的协议,算是目前保障安全性机制的主流。

· 混合式(Hybrid)

比原链BBFT则取各家所长,同时应用了视域变换与领导节点轮替,等于是上了双重保险。

不过值得注意的是,目前的BBFT技术白皮书仅有一轮投票的模型,并未提出两轮投票/三阶段共识的模型。另外,领导节点轮替的顺序也将基于各节点的权益(Stake),若节点出现违反协议的行为则该节点会遭受惩罚。

BBFT的挑战

综合以上的分析与比较,BBFT目前有几个显著的挑战。首先,是最小生成树的产生方式,如何同时兼顾去中心化与效率?其次是BBFT仅采取单轮投票作为共识,在引入视域变换的情况之下,可能会发生分岔,这样的网络也会遭受日蚀攻击的威胁。最后,引入门坎签章的前提下,势必需要引入分布式私钥生产协议(Distributed Key GeneraTIon)以共同生成私钥,这部分于技术白皮书中尚未提及,却是可能造成瓶颈的潜在因子。

结语

本篇文章简介了PBFT的特性及其效能问题,并比较了FBFT/HotStuff/BBFT等协议针对效能问题的解决思路,最后归纳出比原链BBFT的未来挑战,希望能帮助读者更理解BBFT的精髓。

作者:Juin Chiu,Unitychain 研究员 & Taipei Ethereum Meetup共同组织者,目前的研究领域为共识协议/分片技术/自主身份等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭