去匿名化攻擊
去匿名化攻擊是任何剝除區塊鏈使用者化名性的技術,把一個地址或一筆私密交易連回真實世界的身分。它是鏈上分析的進攻面:鏈上分析建構分群地圖,而去匿名化攻擊是把一個姓名釘到該地圖某節點上的具體手段。這些攻擊鮮少直接破解密碼學;它們利用元資料、行為,以及鏈上世界與鏈下世界之間的接縫。
在透明鏈上,最可靠的攻擊把地址分群與單一身分洩漏結合——一筆 KYC 交易所存款、一個與論壇貼文綁定的重用地址,或一個公開的捐款地址。網路層攻擊針對點對點的八卦傳播:藉由連到許多節點並記錄誰最先公告某筆交易,對手能估計來源 IP,對未使用 Tor 的使用者尤其有效。灰塵攻擊把微小、可追蹤的金額送到許多地址,再觀察哪些灰塵被一起花用,以合併原本分離的分群。金額與時間關聯則在直接連結被切斷時,仍能跨混幣器連結存款與提領。
隱私幣較難攻破,但並非免疫,而其攻擊很有啟發性。早期 Monero 在強制環簽章與機密金額之前,有許多交易因環為選用或很小,使真實花費在統計上一目了然;連鎖反應分析(若某誘餌日後在別處被揭露為真實花費,便能從其他環中被排除)與糟糕的誘餌選擇分布,都會洩漏真實輸入。對 Zcash 而言,弱點在於使用模式:可選屏蔽意味多數流動仍透明,而金額相符、時間緊湊、可預測的屏蔽/解屏蔽往返,即使屏蔽的中段在密碼學上不透明,仍可被關聯。
防禦上的教訓是:隱私是一個橫跨協定、網路與人類行為的系統性質。強密碼學會被會洩漏的傳輸層(請用 Tor 或 Dandelion 式中繼)、可預測的金額(請用標準面額)、倉促的時間(請引入延遲),以及最重要的——把私密資金與 KYC 連結的資金混在一起——所瓦解。去匿名化攻擊通常不是靠擊敗數學取勝,而是靠找到使用者把自己的化名連回本人的那一道粗心接縫。
攻擊者運行 50 個連線良好的比特幣節點。當目標未透過 Tor 廣播一筆交易時,攻擊者記錄自己哪個節點最先聽到、來自哪個對等節點,三角定位出來源 IP。再把該 IP 與 ISP 紀錄或登入時間戳交叉比對,就能把化名地址連到某個人。
一種網路層攻擊,從八卦傳播的時間三角定位交易的來源 IP。
最弱的一環主宰一切:若你幾分鐘前才從一個 KYC 交易所、用同一個 IP、提領了完全相同的金額,那麼一筆無瑕的屏蔽交易也毫無價值。隱私在邊界失守,而非在核心數學。