Page 241 - 《软件学报》2026年第1期
P. 241

238                                                        软件学报  2026  年第  37  卷第  1  期


                        j 个  ABA             i 根据输出  (0  或               j 个节点提议的那组交易. 3) ABA      实例的
                 出. 当第         实例完成后, 节点                  1) 决定是否保留第
                 共识结果唯一, RBC    保证了选择保留的交易唯一, 节点解密交易并根据节点                  ID  对交易排序生成确定性的区块.
                    Dumbo [52] 指出, HB-BFT  在共识时的主要开销为    ABA  开销. 虽然单次    ABA  的共识开销恒定, 但是每当在系统
                 内每增加一个节点时, 系统就需要额外运行一个               ABA  实例, 对是否保留该实例的交易输入达成共识. 简言之, 虽然
                 运行一个   ABA  共识的开销恒定, 但是因为每个节点           CPU  线程数和网络资源有限, 并发运行          n 个  ABA  实例的开销
                 为  O(logn) [78] . 因此, Dumbo 1 将需要的  ABA  实例的数量由  n 个减少为   个. 简言之, 其选择   个节点作为主节点,
                                                                        k
                                                                                        k
                 用于决策哪些节点广播的交易包含在最终区块中, 而这                  k 个主节点仅需要   个 k   ABA  实例即可达成共识. Dumbo 2
                 进一步使用    MVBA  而不是   ABA  提升性能. 虽然    MVBA  的共识复杂度较大       (  O(n |m|+λn +n ), 其中  m 为消息大
                                                                                      2
                                                                                2
                                                                                         3
                 小, 通常大于   λnlogn), 但是通过减少   MVBA  共识输入数据的大小, Dumbo 2      的共识开销可以低于        HB-BFT.
                    文献  [79] 指出, 以上共识协议无论交易池内是否有交易, 都需要所有节点参加每个                      epoch, 并且  ABA  协议在
                 大规模部署时开销较大, 并为此提出了            MyTumbler, 保证了仅有少数节点提议交易时系统的快速运行.
                  1.4   共识时的通信优化
                    BFT  共识协议受限于节点间网络通信的带宽和延迟. 因此, 联盟链共识算法提出了数种方法减少节点                               (或分
                 组) 间的跨域通信开销, 包括硬件加速、纠删编码、门限签名与多重签名、Gossip                      与流水线技术.
                  1.4.1    硬件加速
                    在共识协议中, 最常用的硬件加速方法为使用远程内存直接访问                      RDMA  技术, 用于提高网络带宽利用率, 减
                 少节点间通信的延迟和降低          CPU  负载. 不同于传统    TCP/IP  通信协议, RDMA  依赖于   Infiniband  交换机等特殊硬
                 件, 可以让本地    CPU  直接访问远端内存存取数据, 而不需要远端             CPU  参与. DARE [80] 、APUS [81] 利用单边  RDMA
                 原语设计了强一致的共识协议. 由于            RDMA  的低延迟和不需要远程        CPU  参与消息传输, 极大地提升了共识的性
                 能. 为了保证系统的扩展性, 并能高效应对不同类型的工作负载, FlexChain                [82] 采用云原生的池化思想, 即利用数据
                 中心提供的计算池, 内存池和块存储池, 重新设计了系统架构. 对于数据中心内节点通信, FlexChain                         同样使用了
                 RDMA  技术, 减少存储和计算资源解耦后的性能损失. 除此之外, 可编程交换机也可以提高网络通信效率和减少
                 延迟, 其允许开发者自定义数据平面的处理逻辑, 从而实现更为精细和高效的数据处理和网络流量管理. NOPaxos                              [83]
                 使用可编程交换机对消息排序, 消除了            Paxos 协调者间的消息交换. 它将延迟减少到           1 RTT, 也是基于服务器解决
                 方案的理论下限.
                    可编程交换机和      RDMA  等硬件加速技术在单个数据中心内能显著提升共识协议的性能, 但是, 在跨地理区域
                 联盟链中, 上述硬件加速方法仍然面临着诸多挑战. 1) 首先, 数据中心间的网络通常难以实现硬件加速技术所依赖
                 的特定网络硬件配置. 由于广域网 (WAN) 通常涉及多个不同的网络运营商和服务提供商, 每个运营商可能采用不
                 同的硬件和网络技术, 这种多样性和不一致性使得统一部署特定的硬件加速技术变得极为困难. 2) 其次, 联盟区块
                 链内的不同组织可能选择不同的云服务提供商, 这些提供商的数据中心采用的网络硬件也不一定完全相同. 因此,
                 可能需要适配多套硬件实现联盟区块链的硬件加速功能. 3) 最后, 对于                    BFT  协议的硬件加速支持相对较少, 这限
                 制了在跨域联盟区块链场景中部署这些技术的可能性.
                  1.4.2    纠删码技术
                    纠删码技术     [84] 可以降低日志复制带来的网络开销和存储开销, 被广泛应用在区块链系统中. 纠删码将日志分
                                                                                                   n 中的
                 为   m 个大小相同的数据片段, 并额外编码出          n−m 个冗余的校验片段, 其中        n 为节点总数, 副本在拥有任意
                 m 个片段即可重构出原始日志. 广泛使用的编码方式为                Reed-Solomon  纠删码  [85] .
                    CFT  共识协议中, RS-Paxos [86] 是首个使用纠删码技术的协议, 用于减少日志复制的通信开销和存储开销. 其将
                                                n−m 个校验片段, 每个节点仅接收和存储一个对应片段. 为了保证正确
                 每条日志打散成      m 个数据片段并编码出
                 性, RS-Paxos 的每次读操作和写操作都必须在          Q r  和  Q w  个副本上完成后才可提交. 并且要满足      Q r + Q w −n ⩾ m, 即
                                                                                    m = 1 时, RS-Paxos 退化为
                 保证读取的副本集合        Q r  至少包含  m 个最新的写入片段, 即保证恢复出最新的日志. 当
                 经典  Paxos 算法, 并拥有相同的容错, 即容忍不超过半数节点宕机. 但是, 由于每个节点仅存储                     1  个片段, 为了保证
   236   237   238   239   240   241   242   243   244   245   246