主流ZKVM性能測試報告
作者:miles 來源:X,@Miles082510
測試對象
-
SP1 是一個高性能的開源 zkVM,用于驗證任意 Rust(或任何 LLVM 編譯的語言)程序的執(zhí)行。SP1 利用 Plonky3,支持遞歸證明并支持各種加密算法,包括基于 ECC 的算法,如 Groth16。
-
RISC0 zkVM 允許證明任意 Rust 代碼的正確執(zhí)行。它基于 RISC-V 架構(gòu)構(gòu)建,本質(zhì)上適用于實現(xiàn)標準加密哈希函數(shù),例如 SHA-256 和 ECDSA。RISC0 采用 STARK,提供 98 位的安全級別。由于它與 LLVM 和 WASM 兼容,它支持多種編程語言,包括 C 和 Rust。
-
Nexus 是一個用 Rust 編寫的模塊化、可擴展、開源、高度并行化、驗證者優(yōu)化且對貢獻者友好的 zkVM。它側(cè)重于性能和安全性,使用 Nova 折疊方案,該方案對遞歸證明特別有效。Nexus 還支持預(yù)編譯和定向編譯,除了 Rust 之外,它還提供 C 支持。
-
ZkMIPS 是基于 Plonky2 和 MIPS 微架構(gòu)的通用可驗證計算基礎(chǔ)設(shè)施,旨在賦能以太坊作為全球結(jié)算層。它也可以運行任意 Rust 代碼。值得注意的是,zkMIPS 是此列表中唯一使用 MIPS 操作碼集的 zkVM。
-
ZkWASM 遵循并支持未經(jīng)修改的標準 WASM 字節(jié)碼規(guī)范。由于 Rust 代碼可以編譯為 WASM 字節(jié)碼,因此理論上可以在 zkWASM 機器上運行任何 Rust 代碼,從而提供靈活性和廣泛的語言支持。
-
Valida 是一個基于 STARK 的虛擬機,具有受 RISC 啟發(fā)的指令集,簡化了傳統(tǒng)編程語言的目標。正在開發(fā)一個后端編譯器,用于將 LLVM IR 編譯為 Valida ISA,從而能夠驗證用 Rust、Go、C 和其他語言編寫的程序,而源代碼的更改幾乎為零。
測試項目
-
Stage 1: 算術(shù)運算(Hept 100)第一階段的重點是評估 zkVMs 處理基本算術(shù)運算的能力:加法、減法、乘法、除法、模除和平方根計算。我們圍繞Heptagonal numbers (七邊形數(shù))設(shè)計了測試,這需要 zkVMs 同時處理多個算術(shù)運算
-
Stage 2: 內(nèi)存消耗(Vec 10000)第二階段評估了每個 zkVM 在重負載下管理內(nèi)存的能力,此階段的目的是識別任何內(nèi)存瓶頸,并確定 zkVM 是否可以有效地管理高強度任務(wù),測試了幾種數(shù)據(jù)結(jié)構(gòu),包括列表、哈希映射、雙端隊列、隊列、BTreeMaps、哈希集和二進制堆。每個 zkVM 都經(jīng)過以下操作測試:Insert:zkVM 向結(jié)構(gòu)添加數(shù)據(jù)的速度有多快?Delete:zkVM 是否能有效處理內(nèi)存釋放?Append:zkVM 能否有效地增長數(shù)據(jù)結(jié)構(gòu)?Research:zkVM 在檢索存儲數(shù)據(jù)時的速度和效率如何?
測試機器配置
-
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
測試結(jié)果
-
算術(shù)運算(Hept 100)結(jié)果: