Language support for differentially-private programming is both crucial and delicate. While elaborate program logics can be very expressive, type-system based approaches using linear types tend to be more lightweight and amenable to automatic checking and inference, and in particular in the presence of higher-order programming. Since the seminal design of Fuzz, which is restricted to $\epsilon$-differential privacy, a lot of effort has been made to support more advanced variants of differential privacy, like ($\epsilon$,$\delta$)-differential privacy. However, supporting these advanced privacy variants while also supporting higher-order programming in full has been proven to be challenging. We present Jazz, a language and type system which uses linear types and latent contextual effects to support both advanced variants of differential privacy and higher-order programming. Even when avoiding advanced variants and higher-order programming, our system achieves higher precision than prior work for a large class of programming patterns. We formalize the core of the Jazz language, prove it sound for privacy via a logical relation for metric preservation, and illustrate its expressive power through a number of case studies drawn from the recent differential privacy literature.
翻译:虽然精心设计的方案逻辑可以非常直观,但使用线性类型的基于类型系统的方法往往比较轻轻,容易自动检查和推断,特别是在有更高层次的编程的情况下。自Fuzz的开创性设计(限制在$\epsilon$-productive上)以来,我们已作出大量努力,支持差异隐私的更先进的变体,如$\epsilon$,$\delta$(delta$)-process。然而,事实证明,支持这些先进的隐私变体,同时全面支持更高级的编程具有挑战性。我们介绍了Jazz,一种使用线性类型和潜在背景效应的语言和类型系统,用于支持差异隐私和更高层次编程的先进变体。即使避免了先进的变体和更高层次的编程,我们的系统也比以往对大类编程模式的工作更加精确。我们正式了爵士语言的核心,通过衡量标准保存的逻辑关系证明隐私合理,并通过最近从不同隐私文献中提取的一些案例研究来说明其明确的力量。