Page 381 - 《软件学报》2025年第8期
P. 381

3804                                                       软件学报  2025  年第  36  卷第  8  期


                    (2) 基于索引表数据压缩的交易存储方案: 为了减少跨                Rollup  交易的链上存储开销, 本研究提出了一种新型
                 跨  Rollup  交易批量处理数据结构. 该数据结构利用少数数据字段访问频率高的特点, 通过索引表将高频长字段压
                 缩为短索引等方式, 在保证数据完整性的基础上, 降低跨                 Rollup  交易的平均链上存储开销. 通过使用以太坊实际
                 交易数据集实验, 发现本文所提方法可以显著降低跨                 Rollup  交易的平均链上存储开销, 降幅达到        66.62%.
                    (3) 聚合规模均衡调整算法: 在本方案中, 跨          Rollup  交易的聚合规模是交易处理性能的一个关键指标. 如果聚
                 合规模过大, 当跨     Rollup  交易的频率较低时, 批量化交易处理将增加交易等待处理时延, 从而降低方案的可用性.
                 为了最大化利用本方案的优势, 本文提出了一种基于非支配排序遗传算法的聚合规模均衡调整算法, 通过实时监
                 测交易到达率等系统参数, 实现链上资源消耗与处理时延之间的平衡.
                    本文第   1  节对本文工作所涉及的理论和关键技术进行介绍. 第                2  节详细阐述了基于原生链的跨          Rollup  方案
                 的完整流程及细节. 第      3  节对聚合规模均衡调整算法进行介绍. 第            4  节设计实验方案及相关评测. 第        5  节对本文的
                 研究内容进行了总结, 并提出了未来的可优化方向.

                 1   相关研究

                 1.1   Rollup  技术整体流程
                    通常来说, 一个完整的       Rollup  系统分为链上智能合约和链下系统两个部分, 如图              1  中  Rollup  的交易过程总览
                 所示. 链上智能合约仅用于存储原始交易数据、Rollup 的默克尔树根, 以及配备对默克尔树根的有效性检验方式.
                 链下部分通常由定序器、执行器和验证器               3  部分组成. 一个通用的     Rollup  交易流程包括以下步骤.

                                                        链下系统

                                           定序器          执行器          验证器


                        链下交易       链下待
                                   打包交
                                   易池







                                          交易定序         交易执行          交易验证




                      原生链



                          Rollup 链上部署  定序器链上交易排序 执行器上传执行结果 验证器确认验证结果

                                                 图 1 Rollup  的交易过程总览

                    (1) 用户发送交易后, 交易进入到链下待打包交易池中.
                    (2) 根据特定策略选择本轮的定序器, 定序器从链下待打包交易池中获取交易, 将交易发送到链上.
                    (3) 执行器通过监听交易上链信息, 当监听到新增交易后读取并执行, 将执行后的                       Rollup  默克尔树根记录在链
                 上, 以便其他验证者验证状态.
   376   377   378   379   380   381   382   383   384   385   386