Page 384 - 《软件学报》2025年第8期
P. 384
张子龙 等: 基于原生链的跨 Rollup 机制研究 3807
10 5
10 4
地址数量 10 3 2
10
10 1
10 0
0
0 10 20 30 40 >50
地址出现次数
图 3 交易地址分布情况
在非交互式证明中 [9] , 证明者可以通过单向函数的方式生成证据, 使得验证者可以验证陈述的正确性. 这种证
明方式通常对证明者的计算要求高, 而验证者的计算负载小. 在实际的使用中, 在证明者与验证者的计算能力存在
较大差异的场景下, 非交互式的证明策略常常受到更多的青睐.
在非交互零知识证明中现阶段最有效的算法是 zk-SNARKs [10] , 它除了具备基本的零知识特性外, 还具备简洁
性的特性. 简洁性的特性指的是, 与实际计算的长度相比, 生成的零知识证据通常很小, 只需要花费更少的计算开
销就可以快速证明原始计算的有效性. 利用简洁性的特性, 可以将验证者本身需要承担的大量计算开销转移到证
明生成者上, 进而降低验证者所需要的计算资源. 本文采用的零知识证明算法是非交互式证明的算法, 在后续表述
中如不强调说明零知识证明算法均是非交互式的.
(2) 零知识证明 Rollup (zkRollup)
ZKsync [11] 是一种 zkRollup 的链下扩容方案, 它的最大特点在于采用了零知识证明来验证原始交易执行的默
克尔树根的有效性. 零知识证明具有完备性特征, 即只有当原始交易与生成的默克尔树根匹配时才能生成有效的
零知识证明. 因此, 验证者只需生成对应交易的有效零知识证明即可证明该批交易的有效性. 在 ZKsync 中, 执行
者和验证者成为同一个节点, 通常称为 Validator. 它们在执行交易生成默克尔树根的同时, 也生成零知识证明提交
到链上, 以此证明默克尔树根的有效性.
在 ZKsync 中, 还有一批巡查者 (guardians) 用于监管验证者的行为. 需要说明的是验证者无法通过造假默克
尔树根来修改底层状态, 但是有可能被 DDoS 攻击, 或者由于自身主观的恶意行为而拒绝提供验证服务. 此时巡查
者需要巡查鉴别验证者是否被 DDoS 攻击或者存在恶意行为故意不提供服务的行为, 通过监管巡查替换掉一些不
在工作状态的验证者, 对于暂时无法提供服务的验证者使用黑名单机制在用户群体间广播确认.
对于应用场景来说, ZKsync 能够迁移一定的链上智能合约代码, 但不支持通用的 EVM 兼容的智能合约, 能满
足常见的合约需求, 但合约不完全具备图灵完备性, 只能采用特殊的语言进行特殊化编译.
2 基于原生链的跨 Rollup 方案
本节研究基于原生链的跨 Rollup 方案. 首先, 本文针对单向互操作交易类型进行了设计, 该交易类型是所有
后续复杂的交易类型的基础. 其次描述了整体设计思路以及基于原生链的跨 Rollup 方案的整体流程. 之后针对验
证方案和数据存储方案, 分别展开论述. 对于链上的计算存储开销, 使用基于零知识证明的批量化交易验证方案,
利用零知识证明的验证简洁性的特性减少链上计算资源的开销. 对于链上存储资源的开销, 使用基于索引表数据
压缩的交易存储方案, 利用少部分数据出现的高频特性, 减少单笔交易的平均链上存储开销.
2.1 系统和模型假设
本节对跨 Rollup 交易进行建模, 针对单向互操作的跨 Rollup 交易类型设计了方案, 并分析了未来可在此基础
上扩展的方案.

