1. 引言
前序博客:
RISC Zero在2013年5月的0.15版本中,引入了Continuous机制:
- 移除了证明生成时的“cycle limit”限制
- 解锁了在RISC Zero zkVM中运行EVM interpreter或WASM interpreter的能力
- 扩展为可支持(无限)大计算
Continuous机制的核心思想为:
- 将execution切分为segments
- 并行证明每个segment
- 将所有结果汇总
2008年,中本聪展示了如何借助经济激励,以trustless方式解决verifiable compute,但是,该方案并不支持:
- Non-trivial computations
- 高频/低延迟交互
- 私有数据
- 扩容:所有人都必须rerun所有计算。
2016年,Zero-knowledge circuits(零知识电路)提供了部分解决方案,但存在如下问题:
- 特别复杂
- 高开销
- 高耦合性/低敏捷性
- 缺少图灵完备性
最终解决方案为:
- RISC Zero zkVM:基于RISC-V ISA指令集。
RISC Zero zkVM充分拥抱了过去几十年的计算机工程化insights,如:
- 开源更有益
- 消费级硬件 胜过 大块头硬件
- 程序员生产力取胜
- 标准化提供大量价值
- 通用性 优于 专用性
- scale扩容(规模)很重要
2. scale很重要
以Apple II为例,其最大g规格为:
- 6502 CPU clocked at 1.023 MHz
- 64 kB RAM
- 5 1/4 floppy with 140kB storage
而与之对比的是:【计算和数据需求在持续增长】
- 60 kLoc (Rust)in zkVM
- 约170k words in English language
- 约 1.1M commits to Linux kernel
- 约 175B parameters in GPT-3
这么来看scale扩容很重要。
但是ZK扩容是hard的——2023年初,ZK扩容存在的问题为:
- ZK是基于约束证明的
- 证明性能随约束数降级
- 密码学基础设置了扩容上限:如RISC Zero zkVM,其所选择的Baby Bear域,支持的扩容上限为 2 28 2^{28} 228——从而限定了cycle limit最大为 2 28 2^{28} 228。
- “传统”解决方案为:递归(recursion)
- ZK recursion理论上很强大,但实际上很复杂。
为此,希望能为应用实现自动可扩容ZK(Scalable ZK that’s automatic for applications):
- Continuations:zkVM内的扩容。
3. Continuations:zkVM内的扩容
continuations的核心思想为:
- 将execution切分为segments
- 并行证明每个segment
- 将所有结果汇总。每个receipt对应一个segment。
continuations这种设计思想的好处在于:
- zkVM可自动切分
- segment size可配置:
- 支持低内存环境
- 支持并行证明
如下为配置、执行和证明示例代码:
当前RISC Zero zkVM支持2种类型的receipt:
- 1)flat continuations
- 2)rolled up continuations
3.1 continuations工作原理
segmented执行和证明:
- 正常执行该程序:
- 每N个cycles做状态快照
- 切分证明
- 将proofs汇总
这就要求高效快照:
- Merkle-ized pre/post states
片段化执行和证明示意图为:
而Merkle-ized pre/post states示意为:
其中ImageId本质为某Merkle tree的root哈希,该Merkle tree由所有内存中的pages哈希组成。
3.2 continuations使新应用成为可能
continuations使新应用成为可能,如:
- zkEVM:如Zeth:首个Type 0 zkEVM。
- zkWASM
- Central-limit order book
- Multiplayer games
- Verifiable software compilation
- OpenID for EIP-4337(账户抽象)
参考资料
[1] RISC Zero团队2023年6月培训视频 Continuations: Scaling in zkVM (RISC Zero Study Club)
[2] RISC Zero 2023年5月视频 RISC Zero - Paul Gafni (RISC Zero)【slide见RISC Zero @ ZK Symposium】