What privacy forbids
- You cannot define privacy as a property of an output. For every such property, some prior defeats it.
- You cannot reach privacy with any deterministic transformation, because linkability is identity (a stable pseudonym is still a stable key).
- You cannot answer arbitrary aggregates forever without enabling reconstruction.
- You cannot have utility on fine-grained slices and a meaningful ε on the same data.
- You cannot compose syntactic guarantees across releases.
- You cannot bound disclosure about correlated individuals.
- You cannot delete from a trained model cheaply.
- You cannot have an erasure mechanism that is itself non-disclosive, because the before-and-after difference is a signal.
Escapes and their prices
| Escape | Buys | Pays |
|---|---|---|
| k-anonymity family | intuitive, no noise, keeps true values | no composition, collapses in high dimensions, the definition never terminates |
| Differential privacy | composable, independent of the adversary, quantified | noise ∝ sensitivity/ε, budget depletes on read, useless on small slices, ε is unprincipled |
| Data minimization | protection at zero utility cost per unit | negates the platform's collect-everything premise; no internal forcing function |
| Deletion vectors / rewrite | real erasure of source rows | table-rewrite and compaction debt, incomplete reach, aggregates and models out of scope |
| Consent as a data column | actually enforced at read | intersection semantics shrink usable data at every join |
| Consent as a metadata tag | cheap, no query cost | convention only; not in the narrowest waist |
| MPC / private set intersection | inputs never shared, no trusted party | orders-of-magnitude overhead; output disclosure not addressed at all |
| DP-trained synthetic data | one ε payment, unlimited later queries | the tail is destroyed, which is exactly the records that matter for edge cases |