Page 149 - 《软件学报》2026年第1期
P. 149
146 软件学报 2026 年第 37 卷第 1 期
跨分片交易处理, 并尽可能将状态数据重新分配至负载较低的分片, 避免分片过载的情况. 相较于基于图论的状态
分配方法, 该方法在面对账户的突发行为时能够表现出更高的灵活性和适应性, 可有效避免系统短期负载不均的
情况.
Shard scheduler [33] 提出了一种面向账户模型的全分片系统状态调度方案. 在每笔交易到达系统后, 矿工启动状
态调度程序以判断是否需要进行账户的调度. 当一笔交易被认定为跨分片交易时, 调度器将在其相关的所有分片
中, 选择负载最低的分片作为存储该账户的主分片, 并计算将其他账户重新分配至主分片的成本 (计算方法与账户
和分片间的交易频率相关), 如果该成本低于保留在原分片的成本, 则执行账户的重新分配. 为确保生成准确的调
度策略, 调度器需要记录每个账户与分片之间的交易频率等历史信息. 相较于采用哈希分配方法的全分片系统,
Shard scheduler 将 60 个分片的系统吞吐量提升为原来的 2.5 倍, 并且将平均交易确认延迟降低为原来的 28.57%.
Shard scheduler 需要分析历史数据以做出调度决策, 这可能导致决策过程的延迟. 在高交易量的情况下, 这种
延迟会使得分片过载状况持续更长时间. 为了解决这一问题, LMChain [34] 在调度过程中摆脱了对历史数据的依赖.
LMChain 在信标链 [12,14,51] 的基础上, 通过将分片架构划分为事务分片 (transaction shard, TS) 和信标分片 (beacon
shard, BS), 通过在 TS 过载时选择过载交易及相关状态数据转移至 BS 中进行处理, 实现了高吞吐量和低交易等待
延迟. 在该系统中, BS 负责维护所有 TS 中的状态数据, 并参与负载转移协议. 然而, 该方案将所有 TS 的过载交易
均转移至 BS 中进行处理, 这很可能导致 BS 成为系统的性能瓶颈.
2.1.3 基于机器学习的分配方法
机器学习在区块链分片系统中展现出应对动态环境和优化决策的巨大潜力. 机器学习在动态分片中有两大应
用方向: 一是优化分片系统的各类参数以及策略, 包括系统配置参数、状态分配策略等, 以实现短期内性能提升和
长期内系统的高效运行; 二是基于历史数据预测未来交易模式, 从而实现更加精准的状态分配.
(1) 使用机器学习优化系统参数
SkyChain [52] 首次将深度强化学习 (deep reinforcement learning, DRL) [53–55] 引入全分片系统中, 实现了对分片数
量、区块大小及分片重新配置间隔等参数的动态调整和系统资源的调度. 后续基于 DRL 的区块链全分片系统 [56–58]
与 SkyChain 设计相似, 但均未考虑系统状态信息, 未能为状态分配策略提供有效解决方案. SPRING [59] 提出了一种
基于强化学习 (reinforcement learning, RL) 的状态分片框架. SPRING 将状态分配建模为马尔可夫决策过程, 设计
了基于跨分片交易比例和工作负载平衡的奖励函数, 旨在指导代理最大化整体性能并实现负载均衡. 通过将历史
交易数据应用于模型训练, SPRING 能够动态适应区块链的特性变化. 由于决策的高效性, SPRING 显著减少了状
态分配的计算开销, 能够在分片系统的共识阶段快速执行, 与在配置阶段实施的其他状态分配方法相结合, 能够进
一步降低跨分片交易比例, 提升系统性能.
(2) 使用机器学习预测未来交易模式
图分配方法的实施依赖于未来交易模式与历史交易模式相似的假设. 因此, LB-Chain [60] 提出了一种基于机器
学习的高效状态分配方法, 通过收集历史交易数据, 采用两层长短期记忆网络 (long short-term memory, LSTM) 模
型 [61] 预测系统中各账户未来的交易数量. 基于预测结果, 设计了一种启发式算法, 在每个周期内动态迁移热点账
户, 以实现分片间的负载均衡. 由于区块链网络中包含大量的账户, 对全部的账户进行预测显然不可行. 基于对以
太坊账户的交易特征分析, 发现仅 0.02% 的热门账户发送了超过 50% 的交易, 因此, LB-Chain 选择仅针对热门账
户进行预测. 该方案的交易预测值与实际值的平均误差仅 11%, 并且将重负载分片与轻负载分片的交易数量之比
由哈希分配方法的 4 倍降低至 2 倍.
然而, 基于机器学习的动态分配方法需要大量历史数据进行训练, 并且该方法对于计算资源的需求较高. 此
外, 该方法的性能高度依赖于输入数据的质量和准确性. 不同时间段的交易数据可能存在显著差异, 导致模型在泛
化能力和适应性方面受到限制.
2.1.4 基于分片状态树的状态管理机制
以太坊的状态管理机制基于默克尔压缩前缀树 (Merkle patricia trie, MPT) 实现, 其中全局状态树 (state tree)
用于存储所有账户的状态信息. 状态树以账户地址为键, 账户状态为值, 通过 MPT 结构进行高效的组织和索引.

