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

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


                 2.1.1    系统模型
                    本文提出的跨     Rollup 方案   BR(Rollup sender → Rollup receiver ) 是针对以下的场景的假设. 针对一条原生链   Blockchain,
                 它具有各自独立的链下扩容方案发送方             Rollup sender  和接收方   Rollup receiver , 并且智能合约   Contract sender  和   Contract receiver
                 分别部署在两个       Rollup  上. 一笔完整的交易会有两阶段的生命形态, 包括发送方交易                   TX sender  和接收方交易
                 TX receiver . 一个通常的流程是用户将交易发送至发送方         Rollup sender , 在  Rollup sender  中执行发送方交易  TX sender  后产生
                 二阶段的接收方交易       TX receiver  并发送到   Rollup receiver  中执行. 同时, 接收方交易  TX receiver  需要作为发送方交易   TX sender
                 执行后所抛出的事件存储在交易收据树               ReceiptTree  中, 如图  2  所示, 交易收据树  ReceiptTree  是默克尔树根的一
                 部分.

                 2.1.2    系统假设
                    本文的系统对      Rollup  做出了一些假设, 这些假设本身也是常见的             Rollup  假设. 本文的互操作方案仅限于
                 Rollup  方案, Rollup  是区块链  Blockchain  的一个扩容策略, 它需要满足的条件如下.
                    (1) 交易可读性: Rollup  内执行的原始交易      TX sender  被存储在链上节点, 其他节点可以随时读取该笔交易, 且该
                 交易必然已经被执行了, 成功与否会被记录在交易收据树中.
                    (2) 状态根有效性: Rollup  内执行成功后的默克尔树状态根            MerkleRoot 被上传到链上, 并由     Rollup  的自身的
                 验证机制确保其有效性以及正确性. 该状态根存储在原生链上, 其他节点可以确认该根的结果有效性.
                    (3) 交易实时性: Rollup  内的节点对于所有可执行的合法交易, 会及时将交易放入待打包交易池中, 而不会因
                 为交易费等其他因素拒绝执行交易.
                    (4) 交易通用性: Rollup  内能够执行的交易是具备一定的通用性, 能在智能合约中执行.

                 2.1.3    交易类型
                    需要说明的是本文实现的          Rollup  方案是最基础的单向的互操作交易类型, 后续复杂的交易类型都可以在本
                 文之上扩展.
                    对于完整的交易事务性而言, 系统可以通过增加事务管理器的方式增加交易事务性. 本文的跨                                Rollup  方案
                 仅能保证在     Rollup sender  内执行成功的交易,  Rollup receiver  可获得交易并执行; 在   Rollup sender  内执行失败的交易,
                 Rollup receiver  内不会执行. 而不保证在  Rollup sender  执行成功, 但  Rollup receiver  执行失败的情况下,  Rollup sender  内的交易
                 将会回滚. 这种强事务性保障需求, 需要在本文的机制基础上进一步加强. 这可以选择一种完善的事务保障机制,
                 在   Rollup receiver  内执行失败后, 再发起一笔  Rollup sender  内的对应回滚交易来保障其事务性. 通过两笔单向跨       Rollup
                 交易以及对应的事务管理器来解决交易事务性的问题.
                    对于多   Rollup  的互操作的需求, 系统可以通过增加多交易管理器的方式增加多                   Rollup  的互操作方案. 本文讨
                 论的交易范畴仅在两个        Rollup  上展开, 但事实的业务需求会需要多个          Rollup  间的互操作. 多个   Rollup  间的交易,
                 可以拆分成多笔两两之间的          Rollup  交易. 通过多交易管理器管理多笔单向的           Rollup  交易来共同完成多    Rollup  间
                 的互操作方案. 本文可以成为未来多           Rollup  间的互操作方案的基础.

                 2.2   整体设计思路
                    本文提出了一种基于原生链的跨            Rollup  方案, 称为  NativeBridge, 它所涉及的跨  Rollup  方案的主要工作分为
                 两个部分, 第   1  部分为发送方交易     TX sender  提供有效性验证, 第  2  部分为接收方  Rollup  同步接收方交易    TX receiver . 而
                 交易验证和交易同步在链下基于服务商的方案中已经有相关方案.
                    由于原生链每个区块的计算资源与存储资源有限, 详见第                   1.3  节的分析, 将每笔跨    Rollup  的链下验证方案和
                 存储方案直接迁移至原生链, 会消耗大量的原生链计算与存储资源. 因此, 本文提出的整体解决思路是采用批量化
                 的处理方法, 以均摊单笔交易所需的链上资源消耗, 从而使单个区块能够承载更多交易, 提升系统吞吐量.
                    对于链上计算资源受限的问题, 本文采用的策略是利用                  zk-SNARKs 类零知识证明所具有的简洁性证明特性,
                 将多笔交易的验证通过一个简单高效的零知识证明验证策略批量证明, 对于原生链只需要投入较少的计算资源就
                 可以验证一批交易是否成功, 减少单笔交易的平均开销. 具体的方案介绍详见第                        2.3  节.
   380   381   382   383   384   385   386   387   388   389   390