Specification

Differential Privacy

**Draft.** Reference implementation: `crates/confium-privacy/src/dp.rs`.


status: accepted

Status

Draft. Reference implementation: crates/confium-privacy/src/dp.rs.

Motivation

Aggregating user data leaks information even when individual records are “anonymized”. Differential privacy (DP) provides formal, quantifiable guarantees about how much any individual’s contribution affects the output.

Scope

  • Pure DP (ε-DP)
  • Approximate DP ((ε, δ)-DP)
  • Zero-concentrated DP (zCDP) — better composition
  • Renyi DP (RDP) — better analysis
  • Common mechanisms: Laplace, Gaussian, Exponential

Out of scope

  • Local DP (we cover central DP with trusted curator)
  • Synthetic data generation (separate feature)

Specification

Mechanism

Given query f with sensitivity Δf:

  • Laplace mechanism: f(D) + Lap(Δf/ε)
  • Gaussian mechanism: f(D) + N(0, (Δf)²/(2ε)) for zCDP

Composition

k-fold composition under zCDP: total ρ = Σ ρ_i.

Budget tracking

let mut budget = ZcdpBudget::new(rho_total=1.0);
let q1 = budget.laplace_mechanism(query1, sensitivity=1.0, epsilon=0.1);
let q2 = budget.gaussian_mechanism(query2, sensitivity=1.0, rho=0.5);

Security considerations

  • ε is a global budget; running queries beyond it loses all guarantees.
  • Sensitivity computation MUST be done carefully — underestimating sensitivity breaks privacy.
  • Budget tracking MUST be persistent (in-memory budget resets on restart).

References

  • Dwork, C., & Roth, A. (2014). The Algorithmic Foundations of Differential Privacy. Foundations and Trends in Theoretical Computer Science.
  • Confium source: crates/confium-privacy/src/dp.rs
Edit on GitHub github.com/confium/specs/blob/main/specs/33-differential-privacy.adoc