Skip to main content
QUICK REVIEW

[论文解读] Verifiable Provenance of Software Artifacts with Zero-Knowledge Compilation

Javier Ron, Monperrus, Martin|arXiv (Cornell University)|Feb 12, 2026
Security and Verification in Computing被引用 0
一句话总结

本论文提出 CosmicTurtle:在零知识虚拟机中对软件进行编译,生成编译后的二进制以及绑定源代码、编译器身份和输出的密码学证明。

ABSTRACT

Verifying that a compiled binary originates from its claimed source code is a fundamental security requirement, called source code provenance. Achieving verifiable source code provenance in practice remains challenging. The most popular technique, called reproducible builds, requires difficult matching and reexecution of build toolchains and environments. We propose a novel approach to verifiable provenance based on compiling software with zero-knowledge virtual machines (zkVMs). By executing a compiler within a zkVM, our system produces both the compiled output and a cryptographic proof attesting that the compilation was performed on the claimed source code with the claimed compiler. We implement a proof-of-concept implementation using the RISC Zero zkVM and the ChibiCC C compiler, and evaluate it on 200 synthetic programs as well as 31 OpenSSL and 21 libsodium source files. Our results show that zk-compilation is applicable to real-world software and provides strong security guarantees: all adversarial tests targeting compiler substitution, source tampering, output manipulation, and replay attacks are successfully blocked.

研究动机与目标

  • 为编译产物在不进行完全重建或无需可信硬件的前提下,建立密码学可追溯性保证。
  • 在编译期间将源代码摘要、编译器身份绑定到可验证的证明中。
  • 使任何方在不重现构建的情况下独立验证来源。
  • 在真实世界的加密库和合成程序上评估可行性。

提出的方法

  • 在零知识 VM 内执行编译器以生成二进制和简洁的正确执行证明。
  • 在证明中绑定输入源摘要和编译器身份(ImageID)。
  • 在不重新运行构建的情况下,验证证明与提交的源和编译器是否一致。
  • 通过握手机制在生产运行前固定编译器二进制(或其身份)。
  • 原型 CosmosTurtle 使用 RISC Zero zkVM,ChibiCC C 编译器跨编译为 RISC-V。

实验结果

研究问题

  • RQ1零知识执行是否能够提供密码学证明,证明特定源代码被声称的编译器编译生成给定二进制?
  • RQ2该方法是否能抵抗编译器替换、源代码篡改、二进制篡改和重放攻击?
  • RQ3在现实软件和加密库上的 zk-编译与验证的性能特征如何?

主要发现

  • zk-编译产生绑定源摘要、编译器身份和输出的密码学凭证。
  • 系统成功对 252 个程序进行 zk-编译与验证(200 个合成 Csmith 程序、31 个 OpenSSL 文件、21 个 libsodium 文件)。
  • 安全性测试显示对编译器替换、源代码篡改、输出操作和重放攻击有抵抗力。
  • 验证比证明生成更快,使在一次昂贵的证明生成后可进行多次验证。
  • 证明大小随程序规模变化;对于较大输入,凭证可以超过 100 MB。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。