Skip to content

Instantly share code, notes, and snippets.

@gokulsan
Created July 24, 2020 07:14
Show Gist options
  • Save gokulsan/dee1040e2b001d9143a7ecbaaeb6968a to your computer and use it in GitHub Desktop.
Save gokulsan/dee1040e2b001d9143a7ecbaaeb6968a to your computer and use it in GitHub Desktop.
Differential Privacy and Database Queries
The whole paradigm of differential privacy is attaining broader significance in the event of contact tracing and social distancing applications.
The paradigm of differential privacy has evolved significantly in these three years.
Adding noise based on the sensitivity of a question is the heart of differential privacy.
At the moment, there are two approaches to differential privacy.
The noise that protects the data set is either added after the fact by the party that collected the information (known as centralized differential privacy) or the noise is directly built into the act of collecting data (local differential privacy, or random response). In the local version, there’s not even an original “true” database to safe keep — the holder of the information never got it in the first place.
Hence the need to customise the database engine is not always there in the contemporary approaches.
This repository contains a query analysis and rewriting framework to enforce differential privacy for general-purpose SQL queries.
The rewriting engine can automatically transform an input query into an intrinsically private query which embeds a differential privacy mechanism in the query directly;
the transformed query enforces differential privacy on its results and can be executed on any standard SQL database.
This approach supports many state-of-the-art differential privacy mechanisms; the code includes rewriters based on Elastic Sensitivity and Sample and Aggregate methods.
Recently, there are some interesting tools dynamically enforce differential privacy on data without the use of a custom database or custom query language. Immuta is one of the frontrunners in this regard.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment