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

张子龙 等: 基于原生链的跨       Rollup  机制研究                                               3809


                    根据第   1.3  节的分析, 可以得到观察到现象, 大部分的交易由少部分账户发出, 大部分账户上有多个交易. 由
                 此可见, 事实上交易记录的地址等字符串实际上是有较高的重复性的. 因此本文提出的策略是基于索引表的思想,
                 提出了一种批量化跨        Rollup  交易的数据压缩方法. 整体思想是使用短索引代替长字段等形式, 有效地减少了交易
                 大小, 缓解了链上存储资源受限的问题, 具体的方案介绍详见第                   2.4  节.
                    接下来本文从整体上描述基于原生链的跨               Rollup  的基本流程, 分为   5  个部分: 交易发送、聚合交易、链上存
                 储、链上验证、对端执行. 为了便于阐述, 本文只关注交易的一个方向流动, 即仅从                         Rollup sender  到  Rollup receiver  的交
                 易流动, 而相反方向的操作是对称的, 交易整体流程如图                4  所示.

                                            区块        区块         区块         区块        区块        区块


                                   3. 上传接收               4. 发送方交易                        5. 读取接收方
                                     方交易                 有效性证明                           交易并执行




                            1. 用户发送原始交易

                       用户

                                               Rollup A                              Rollup B



                                          2. 发送方聚合交易并执行
                                               图 4 跨  Rollup  交易的整体流程图

                    (1) 交易发送: 用户发送单笔交易         TX sender  至智能合约  Contract sender , 通过智能合约的执行, 产生了一笔需要在
                 Contract receiver  内执行接收方交易  TX receiver .
                    (2) 聚合交易: 发送方    Rollup sender  等待聚合一批交易批量处理.
                    (3) 链上存储: 发送方    Rollup sender  将接收方交易  TX receiver  存储在原生链上, 以便  Rollup receiver  读取交易.
                    (4) 链上验证: 发送方    Rollup sender  使用零知识证明策略为  TX sender  的交易有效性提供证明.
                    (5) 对端执行:   Rollup receiver  从原生链读取验证通过的  TX receiver  交易, 并在  Contract receiver  中执行  TX receiver ;

                 2.3   基于零知识证明的跨     Rollup  验证方案

                 2.3.1    交易有效验证目标
                    本方案整体上要完成交易有效性验证, 同时还需要在验证的过程中优化区块链交易验证过程中的资源利用效
                 率. 对于交易有效性的证明包括两部分.
                    (1) 发送方交易   TX sender  是否执行成功.
                    (2) 存储在原生链上的接收方交易          TX receiver  与发送方交易执行生成的接收方交易      TX receiver  一致.
                    原始交易    TX sender  的执行结果存储在   Rollup sender  的交易收据树  ReceiptTree 中. 证明的目标是存在一个有效的收
                 据, 该收据能够证明      TX sender  交易执行成功的状态, 并且交易抛出的事件与链上存储的交易              TX receiver  一致, 以及该收
                 据状态是链上已证实有效的交易收据树的一部分. 数学形式化表达如公式                         (1) 所示, 其中  Receipt(TX sender ) 指的是
                 TX sender  的交易收据状态,  S (TX sender ) 是  TX sender  的交易执行状态, 通常为  successful 或者  revert, revert 为交易失败回
                 滚,  Event(TX sender ) 是指的是  TX sender  执行后抛出的事件,  TX receiver  为链上存储的接收方交易,  ReceiptTree 是链上验证
                 有效的交易收据树.
   381   382   383   384   385   386   387   388   389   390   391