CertiK近日宣布已完成对zkWasm项目的完整形式化验证工作。该成果基于Coq定理证明器构建的机器检查证明,确保了zkWasm电路在数学层面的正确性。尽管项目本身并非首次亮相,但其技术演进自2024年4月起便已在CertiK官方博客持续披露,当时已提出针对zkWasm电路的系统性验证框架。
zkWasm是一种支持非零知识证明的WebAssembly虚拟机,允许开发者在不暴露具体计算内容的前提下,验证程序执行的正确性。该项目源自Delphinus Lab,所有依赖其构建的应用均建立在底层电路与约束系统的可靠性之上。若关键约束缺失,恶意方可能伪造有效证明,从而破坏整个验证体系的可信基础。
为应对这一风险,CertiK将形式化验证定位为超越传统审计与测试的关键环节。其核心优势在于:证明检查器不仅验证特定测试用例,而是从数学上保证代码对任意输入都符合预期规范。
本次验证确立了两大核心属性:健全性(Soundness)——所有被接受的执行轨迹均对应合法的Wasm运行;知识健全性(Knowledge Soundness)——证明者无法生成错误执行的有效证明。验证范围涵盖算术运算、位操作、内存访问、控制流及函数调用等关键模块。
方法上,CertiK将zkWasm的Halo2电路逻辑转换为Coq语言,并对转换过程中的每项命题进行严格证明。整个项目共涉及约33,000行Coq代码,其中约21,000行为正式证明部分。转化过程由人工完成,力求贴近原始Rust代码以减少引入偏差。值得注意的是,尽管Coq项目已于2025年起更名为Rocq,CertiK仍沿用旧称。
在验证过程中,团队识别出若干细微缺陷并完成修复。官网披露的具体问题包括:一处因手动审查遗漏的内存加载约束,以及一个影响Return指令的约束缺失。这两个漏洞均可能导致恶意证明者绕过验证机制,获取无效执行的合法证明。
CertiK并非唯一推动此类工作的机构。以太坊基金会正投入2,000万美元资金,开展zkEVM的形式化验证计划。据2026年研讨会摘要显示,相关研究已持续超过一年,多支团队参与其中。Certora亦于今年2月获得资助,用于验证自动预编译(autoprecompiles)优化方案。
此外,Nethermind团队采用Lean定理证明器构建工具链,成功在Scroll的Keccak-256电路中发现关键漏洞。该电路随后被弃用,团队指出由于证明者中心化,实际攻击风险较低。
CertiK明确指出,本次验证仅聚焦于Halo2电路相对于WebAssembly语义的健全性,不涵盖其他组件。包括构建表格的Rust代码、Wasmi解释器、Halo2自身实现、外部调用指令处理逻辑,以及部分生成约束的代码段,均未纳入形式化证明范围。
指令解码逻辑仅通过人工审计确认,而外部调用因缺乏约束被直接跳过。因此,当前的安全保障仅限于电路层,其余部分仍依赖信任模型。
目前公开资料存在明显限制:GitHub仓库虽发布定义与定理声明,但证明部分以占位符替代。公告未说明是否将完整证明开源、验证所针对的zkWasm版本,也未说明自2024年以来的变更细节。最终的可靠性仍取决于外部组件如Halo2本身的可信程度,而该部分明确不在本次验证范围内。