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

彭泽顺 等: 面向跨地理区域联盟链的事务处理技术综述                                                       239


                                                                               f  个节点宕机并丢失数据时, 仍有
                 系统在   f  个副本宕机时正常运行, 系统需要至少           f +m 个正确节点 (此时若其中
                 m 个片段未丢失, 进而能恢复出原始数据), 降低了系统的               CFT  容错.
                    为解决   RS-Paxos 容错度较低的问题, 当系统中正常节点大于             f +m 时, CRaft [56] 使用与  RS-Paxos 相同的编码
                                        f +m 时, 采用传统  Raft 的策略复制日志. ECRaft   [87] 和  HRaft [88] 进一步改进了  Craft 的
                 方传输日志. 当正常节点小于
                 编码策略, 在任何情况下系统均使用纠删码存储. 在节点故障时, HRaft 将发往故障节点的片段分配到正常节点上,
                 而不是回滚到     Raft 的全复制策略. FlexRaft [89] 通过在心跳或日志复制时实时侦测正常节点数量来动态改变纠删码
                 编码模式, 保证任何情况下编码模式均为最优, 最大化减少了系统通信开销和存储开销.
                    BFT  共识协议也广泛采用纠删码减少日志复制开销. RapidChain              [40] 共识协议的主节点使用     Gossip  协议广播
                 纠删码编码后区块, 其他节点可以借助默克尔证明重构原始区块; Poster                  [90] 使用纠删码改进了   HotStuff [64] 共识协议.
                 Velocity [91] 将纠删码和分布式哈希表 (DHT) 结合, 提升区块链的可扩展性; 文献           [92] 提出了延迟复制算法, 利用纠
                 删码传输区块, 最小化发送集群和接收者间的网络开销, 但只能用于只读负载. 在异步网络模型下, 文献                              [93] 利用
                 纠删码减少了消息传输的复杂度, 并使用默克尔树保证消息的完整性.
                    在跨域联盟链场景下, 纠删码可以显著减少账本在多个数据中心间进行复制时的带宽和存储需求. 在拥有足
                 够数量的数据片段和校验片段的情况下, 即使部分数据中心发生故障或数据丢失, 也能保证账本的完整性和可用
                 性. 除此之外, 我们还可以在不同的数据中心部署不同数量的数据片段和校验片段, 提供了高度的灵活性. 但是, 如
                 何在跨域联盟链中高效地使用纠删码仍然面临以下挑战. 1) 纠删码的编码和解码过程需要额外的计算资源, 这会
                 对参与节点造成额外负担. 2) 纠删码本身不容忍拜占庭攻击, 当且仅当所有输入片段均未被篡改时才能恢复出正
                 确的账本. 因此, 如何高效地验证纠删片段和恢复账本的正确性也存在挑战. 3) 引入纠删码势必会增加系统的复杂
                 性. 因此, 必须合理计算并设置副本容错, 保证系统的正确性.
                  1.4.3    门限签名和多重签名
                        (t,n) 门限签名  [74−77]  n 个参与者节点, 其中每个节点都拥有自己的公钥和共同私钥的一部分份额.
                    一个                 包含了
                 节点可以使用自己的私钥份额对消息签名, 生成合法签名的一部分. 可以聚合多个节点对同一消息的签名份额, 生
                                                     t
                 成一个聚合签名. 当且仅当        n 个节点中的任意   个以上的签名被聚合后, 最终的签名才能通过验证. HotStuff                  [64] 、
                 ISS [94] 、SBFT [95] 、Saguaro [96] 、PoE [97] 等系统采用了门限签名减少签名传输开销. 类似门限签名, 多重签名      [98] 也用
                 来聚合多个节点对于相同消息的签名. 多重签名中, n               个参与者节点使用自己的私钥对消息签名. 这些签名可以被
                 聚合, 并使用统一的公钥验证, 这样签名验证开销不会随着节点数增加. ByzCoin、Kauri、AHL                     等系统使用了多重
                 签名减少了计算和签名传输复杂度.
                    在跨域场景中, 跨数据中心节点间存在网络延迟高和跨域网络不可靠等问题. 由于门限签名和多重签名要求
                 多个节点之间的协调, 以聚合有效的签名份额. 节点间的高延迟会导致协调和聚合过程中的效率降低. 除此之外,
                 虽然采用门限签名或多重签名可以有效提升系统的扩展性, 但是由于签名本身依旧需要所有参与节点间的协调
                 (不可扩展), 在节点数量较多时, 签名的聚合和管理仍然是一个挑战.
                  1.4.4    Gossip  协议
                    Gossip  协议是一种去中心化的分布式通信机制, 广泛用于区块链系统                   [32,37,40] 中. 消息通过在节点间随机传播
                 保证所有节点最终都会拥有消息的副本. 跨域区块链 (例如采用                   PoW  的公有链  [36] ) 可以利用  Gossip  协议减少公网
                 交易和区块的传输开销. 当节点传播消息时, 节点首先会选择一定数量的邻居节点广播消息, 接收节点收到该消息
                 并检查是否超时, 并以一定的概率选择是否转发该消息, 以此循环. 超时和概率的结合可以让                             Gossip  协议在效率
                 和可靠性之间取得平衡, 如可以通过增加广播的邻居节点的数量, 以减少某些节点在广播结束后还未收到该消息
                 的概率, 但这也会增加网络内总体的通信量.
                    由于  Gossip  协议不依赖于中心化节点或全局稳定的路由, 在跨域区块链系统中, Gossip                  保证了系统的容错性
                 和可扩展性. 除此之外, 与全连接广播 (all-to-all broadcast) 相比, Gossip  协议可以有效减少公网的传输开销. 但是,
                 若  Gossip  广播设置的邻居节点和转发概率等参数不合理, 会导致消息丢失 (即未成功转发到所有节点) 或产生大
                 量冗余   WAN  流量 (广播风暴), 影响系统可用性或性能.
   237   238   239   240   241   242   243   244   245   246   247