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 是链上验证
有效的交易收据树.

