Page 152 - 《软件学报》2026年第1期
P. 152
苏琳萱 等: 区块链状态分片技术综述 149
T lock ⊆ T i : 在状态迁移过程中, 必须锁定 T loc 中的所有交易, 避免交易被中止.
k
● 锁定交易集
φ : D×S ×S → D: 此函数表示将状态数据 ′ ′
● 数据迁移 d i 从 s src 迁移至 s dst , 即 d =φ(d i , s src , s dst ), 迁移后 f(d , s dst )=1.
i
i
′
′
d
● 状态更新 ψ : D×S → B: 在 s dst 上更新 , 确保数据在新分片上的一致性. 函数 ψ(d , s dst ) 将返回布尔值, 表示
i i
更新操作是否成功.
● 释放交易集: 完成状态迁移和更新后, 解锁并处理 T loc 中的交易, 恢复交易的正常执行.
k
LB-Chain [60] 首次提出了完整的状态迁移机制, 该方案将状态迁移操作封装在交易中, 执行过程包括生成并签
署交易、打包区块、达成共识和更新状态. 为防范交易操纵, LB-Chain 对迁移交易进行严格验证, 包括状态一致
性、签名验证、余额一致性和分片一致性. 针对静默攻击, 客户端和 s ds 可通知 s sr 重新发送交易. 为避免重放攻
c
t
击, 引入迁移随机数, 确保交易顺序的连续性和唯一性. 此外, 为确保状态迁移期间交易的正确处理, LB-Chain 会
在 s sr 中锁定被迁移的状态及其所有的相关交易, 即 T lock =T i , 并将其与状态数据一同迁移至 s ds 中进行处理, 从而
t
c
避免了相关交易可能面临的被中止的情况. 然而, LB-Chain 存在以下两个局限: 首先, 迁移期间所有的相关交易均
被锁定, 导致这些交易需要较长时间才能得到确认, 从而影响系统的整体吞吐量和平均交易确认延迟. 其次, LB-Chain
并未针对迁移失败的情况提出有效的解决方案, 这导致该方案存在一定的系统安全漏洞.
为解决上述问题, 文献 [65] 提出了一种精细化的交易锁定机制, 以减少状态迁移阶段对相关交易的影响. 针
对第 1 个问题, 该方案在状态由 s sr 迁移至 s ds 期间, 仅锁定从该状态转出资金的相关交易, 即 T lock =T out , 依然允许
c
t
向该状态转入资金的相关交易 T i 的处理. 当状态数据完成迁移后, s ds 向 t s sr 发送通知, s sr 将该状态相关的最新
c
n
c
d 和未完成交易发送给 s dst . 在此过程中, 即使状态处于迁移过程, 仍会保持更新. 该方案减少了被锁定的交易
′
状态 i
数量, 确保向该状态转入资金的交易的正常处理, 不会因为迁移而中断, 将交易的完成时间降低至 LB-Chain 的
t
30% 左右. 针对第 2 个问题, 该方案为两类迁移失败情况提供了解决方案. 第 1 类是迁移超时, 发生在 s ds 未能成
c
′
功验证状态 d , 从而未回复 s src , 导致 s sr 在迁移窗口结束后认为迁移失败. 为避免此类失败, 设置超时查询机制,
i
s sr 需要在迁移窗口内主动向 s ds 发送查询请求, 以确认状态迁移结果, 并在失败时解锁状态数据及相关交易. 第
c
t
c
2 类是迁移过程中的消息传播延迟, s ds 成功验证迁移但 s sr 未及时接收到该验证消息, 导致 s sr 误认为迁移失败并
c
t
解锁账户, 导致该状态数据在两个分片中出现重复. 为避免此类失败, 设置状态确认机制, s sr 在迁移窗口到期后不
c
会直接解锁该状态数据, 而是继续向 s ds 查询, 直到确认迁移成功后再执行解锁操作.
t
2.3 跨分片交易处理
在区块链全分片系统中, 节点只需维护部分区块链状态数据, 跨分片交易的处理需要在多个分片之间进行数
据验证和状态一致更新. 为确保系统的正确性, 跨分片交易必须满足 ACID 属性 [66] , 即原子性、一致性、隔离性和
持久性. 其中, 原子性要求交易在所有相关分片中要么全部成功提交, 要么全部中止, 以避免部分提交的情况; 一致
性则要求在交易执行后, 各分片的状态保持一致, 以防止数据冲突. 现有的跨分片交易处理方法主要包括基于两阶
段提交 (two-phase commit protocol, 2PC) 和基于中继交易的方案. 表 3 总结了这两种方案的优缺点. 此外, 本节还
将讨论若干新型的跨分片交易处理方法.
表 3 跨分片交易处理方案对比
分类 实现原理 优点 缺点
基于两阶段提交协议, 通过协调者管理 确保跨分片交易的强一致性, 适用于复 依赖协调者, 交易的提交需要锁定
2PC
跨分片交易处理 杂事务处理 相关状态
中继交易 设计中继交易, 保证交易的“最终原子性” 实现无锁异步处理, 支持交易并行处理 适用于基于账户模型的全分片系统
2.3.1 基于两阶段提交 (2PC) 的方案
两阶段提交协议 (2PC) [67] 被广泛应用于分布式系统, 能够确保分布式事务中数据的强一致性 [68] . 该协议分为
准备阶段和提交阶段. 在基于 2PC 协议的方案中, 存在一个协调者负责管理多个分片, 确保交易的一致性提交. 在
准备阶段, 协调者从输入分片收集验证交易输入有效性的证明消息. 在提交阶段, 协调者将收集到的证明消息发送
至所有相关分片. 根据验证结果, 跨分片交易将在每个分片中被一致地提交或中止: 如果所有输入均有效, 则交易

