把雜訊從統計裡拿掉,聽起來像是在「還資料一個清白」。Damien Desfontaines 的判斷剛好相反——所有跟差異隱私競爭的方法,骨子裡也都在加雜訊,差別只在差異隱私把這筆帳算得太誠實,誠實到沒辦法假裝問題不存在。
普查局想拿掉差異隱私的雜訊——為什麼統計學家急著反對
你會 SQL,會 hash,知道「去識別化」大概是把姓名、身分證號那幾欄拿掉。這篇要補的,是另一件你可能沒真正想過的事:當一份資料的「個人欄位」全部拿掉、只剩下一堆統計總和,這份資料到底還洩不洩漏個人。美國商務部 2026 年 6 月下了一道命令,要普查局(U.S. Census Bureau)把差異隱私(differential privacy)的雜訊從公開統計產品裡移除。差異隱私從業者 Desfontaines 在 2026 年 6 月 11 日的一篇文章裡,把這件事稱為一場災難。讀完這篇,你會知道差異隱私到底保證什麼、ε 這個參數在控制什麼、為什麼 2020 年普查要加雜訊,以及把雜訊拿掉之後會壞掉什麼。
只發布總和,為什麼還會洩漏個人——重建攻擊的算術
先把場景講清楚,因為整篇文章的緊張感都從這裡長出來。普查局不會公開「張三住哪、幾歲、什麼種族」這種逐筆紀錄。它公開的是聚合統計:某個 census block 裡有幾個人、年齡中位數多少、各種族各幾人、各年齡層男女各幾人。直覺上,總和應該很安全——你看到「這個 block 有 7 個人,中位數年齡 34」,看不出任何一個具體的人。
普查局自己也是這樣相信的。Desfontaines 描述他們長年的做法時寫道:「Then, they realized that this technique was actually very unsafe, and that it was pretty easy to reconstruct individual records using the published statistics.」——他們後來發現這個做法其實很不安全,用公開統計就能相當容易地重建出個別紀錄。這不是理論威脅,是普查局在 2020 年前後親手示範過的攻擊。
重建攻擊的核心,Desfontaines 用一句話點破:「privacy attacks on statistical releases are about solving a system of equations.」——對統計發布的隱私攻擊,本質上就是解一組聯立方程式。每一條公開的統計,都是一條關於底層個人的方程式。「總人口 7」是一條;「白人 4 人」是一條;「30 歲以上 5 人」「30 歲以上的女性 2 人」又各是一條。當你把同一個小群體的上百條精確統計疊在一起,這組方程式的解空間會被夾得越來越窄,窄到最後只剩下一組可能的逐筆紀錄。攻擊者沒拿到任何「個人欄位」,卻把整個 block 的每個人重新拼了出來。
用一個你會 SQL 的腦袋走一遍就懂。假設某個 block 只有 7 個人,普查公開了一堆 GROUP BY 的計數:按種族分、按年齡層分、按性別分、按「種族 × 性別」交叉分、按「年齡 × 性別」交叉分。每一條 SELECT count(*) ... WHERE ... 的結果,都是對這 7 個人的一道線性約束。把每個人用一組未知變數表示——種族是什麼、性別是什麼、年齡落在哪——你手上就有一個變數遠少於約束的超定方程組。線性代數的常識是:當獨立約束的數量逼近未知數的數量,解空間會塌縮成單點。普查公開的交叉統計往往有上百條,而小 block 的未知數只有幾十個,於是塌縮幾乎是必然。攻擊者甚至不需要解得完美——只要把候選解收斂到「這個人是 41 歲白人男性的機率 99%」,個人就已經被識別了。
這也解釋了為什麼「只拿掉姓名身分證」這種傳統去識別化在統計發布裡根本不夠。傳統去識別化擔心的是「某一欄直接寫著是誰」;重建攻擊不碰任何單一欄位,它攻擊的是「許多欄位的計數疊在一起所隱含的聯立關係」。你 hash 掉 user id 沒有用,因為攻擊者要的從來不是那個 id,而是那組能把人夾出來的方程式。普查局示範這件事,等於宣告了一個讓整個統計界重新思考的結論:聚合不等於匿名。
這裡有一個關鍵直覺要先種下去:讓攻擊變容易的,正是「精確」本身。Desfontaines 把這點寫得很白:「It is such an easier task when you know for sure that the statistics are all perfectly accurate. Noise forces you to compute probabilities, quantify the uncertainty, carefully consider baselines, and so on.」——當你確定所有統計都完全精確,攻擊任務簡單太多了;雜訊逼你去算機率、量化不確定性、仔細考慮 baseline。一組方程式只要每個係數都是鐵板釘釘的整數,高斯消去法就能解;一旦右邊那個整數變成「7 ± 某個隨機量」,方程組就從「解出唯一答案」退化成「估計一個機率分布」。雜訊不是讓資料變髒,是把攻擊者的工具從代數降級成統計推論。
差異隱私到底保證什麼——一個關於「你在不在資料裡」的承諾
知道了攻擊長什麼樣,才好理解防禦在防什麼。普查局處理這類問題的整個領域,有個名字。Desfontaines 寫道:「This field is called disclosure avoidance in statistical communities.」——在統計界,這個領域叫 disclosure avoidance(揭露避免)。它的目標是「publish useful statistics while protecting the privacy of the original data」——在保護原始資料隱私的同時,發布有用的統計。手段有一整箱:suppression(壓制小格)、coarsening(粗化分組)、sampling(抽樣)、swapping(交換)、contribution bounding(貢獻上限)、noise addition(加雜訊)。
差異隱私不是這箱工具裡的一把,而是一種「達標條件」。Desfontaines 的說法是:「Some of these techniques, when combined, achieve a definition called differential privacy. This definition has a lot of nice fundamental properties and is widely considered the gold standard of privacy protection among scientists.」——其中某些技術組合起來,會達到一個叫差異隱私的定義;這個定義有很多漂亮的基本性質,在科學界被廣泛視為隱私保護的黃金標準。它具體怎麼達標?「To achieve it, scientists typically rely on a combination of contribution bounding and carefully-calibrated noise addition.」——靠的是貢獻上限,加上精心校準的雜訊。
差異隱私的承諾,可以用一句不帶數學的話講完:對任何一個人來說,「你有沒有出現在這份資料裡」幾乎不會改變最後發布的統計長相。把你抽掉、重跑一次,輸出的機率分布跟原本幾乎一樣——「幾乎」這個詞有多嚴格,就由一個參數決定。攻擊者因此沒辦法從輸出反推「這個人在不在」,因為在與不在,輸出看起來都差不多。這跟前一節的重建攻擊正好對位:重建攻擊靠的是輸出對個人「太敏感」,差異隱私就從定義上把這個敏感度壓到一個可調的上限。Desfontaines 文中沒有展開 ε 的形式定義,下面關於 ε 與校準的數量化說法是這個領域的標準理解,合理的推測是原文把這些當成讀者可以另查的背景;本文用它來搭建直覺,不算在原文的斷言裡。
ε 在賣什麼——雜訊量、隱私強度、準確度的三方交易
差異隱私把「幾乎一樣」量化成一個參數,習慣寫成 ε(epsilon)。你只要記住方向就夠用:ε 越小,要求「有你沒你輸出都長得一樣」越嚴,因此得加越多雜訊,隱私越強,但統計越不準;ε 越大,雜訊越少,統計越接近真值,隱私越鬆。ε 不是一個「安不安全」的開關,是一根連續的旋鈕,旋鈕的一端是隱私、另一端是準確度,你只能在中間選一個點。
校準雜訊的機制其實很樸素:你想保護的統計,加上一筆從某個分布(典型是 Laplace 分布)抽出來的隨機數,分布的寬度跟 ε 成反比。ε 小、分布寬,抽出來的雜訊大;ε 大、分布窄,雜訊小。下面這張圖把同一個真值在兩種 ε 下的雜訊分布疊在一起——窄峰是高 ε(準但鬆),寬峰是低 ε(糊但嚴)。
下面這個 widget 讓你親手轉這根旋鈕。拖 ε,看兩條曲線怎麼分開:一條是隨 ε 增大而下降的「典型雜訊量」(隱私的代價),一條是隨 ε 增大而上升的「統計可用度」(準確度的回報)。兩條線在中間交叉的那一帶,就是普查局實際在挑的工作點。
拖滑桿掃 ε · 隱私代價與統計可用度兩條曲線
ε 還有一個工程師會在意的性質:它是可以拆分與累加的。一個資料產品通常不只發布一條統計,而是上千條,每一條都從同一份底層資料裡榨出一點資訊。差異隱私的框架把總隱私預算 ε 切成小塊分配給各條統計——你想多發一條精確的交叉表,就得從別處扣回預算,否則總和會超支。這就是為什麼普查那種「很多統計、群體又小」的產品最棘手:統計越多、每條分到的預算越薄、要嘛每條都加重雜訊(全糊),要嘛少發幾條(壓制)。前一節重建攻擊之所以可怕,正是因為「上百條精確統計疊在一起」;差異隱私的預算累加,恰好是對這種疊加效應的正面記帳。沒有這個記帳,你發了多少條統計、總共漏了多少隱私,根本算不出來。
所以 ε 不只是一個雜訊旋鈕,它是一本帳。你每發一條統計就記一筆支出,帳上的餘額告訴你還能發多少、發到哪裡就該停。把這套換成 swapping 或 Cell Key,雜訊照加,但那本帳不見了——你說不出「這份產品總共付出了多少隱私」,因為那些方法沒有一個能把跨統計的洩漏加總起來的量。這正是下一節要展開的關鍵差別。
有一件事 Desfontaines 講得特別清楚,值得抄下來:普查局選的那組參數,並不是因為它們提供了某種鐵板般的可證明保障。他寫道:「Its exact privacy parameters were chosen not because they provided rock-solid provable guarantees, but because they squeezed most usefulness out of the data while reaching an acceptable level of privacy protection.」——之所以選那組參數,不是因為它們給了鐵打的可證明保障,而是因為它們在達到可接受的隱私水準下,把資料的可用性榨到最多。換句話說,ε 從來不是「設成這個值就安全了」,它是工程師在隱私與可用之間談判出來的價碼。差異隱私的價值不在於它讓你安全,而在於它逼你把這個價碼明明白白寫在帳上。
那箱工具其實都在加雜訊——拿掉差異隱私並不能拿掉這場交易
命令說的是「移除差異隱私的雜訊」,言下之意是回到 2020 年以前那些「不加雜訊」的老方法。Desfontaines 的反駁很尖銳:那些競爭方法,根本也都在加雜訊。他寫道:「all competing techniques also rely on noise addition.」並且逐個點名:「The Cell Key method...adds noise to statistics. Swapping...also injects randomness into the process. Sampling is everywhere in statistical work. Hell, even imputation technically adds noise to the data!」——Cell Key 方法對統計加雜訊;swapping 也往流程裡注入隨機性;抽樣在統計工作裡無所不在;連 imputation 技術上也是在對資料加雜訊。
這不是修辭。Cell Key 方法的官方文件(統計揭露控制手冊)把機制講得很白:「The Cell Key Method is a post tabular perturbative disclosure control method, that adds noise to the original table cell values.」——Cell Key 是一種事後的表格擾動式揭露控制方法,對原始表格的格值加雜訊。它甚至刻意讓同一格在不同表裡被擾動成一樣:「The cells are adjusted in such a way that the same cell is perturbed in the same way even when it appears across different tables.」——把格子調整成「同一格即使出現在不同表裡,也以相同方式被擾動」。換句話說,被當成「非差異隱私替代品」端上來的 Cell Key,本身就是一套加雜訊的方法。
| disclosure avoidance 工具 | 它在做什麼 | 有沒有在加隨機性 |
|---|---|---|
| suppression | 把小到危險的格子整個藏起來 | 否(但毀掉小群體資料) |
| coarsening | 把細分組合併成粗分組 | 否(犧牲解析度) |
| sampling | 只發布一部分樣本 | 是——抽樣本身就是隨機 |
| swapping | 把部分紀錄的屬性互換 | 是——往流程注入隨機性 |
| Cell Key 方法 | 對表格格值做事後擾動 | 是——對 cell value 加雜訊 |
| imputation | 補缺值 | 是——技術上也在加雜訊 |
| 差異隱私 | 校準雜訊以達到 ε 保障 | 是——而且把代價算成帳面數字 |
於是 Desfontaines 的整篇主張可以收束成一句:「taking away useful tools from the disclosure avoidance toolbox will always lead to more painful privacy/utility trade-offs.」——把有用的工具從揭露避免的工具箱裡拿走,總是會導向更痛苦的隱私/可用性取捨。拿掉差異隱私,那場隱私與準確度的交易並不會消失,你只是失去了把它算清楚的那把尺,被迫退回到 swapping、Cell Key 這些「同樣在加雜訊、但說不清楚保障多強」的舊工具。
拿掉之後會壞掉什麼——以及為什麼有人寧可看不見它
Desfontaines 對後果的判斷沒有留太多餘地。他預測未來的統計發布會落入兩種下場之一:「future statistical releases will either be useless compared to past ones, or they will be incredibly unsafe.」——未來的統計發布,要嘛跟過去比變得沒用,要嘛變得極不安全。對普查這種「很多統計、群體又很小」的複雜資料產品,他講得更具體:「For complex data products with many statistics about small groups of people (like the U.S. Census), they either destroy all utility of the data (especially for minority populations), or are very vulnerable to privacy attacks.」——對於有大量關於小群體統計的複雜資料產品(像美國普查),這些方法要嘛摧毀資料的全部可用性(尤其對少數族群),要嘛對隱私攻擊非常脆弱。
少數族群這一點不是順帶提的修飾。重建攻擊最致命的地方,正是小群體:一個 census block 裡某個種族只有 1 到 2 個人時,幾條精確統計就足以把這個人反解出來。要擋住這種攻擊,舊方法只能靠 suppression 把整格藏掉——但藏掉的結果是這個群體在資料裡直接消失,研究者、地方政府、依法需要這些數字做選區劃分與資源分配的人,全部拿不到。差異隱私的雜訊讓這些格子可以「帶著不確定性被發布」,而不是「為了安全乾脆不發」。把雜訊拿掉,小群體要嘛被攻擊、要嘛被消失。
那為什麼還有人推這道命令?Desfontaines 給的不是定論,是一個帶著明顯保留語氣的猜測。他寫道:「Differential privacy makes this trade-off explicit, and thus impossible to ignore. Maybe banning it is a way of pretending that the problem doesn't exist, in the hope that it will go away?」——差異隱私把這個取捨變得明確,因此無法忽視;也許禁掉它,是一種假裝問題不存在、期望它自己消失的方式?這是原文用問號收的一個假說,不是斷言,本文照樣保留它的問號。差異隱私的「罪」,可能恰恰在於它太誠實:它把「我們為了統計可用,犧牲了多少隱私」這筆帳清清楚楚算給所有人看。swapping 與 Cell Key 同樣在做這場交易,只是沒把帳攤開——而看不見的交易,比較好假裝它不存在。
對一個寫程式的人,這件事的可遷移之處很直接。任何你做的「去識別化」——把 user id 換成 hash、把精確時間戳截斷到小時、把 GPS 座標四捨五入——本質上都是同一場隱私與可用的交易,只是你多半沒有把 ε 寫在哪裡。普查這場爭論真正的教訓不是「該不該加雜訊」,而是「你有沒有把這場交易的代價算成一個可審查的數字」。差異隱私之所以是黃金標準,不是因為它最安全,而是因為它是少數逼你把帳算出來、而不是憑感覺宣稱「我們已經去識別化了」的那種方法。
Take-away:只發布總和不等於安全——精確的統計就是一組能反解出個人的方程式;差異隱私不是把資料弄髒,是用一個可調的 ε 把「隱私換準確度」這筆交易明明白白寫在帳上,而拿掉它並不能取消交易,只會讓你退回那些同樣在加雜訊、卻說不清楚保障多強的舊方法。