Zirgen 是一种领域特定语言的编译器,该语言也称为“zirgen”,用于为 RISC Zero 证明系统生成算术电路。
在大多数情况下,RISC Zero 的用户应当使用 Rust 编写 zkApp,并使用我们的 RISC-V zkVM,而不是直接用 Zirgen 构建它们。然而,有时将应用程序的某些部分编写为算术电路是必要或可取的,以便直接与我们的证明系统集成并获得更好的性能。RISC Zero zkVM 自身的电路就是用 Zirgen 编写的。Zirgen 使得为应用程序的重要部分构建加速器成为可能,甚至可以通过证明组合构建集成到 RISC Zero 生态系统中的其他完整虚拟机。话虽如此,它仍是一个进行中的工作,并且还有不少粗糙之处。
将电路变更引导到 risc0 和 risc0-ethereum
我们还在开发与 Circom 的集成——这将使得生成递归电路程序成为可能,用于验证任意 Circom 电路的见证。相关代码可在此处找到。
graph TD;
A[Zirgen] --> B[Zirgen Compiler]
C[Circom] --> B
B --> D[Rust code]
B --> E[C++ code]
B --> F[Recursion VM predicates]