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)”作为跨分片交易的中介, 协调多个分片之间的交易执行,
以确保交易的顺利完成和状态的一致性. 这些中介账户需具备足够的代币, 并通过质押资产来获得成为中介账户

