1. 引言
开源代码见:
- https://github.com/risc0/risc0-lean4(Lean和Rust)
ZK*FM为RISC Zero zkVM的形式化验证:
- ZK:The computer ran the right program。
- FM:The program did the right thing。
- ZK*FM:The computer did the right thing。
可使用FM来证明RISC Zero的ZK tools确实work as advertised。
https://github.com/risc0/risc0-lean4 的FM proofs与现有的RISC-V形式化算法工具兼容,从而:
- 可创建具有end-to-end correctness proofs的应用。
借助Coq proof assistant,将可证明:
- 1)(Completeness)RISC Zero’s verifier accepts every valid receipt:
- and every valid execution has a valid receipt。
- 2)(Soundness)RISC Zero’s verifier rejects invalid receipts with high probability:
- under certain well-specified assumptions。
- 3)(Uniqueness)RISC Zero’s verifier is uniquely determined by its specification:
- meaning that any two implementations must agree on all inputs。
- 4)(Compatibility)RISC Zero’s verifier characterizes RV32IM:
- including RISC Zero’s host <-> guest MMIO model and platform extensions。
从而可带来:
- 1)A precise description of RISC Zero’s security model。
- 2)An interactive textbook that explains RISC Zero’s system from the ground up。包括但不限于:
- Finite fields
- Lagrange interpolation
- Number theoretic transform
- Reed Solomon proximity
- SHA2
- HMAC
- DRBG
- Random oracles
- Fiat-Shamir
- DEEP ALI
- FRI
- RISC-V
- 3)A formally verified verifier,compiled by a formally verified toolchain。
- 3.1)Written in Coq
- 3.2)Compiled to C by CertiCoq
- 3.3)Compiled to x86/ARM/RISC-V by compcert
- 4)Compatibility with the existing RISC-V formal methods ecosystem。相关工具有:
- Verifiable C
- CertiCoq
- compcert
- bedrock/bedrock2
- sail-riscv
具体的实现方式为:
实际实现要花费很长时间:
- 需花费时间来填补所有空白。
- 即使都“完成”了,将仍需要维护。
尽管将花费很长时间,但仍可接受:
- 学术论文也有很多空白,但其仍然有用。
- we are committed to precision——致力于精确。
RISC Zero zkVM的形式化验证,影响深远:
- 1)对用户来说,有能力证明the computer did the right thing。
- 2)对科学家和工程师来说,有能力execute with confidence。
- 3)对FM社区来说,额外支持了RISC-V形式化生态。
- 4)对ZK社区来说,精准描述了RISC-V stack。
参考资料
[1] RISC Zero团队2022年5月视频 “RISC Zero: General Purpose Zero-Knowledge Computation” (Brian Retford et al.) 第46分钟开始,主题为——ZK*FM: Formally verifying a ZK RISC-V system
RISC Zero系列博客
- RISC0:Towards a Unified Compilation Framework for Zero Knowledge
- Risc Zero ZKVM:zk-STARKs + RISC-V
- 2023年 ZK Hack以及ZK Summit 亮点记
- RISC Zero zkVM 白皮书
- Risc0:使用Continunations来证明任意EVM交易
- Zeth:首个Type 0 zkEVM
- RISC Zero项目简介
- RISC Zero zkVM性能指标
- Continuations:扩展RISC Zero zkVM支持(无限)大计算
- A summary on the FRI low degree test前2页导读
- Reed-Solomon Codes及其与RISC Zero zkVM的关系
- RISC Zero zkVM架构
- RISC-V与RISC Zero zkVM的关系
- 有限域的Fast Multiplication和Modular Reduction算法实现
- RISC Zero的Bonsai证明服务
- RISC Zero ZKP协议中的商多项式
- FRI的Commit、Query以及FRI Batching内部机制
- RISC Zero的手撕STARK
- RISC Zero zkVM guest程序优化技巧 及其 与物理CPU的关键差异