Proving Differential Privacy with Shadow Execution
Not on the map. Why?
Abstract (arXiv)
Recent work on formal verification of differential privacy shows a trend toward usability and expressiveness -- generating a correctness proof of sophisticated algorithm while minimizing the annotation burden on programmers. Sometimes, combining those two requires substantial changes to program logics: one recent paper is able to verify Report Noisy Max automatically, but it involves a complex verification system using customized program logics and verifiers. In this paper, we propose a new proof technique, called shadow execution, and embed it into a language called ShadowDP. ShadowDP uses shadow execution to generate proofs of differential privacy with very few programmer annotations and without relying on customized logics and verifiers. In addition to verifying Report Noisy Max, we show that it can verify a new variant of Sparse Vector that reports the gap between some noisy query answers and the noisy threshold. Moreover, ShadowDP reduces the complexity of verification: for all of the algorithms we have evaluated, type checking and verification in total takes at most 3 seconds, while prior work takes minutes on the same algorithms.
Key facts. Cited by 2 papers in the map (data through 14 Oct 2026). First posted on arXiv 28 Mar 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 1; 2022: 0; 2023: 0; 2024: 0; 2025: 1.
2 papers.
- 2025The Hitchhiker's Guide to Efficient, End-to-End, and Tight DP Auditingcited by 5
- 2021Learning Differentially Private Mechanismscited by 0
- 2025The Hitchhiker's Guide to Efficient, End-to-End, and Tight DP Auditing20 Jun 2025
- 2021Learning Differentially Private Mechanisms4 Jan 2021