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  节将详细介绍上述系统.
   243   244   245   246   247   248   249   250   251   252   253