@inproceedings{4a3b7b913d5f41ea94daab70ef98d7c0,
title = "ZKSMT: A VM for Proving SMT Theorems in Zero Knowledge",
abstract = "Verification of program safety is often reducible to proving the unsatisfiability (i.e., validity) of a formula in Satisfiability Modulo Theories (SMT): Boolean logic combined with theories that formalize arbitrary first-order fragments. Zero-knowledge (ZK) proofs allow SMT formulas to be validated without revealing the underlying formulas or their proofs to other parties, which is a crucial building block for proving the safety of proprietary programs. Recently, Luo et al. (CCS 2022) studied the simpler problem of proving the unsatisfiability of pure Boolean formulas but does not support proofs generated by SMT solvers. This work presents ZKSMT, a novel framework for proving the validity of SMT formulas in ZK. We design a virtual machine (VM) tailored to efficiently represent the verification process of SMT validity proofs in ZK. Our VM can support the vast majority of popular theories when proving program safety while being complete and sound. To demonstrate this, we instantiate the commonly used theories of equality and linear integer arithmetic in our VM with theory-specific optimizations for proving them in ZK. ZKSMT achieves high practicality even when running on realistic SMT formulas generated by Boogie, a common tool for software verification. It achieves a three-order-of-magnitude improvement compared to a baseline that executes the proof verification code in a general ZK system.",
author = "Daniel Luick and Kolesar, {John C.} and Timos Antonopoulos and Harris, {William R.} and James Parker and Ruzica Piskac and Eran Tromer and Xiao Wang and Ning Luo",
note = "Publisher Copyright: {\textcopyright} USENIX Security Symposium 2024.All rights reserved.; 33rd USENIX Security Symposium, USENIX Security 2024 ; Conference date: 14-08-2024 Through 16-08-2024",
year = "2024",
language = "English (US)",
series = "Proceedings of the 33rd USENIX Security Symposium",
publisher = "USENIX Association",
pages = "3837--3854",
booktitle = "Proceedings of the 33rd USENIX Security Symposium",
}