Page 248 - 《软件学报》2026年第1期
P. 248
彭泽顺 等: 面向跨地理区域联盟链的事务处理技术综述 245
和确定性并发控制相似, CRDT 也不需要传输读写集, 执行时也不需要节点间协调, 在所有并发控制算法中性能最
好. 但是, CRDT 不支持可串行化的隔离级别, 使用情形受限, 各节点按照任意顺序执行 CRDT 交易均会得到一致
的结果.
表 4 并发执行技术总结
区块链系统 年份 并发执行技术 特征
Fabric [32] 2018 乐观并发控制 (OCC) 多个节点上并发执行事务, 热点数据访问终止率高
Fabric++ [122] 2019 OCC+依赖图 利用有向图表示事务执行, 剔除环中度最多的事务
Fabric# [105] 2020 OCC+依赖图 检测事务读写依赖, 用重排序提交更多事务
SlimChain [106] 2021 OCC+依赖图 存储链下进行, 使用无状态Peer执行和验证事务
FlexChain [82] 2022 依赖图 存算分离, 节点可以弹性扩展
文献[38] 2018 依赖图 排序与执行阶段并发进行, 使用SSI保证相同顺序
[38]
NeuChain 2022 确定性并发控制 基于Aria的确定性并发控制算法, 访问热点数据差
[115]
HarmonyDB 2023 确定性并发控制 基于磁盘的确定性并发控制, 可以应对热点数据
[116]
SChain 2023 确定性并发控制 基于有序锁的确定性并发控制, 多个服务节点处理事务
[121]
FabricCRDT 2019 无协调一致性 (CRDT) 支持CRDT事务和普通事务, 但仍需共识CRDT事务
[39]
OrderlessChain 2022 无协调一致性 (CRDT) 节点间不需要共识, 但仅能保证最终一致性
3 区块链分片技术
分片技术旨在提高区块链的吞吐率和扩展性, 通过将账本分为多个不相交的分片, 在每个分片内独立运行共
识协议. 分片区块链分摊了全副本的网络、计算和存储, 通过将账本划分为数个不相交的分片, 提升了区块链系统
的可扩展性. 网络方面, 同一分片内的节点被划分到同一共识组, 不同分片的共识并发进行; 计算方面, 分片间交易
并发执行, 系统吞吐率随分片数增加而增加; 存储方面, 分片内节点仅需保存分片对应的那部分账本, 大幅度减少
了存储开销.
分片技术被广泛应用在跨域联盟链和公有链系统中. 在跨域联盟链中, 如 GriDB [43] 、Saguaro [96] 、Prophet [123] 、
SharPer [42] 、CoChain [124] 、TxAllo [125] 和 Ziziphus [20] , 账本数据被划分为多个分片, 每个数据中心内的节点仅保存账
本的一个或数个分片. 为了最小化事务的端到端延迟和提升数据亲和度, 这些跨域联盟链通常根据用户的地理位
置针对性地部署分片. 与跨域联盟链的网络设施相似, 公有链的节点通常也分布在范围较广的地理区域, 节点间通
信延迟较高. 因此, Elastico [126] 、OmniLedger [62] 、Monoxide [127] 、RapidChain [40] 等公有链系统也采用了分片技术提
升系统的性能和扩展性.
分片区块链中, 交易被分为分片内事务 (intra-shard transaction) 和跨分片事务 (cross-shard transaction). 由于分
片内事务不涉及其他分片的操作, 其共识和执行流程与第 1 节和第 2 节相同, 这里不做赘述. 对于跨分片事务, 需
要从以下几个方面进行考虑. 1) 共识方面, 由于分片内所有节点需要对该事务的执行结果达成共识, 因此分片内共
识通常采用第 1 节的共识算法, 例如 OmniLedger [62] 分片内采用了树形共识, RapidChain [40] 分片内采用同步网络模
型下的扁平共识. 2) 执行跨分片事务要保证高效和提交的原子性. 高效是使用第 2 节的并发控制算法实现的, 例
如 ByShard [44] 和 AHL [41] 采用的两阶段锁 2PL 和 Prophet [123] 采用的确定性并发控制. 原子性即确保事务要么在所有
相关分片上同时成功提交, 要么在所有分片上失败, 第 3.1 节将介绍以两阶段提交 (2PC) 为代表的不同种类的跨
分片提交协议. 3) 存储方面, 现有分片区块链 (如 AHL [41] 、Elastico [126] 、OmniLedger [62] 等) 普遍为每个账本分片对
应一条子链, 分片内的节点共识负责生成该子链. 相比而言, IOTA [128] 、CAPER [28] 、Hashgraph [129] 、Jointgraph [130]
等区块链系统的账本由有向无环图 DAG 构成. 第 3.2 节将分别介绍使用多条子链和 DAG 对应的账本结构. 4) 分
片数据的划分和放置的地理位置也会影响系统的性能. 例如, TxAllo 通过将频繁联合访问的事务放置在相同分片
来减少跨分片事务的比例, 而 Ziziphus 将分片复制到数个地理位置相近的数据中心, 通过降低可用性来保证性能.
第 3.3 节和第 3.4 节将详细介绍上述系统.

