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

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


                  3.1   跨分片提交协议
                    现有区块链系统主要依赖于两阶段提交协议                 (2PC) 保证跨分片的原子性. 在第       3.1.1  节将介绍不同类型    2PC
                 的运行流程与对应系统, 并分析          2PC  在跨域部署时产生的网络开销. 为了减少网络开销, 第              3.1.2  节将介绍其他跨
                 分片提交协议, 例如      Meepo [131] 按  epoch  同步的策略执行跨分片交易, Monoxide [127] 的原子提交协议, Pyramid [132] 分
                 层架构下的提交协议, BrokerChain    [133] 利用  Broker 账户执行跨分片交易等提交协议.
                  3.1.1    两阶段提交协议
                    GeoChain [29] 、ByShard [44] 、AHL [41] 、RapidChain [40] 、OmniLedger [62] 等系统使用两阶段提交协议保证跨分片
                 交易的原子性. 参考      ByShard [44] 和  Qanaat [134] 对  2PC  协议的分类, 本文将  2PC  协议分为中心化  2PC 和分布式  2PC.
                 其中, 中心化   2PC  存在一个中心化实体      (可以为客户端     [62] 、某个分片  [40] 或独立的协调分片   [41] ) 负责分片间的协调
                 工作. 相比而言, 在分布式       2PC  中, 分片间直接交换执行结果, 而无需中心化实体判断是否提交. 换言之, 集中式
                 2PC  需要分片将决策发往中心化实体判断是否能提交, 需要更多网络往返. 而分布式                        2PC  需要更少的网络往返即
                 可达成共识, 但由于分片间以广播的方式传输决策, 其通信开销较高.
                    中心化   2PC  的典型系统为    AHL [41] 、RapidChain [40] 、OmniLedger [62] . 如图  11  所示, 中心化  2PC  在执行跨分片

                 交易时, 用户将交易      T 1  发往协调者  Shard A. 当按照分片策略将    T 1  划分为子交易后, 将包含相应子交易的          Prepare
                 消息发送到对应分片        Shard A  和  Shard B. 值得注意的是, 为了避免协调者的拜占庭行为, 需要使用分片内共识或
                 超时机制   (协调者为用户, 如     OmniLedger) 来消除节点的拜占庭行为.

                                              T 1
                                           L 1,1
                                           F 1,2
                                     Shard A        Consensus          Consensus
                                           F 1,3
                                           F 1,4
                                           L 2,1
                                           F 2,2
                                     Shard B                   Consensus
                                           F 2,3
                                           F 2,4
                                                 图 11 中心化两阶段提交协议

                    当分片   Shard B  收到对应的  Prepare 消息时, 分片的主节点判断对应子交易是否能在当前分片完成提交, 并返
                 回同意或拒绝投票到协调者. 为了避免拜占庭节点左右决策, 分片                    Shard B  内同样需要共识决策.
                    当且仅当所有分片的回复均为同意时, 协调者才能发起提交流程. 和                      Prepare 类似, 协调者生成   Commit 消息
                 并发送到所有参与分片, 参与分片在收到             Commit 消息后提交分片对应的子交易并更新分片负责的账本. 反之, 若
                 某些分片   (如  Shard B) 无法执行交易并回复拒绝时, 协调者广播          Abort 请求到所有分片以终止该交易.
                    AHL [41] 使用可信执行环境    (TEE) 进行分片内共识, 减少了分片内共识的通信开销, 并提高了分片内容错. 其通
                 过在  TEE  中维护共识消息日志使得恶意节点无法向不同节点发送拜占庭消息, 从而让拜占庭容错模型降为仅崩

                 溃容错模型. 也就是说, 分片内只需要有           2 f +1 的节点数就可以保证系统的活性与安全性.
                    OmniLedger  [62] 提出了使用客户端驱动的     2PC  协议  Atomix, 将分片间的协调转化为分片和客户端间的协调.
                 由于需要客户端实时监控各分片的执行结果, OmniLedger 需要高性能的客户端来驱动分片间的信息交换, 且客户
                 端必须向整个网络广播, 通信开销较大.
                            [135]
                    Chainspace  是首个支持智能合约的分片区块链, 同时保护了用户的隐私性, 对                  2PC  进行了改进提出了     S-BAC.
                 类似于   OmniLedger 的  Atomix  协议, 但不是简单的客户端驱动, 必须有      BFT  共识过程.
                    RapidChain  [40] 利用了  UTXO  交易的性质, 将跨分片交易拆分为数个分片内的子交易, 交易可通过分片间的路
                 由协议被送往指定分片, 减少网络通信开销. 同时, RapidChain            在分片内采用同步网络模型, 其采用的同步              BFT  共
                 识可达到   2f +1  拜占庭容错. 其还采用流水线技术进一步提升了共识的吞吐率.
                    GeoChain [29] 提出了一种改进的客户端驱动       2PC  协议 (inputs to output cross-shard commit, IOCC) 处理跨分片
   244   245   246   247   248   249   250   251   252   253   254