开发者必读。撰文:a16z crypto 编译:Odaily 星球日报 Golem zkVM(零知识虚拟机)承诺将 SNARK 技术大众化,让任何人都能证明其程序正确执行了给定输入或见证。其核心优势在于优化开发者体验,但当前面临安全性和性能的双重挑战。要实现 zkVM 的愿景,设计者必须攻克这些难关。本文将分阶段解析 zkVM 开发进程,指出完成这些目标可能需要数年时间。
挑战
从安全角度看,zkVM 作为复杂软件项目仍存在诸多漏洞。性能方面,证明程序正确执行的速度可能比本地运行慢数十万倍,导致多数应用难以落地。尽管如此,区块链行业普遍将 zkVM 视为可立即部署的技术。部分项目已投入巨额计算资源生成链上活动证明,但这只是表面功夫——由于 zkVM 尚不成熟,这些证明要么依赖许可机制,要么更容易遭受攻击。要打造安全高效的 zkVM,至少还需数年时间。本文将分阶段阐述具体目标,帮助社区认清现实,专注实质性突破。
安全阶段
基于 SNARK 的 zkVM 包含两大关键组件:多项式交互式 Oracle 证明(PIOP)和多项式承诺方案(PCS)。zkVM 通过将执行过程转化为约束系统,再应用 SNARK 证明约束满足度,强制虚拟机正确操作寄存器和内存。确保此类复杂系统无错误唯有形式化验证。安全阶段分为三个子阶段,分别针对协议正确性、验证器实现和证明器实现。
安全阶段 1:协议正确性
需完成以下验证:
– PIOP 可靠性的形式化证明
– PCS 在特定加密假设下的约束力证明
– Fiat-Shamir 在随机预言模型中的安全性证明
– 约束系统与 VM 语义的一致性证明
若需零知识特性,还需验证信息隐藏性。若涉及递归,必须逐层验证所有组件。
安全阶段 2:验证器实现
需形式化验证 Rust 或 Solidity 等语言的验证器实现与协议一致。此阶段专注验证器而非证明器,原因在于:
– 验证器正确性即保证系统可靠性
– 验证器实现比证明器简单一个数量级
安全阶段 3:证明器实现
需验证证明器能生成符合前两阶段标准的证明系统。若需零知识,还需验证隐私保护属性。
预计时间表
第一阶段有望逐步推进,但完全达标至少需两年;第二、三阶段可部分并行,但任何 zkVM 至少需四年才能达到第三阶段。
关键注意事项
Fiat-Shamir 安全性存在未解之谜,随机预言模型过于理想化,可能导致实际系统存在漏洞。无递归系统更安全,但字节码缺陷会削弱证明价值。现阶段应优先满足安全性能要求,暂缓后量子时代考虑。
性能现状
当前 zkVM 证明开销达原生执行成本的百万倍。尽管部分项目淡化这一差距,但:
– 百万倍差距仍不可接受
– 扩容计算量只会加剧问题
– 区块链应用要求远低于以太坊
– GPU 加速和预编译无法改变根本问题
性能衡量标准
SNARK 性能包含三要素:底层证明系统效率、应用优化和工程加速。本文聚焦基础开销,排除其他因素干扰。
性能阶段
设定五级里程碑:
– 第一阶段:合理验证成本
– 证明大小小于见证大小
– 验证速度不低于原生执行
– 第二阶段及以后:
– 最大证明大小 256 KB
– 最大验证时间 16 毫秒
速度阶段
– 第一阶段:单线程证明慢十万倍
– 第二阶段:单线程证明慢一万倍,或通过 FPGA 实现同等效果
– 第三阶段:自动合成预编译实现千倍开销
内存阶段
– 第一阶段:证明器内存少于 2 GB
– 第二阶段:证明器内存少于 200 MB
预编译争议
预编译虽能加速特定任务,但存在三大缺陷:
– 效率不足:核心系统效率低下
– 安全风险:手写预编译易出错
– 体验差:手动编写和调用预编译
I/O 开销问题
预编译在处理输入输出时产生大量开销,且无法利用 RAM。跨链场景需要多样化方案,重复预编译不可持续。
预计时间表
部分 zkVM 或将在近期实现第一阶段目标,但后续阶段仍需数年时间。
总结
zkVM 的安全性和性能相互关联,安全提升可能伴随性能下降。现阶段应专注基础建设,避免炒作误导。通过明确目标,我们终将实现这一愿景,但需要持续努力。欢迎加入深潮 TechFlow 官方社群和订阅渠道获取更多信息。
本文网址:http://www.idea2003.cn/news/1202.html