作者:miles 来源:X,@Miles082510
测试对象
-
SP1 是一个高性能的开源 zkVM,用于验证任意 Rust(或任何 LLVM 编译的语言)程序的执行。SP1 利用 Plonky3,支持递归证明并支持各种加密算法,包括基于 ECC 的算法,如 Groth16。
-
RISC0 zkVM 允许证明任意 Rust 代码的正确执行。它基于 RISC-V 架构构建,本质上适用于实现标准加密哈希函数,例如 SHA-256 和 ECDSA。RISC0 采用 STARK,提供 98 位的安全级别。由于它与 LLVM 和 WASM 兼容,它支持多种编程语言,包括 C 和 Rust。
-
Nexus 是一个用 Rust 编写的模块化、可扩展、开源、高度并行化、验证者优化且对贡献者友好的 zkVM。它侧重于性能和安全性,使用 Nova 折叠方案,该方案对递归证明特别有效。Nexus 还支持预编译和定向编译,除了 Rust 之外,它还提供 C++ 支持。
-
ZkMIPS 是基于 Plonky2 和 MIPS 微架构的通用可验证计算基础设施,旨在赋能以太坊作为全球结算层。它也可以运行任意 Rust 代码。值得注意的是,zkMIPS 是此列表中唯一使用 MIPS 操作码集的 zkVM。
-
ZkWASM 遵循并支持未经修改的标准 WASM 字节码规范。由于 Rust 代码可以编译为 WASM 字节码,因此理论上可以在 zkWASM 机器上运行任何 Rust 代码,从而提供灵活性和广泛的语言支持。
-
Valida 是一个基于 STARK 的虚拟机,具有受 RISC 启发的指令集,简化了传统编程语言的目标。正在开发一个后端编译器,用于将 LLVM IR 编译为 Valida ISA,从而能够验证用 Rust、Go、C++ 和其他语言编写的程序,而源代码的更改几乎为零。
测试项目
-
Stage 1: 算术运算(Hept 100)第一阶段的重点是评估 zkVMs 处理基本算术运算的能力:加法、减法、乘法、除法、模除和平方根计算。我们围绕Heptagonal numbers (七边形数)设计了测试,这需要 zkVMs 同时处理多个算术运算
-
Stage 2: 内存消耗(Vec 10000)第二阶段评估了每个 zkVM 在重负载下管理内存的能力,此阶段的目的是识别任何内存瓶颈,并确定 zkVM 是否可以有效地管理高强度任务,测试了几种数据结构,包括列表、哈希映射、双端队列、队列、BTreeMaps、哈希集和二进制堆。每个 zkVM 都经过以下操作测试:
Insert:zkVM 向结构添加数据的速度有多快?
Delete:zkVM 是否能有效处理内存释放?
Append:zkVM 能否有效地增长数据结构?
Research:zkVM 在检索存储数据时的速度和效率如何?
测试机器配置
-
CPU: AMD EPYC 7713 "Milan" 64-core processor (128 threads total)
-
RAM: 600GiB DDR4 3200MHz ECC RAM, distributed across 16 DIMMs
-
Host OS: Proxmox 8.3
-
Hypervisor: KVM
-
Network layer: Open vSwitch
-
Machine model: Supermicro AS-2024US-TRT
测试结果
-
算术运算(Hept 100)结果:
阶段1测试结果
2.内存消耗(Vec 10000)
阶段2测试结果
总结
RISC0 成为首选。它在证明生成时间和大小方面都表现出色,同时保持合理的内存占用。凭借强大的零知识证明能力和对多种编程语言的支持,它符合隐私、性能和灵活性的需求。它在性能和效率之间的整体平衡使其成为现阶段最可行的 zkVM。
Valida 在证明生成速度和大小方面取得了令人印象深刻的结果,证明大小为 280 KB,证明时间为 < 1 秒。但是,由于 Valida 的 Rust 支持有限,因此无法进行分析。Valida 目前使用 LLVM 后端编译 Rust,转译 LLVM IR 以利用其 C/C++ 实现,这会导致在处理特定于 Rust 的数据结构或依赖项时出错。因此,无法测试复杂的内存交互,并且目前不建议将 Valida 与 Rust 代码一起使用
SP1 虽然最初很有趣,但未能满足零知识证明要求。它在算术运算中的表现值得称赞,但鉴于它缺乏 ZK 功能,不足以证明进一步考虑的合理性
Nexus 展示了一致的证明大小和可管理的内存使用情况,但其在内存密集型任务期间表现不佳,而且其证明大小(尤其是对于较大的工作负载)使其失去了成为顶级竞争者的资格。
zkMIPS 提供了可靠的证明时间,但内存问题太严重了,不容
zkWASM 的结果最差,在证明大小和生成时间方面都苦苦挣扎。尽管它可能支持 WASM 字节码,但RAM 消耗(在内存测试中高达 57 GB)过多
白话区块链|同步全球区块链资讯、区块链快讯、区块链新闻
本站所有文章数据来源:金色财经
本站不对内容真实性负责,如需转载请联系原作者
如需删除该文章,请发送本文链接至oem1012@qq.com