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

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


                 有效并最终被提交; 否则, 交易无效并被中止. 在处理跨分片交易的过程中, 交易的输入状态将暂时被锁定, 直到交
                 易最终提交或中止, 以避免输入的双重花费.
                    Chainspace [38] 引入了一种基于分片驱动的两阶段提交机制           S-BAC (sharded Byzantine atomic commit) 处理跨
                 分片交易, 并结合并行处理与拜占庭容错优化, 提高了跨分片交易的处理效率. OmniLedger                       [36] 则采用基于客户端
                 驱动的两阶段提交机制        (如图  7  所示). 然而, 上述由客户端驱动的       2PC  协议依赖于客户端检索各阶段的证明消息,
                 在一定程度上违背了轻客户端的原则             [37] . 此外, 2PC  协议的锁定机制导致与被锁定状态相关的其他交易暂时无法
                 被处理, 并且存在一定的加锁/解锁开销.

                                                   未提交                    已提交
                                          协调者

                                           分片1       BFT          BFT


                                           分片2       BFT          BFT

                                           分片3                    BFT
                                                   准备阶段          提交阶段
                                                 图 7 客户端驱动的 2PC 协议

                  2.3.2    基于中继交易的方案
                    基于中继交易的跨分片交易处理方案最初在                Monoxide [39] 中提出, 通常适用于基于账户/余额模型的区块链系
                 统. 该方案将跨分片交易的处理分为提款和存款两个操作并强调交易的“最终原子性”, 即对于跨分片交易, 系统首
                 先执行提款操作, 随后与其他交易并行处理, 最后在适当时机执行存款操作. 这意味着, 一旦提款操作被确认, 存款
                 操作必将在后续某个时刻得到执行. 具体而言, 跨分片交易首先在输入分片中进行验证并执行提款操作, 以确保资
                 金从源账户中扣除. 随后, 输入分片生成中继交易              (relay transaction), 并将其转发至相应的输出分片. 输出分片验证
                 接收到的中继交易的有效性, 并执行存款操作, 确保资金正确存入目标账户                       (如图  8  所示). 该方案通过使用中继交
                 易进行简单的消息交换, 实现无锁异步的跨分片交易处理.

                                                   跨分片交易        片内交易

                                          分片1          BFT          BFT
                                                               中继交易

                                          分片2                        BFT
                                              图 8 基于中继交易的跨片交易处理

                  2.3.3    其 他
                    在  RapidChain [37] 协议中, 分片领导者根据交易的输入和输出将跨分片交易拆分为多个子交易, 并利用这些子
                 交易将相关的     UTXO  转移至同一分片进行处理. 为降低跨分片消息传播的开销, RapidChain                 采用基于    Kademlia
                 的路由算法, 将子交易传递给相应的分片, 确保分片间的高效通信. 然而, 该方法也存在一些缺陷. 首先, 由于交易
                 拆分导致的系统中交易数量增加, 从而导致额外的通信开销. 其次, 分片领导者的角色可能引发安全问题, 尤其在
                 领导者存在恶意行为的情况下. 最后, 对路由算法的依赖可能成为系统的潜在瓶颈.
                    BrokerChain  [15] 通过引入“中介账户 (broker account)”作为跨分片交易的中介, 协调多个分片之间的交易执行,
                 以确保交易的顺利完成和状态的一致性. 这些中介账户需具备足够的代币, 并通过质押资产来获得成为中介账户
   148   149   150   151   152   153   154   155   156   157   158