详解powdr,这是一个为零知识虚拟机(zkVM)设计的模块化技术栈
原文作者:powdr labs
原文来源:Twitter @powdr_labs
编译:MarsBit,MK
详解powdr,这是一个为零知识虚拟机(zkVM)设计的模块化技术栈!
今年早些时候,@ethchris、@vanderkriek和@leonardoalt开始了powdr项目,以改进zkVM的工具。在@ethereum基金会的持续支持下,这个团队很快将成为powdr实验室。
更多内容↓
powdr是一个zkVM语言和编译器工具包。高级powdr-asm语言可用于定义虚拟机和程序。这些程序被编译成低级约束语言。
通过自动化安全分析和优化过程,powdr生成了零知识证明所需的见证和约束。
powdr借鉴了LLVM等成熟的编译器架构的灵感:它对前端语言和后端目标都是中立的。
在前端,除了为定制VM编写的程序外,powdr还可以接收RISCV和LLVM程序,并创建执行的零知识证明。在语言层面无缝集成其他虚拟机,如WASM。
这意味着同样的编译器中间件可以用来为用Rust、C++、Solidity、AirScript等语言编写的程序生成零知识证明。
在后端,powdr寻求最大的灵活性。目前,halo2得到了支持,包括在EVM中的证明压缩、聚合和验证。我们正在努力添加eSTARK和Nova。
powdr支持自动见证生成。这不仅仅是为了方便:我们的内部约束解决器确保见证是确定性的,帮助排除在零知识开发中最可怕的声音错误。
powdr被设计为可组合性,这是支持长执行跟踪和减少证明人开销的基本特性。比如,这些是用Rust和C++等语言编写的现有大型程序所期待的。
我们设想的使用案例无疑是伟大的:
a) zkRISCV:我们的PoC zkRISCV可以用约300行的powdr-asm实现。它允许生成对no-std Rust的证明。
b) zkLLVM:与zkRISCV类似,一个通用的前端允许我们也通过Valida VM支持LLVM程序。
从长期来看,我们可以建立
c) 使用现成的EVM实现(如go-ethereum,revm,evmone)的zkEVM。
如果你想为现有程序生成零知识证明,powdr旨在成为你的编译器堆栈的即插即用替代方案。
如果你正在构建一个zkVM,powdr使你能够专注于高级架构,使编写、阅读、测试、审计、验证你的实现变得简单。
总结一下,powdr是一个对zkVM前后端中立的编译器中间件。它使为用Rust/C++等语言编写的高级程序生成零知识证明变得简单,同时也能够构建具有优秀开发者体验、生产力和性能的自定义zkVM。
我们中的一些人将在下周参加@EthCC、@zkDayofficial、ZK Paris和其他活动。如果你对𝑝𝑜𝑤𝑑𝑟感兴趣,或者想看一下演示,欢迎和我们交谈!