Web3隱私,99%的人都理解錯了

作者:Yash Chandak

原標題:Stop Saying ‘We Need Privacy

編譯及整理:BitpushNews


1770942858912.jpg

如果你的錢包是公開的,你的生活就是公開的。人們可以盯著你的餘額、你的交易、你的倉位以及你的入場時機,然後輕飄飄地說這“僅僅是數據”。這就是為什麼“隱私”總能作為一個經久不衰的敘事反覆迴歸。

問題在於,“隱私”並不是單一的功能。它其實是五個截然不同的問題。

寫這篇文章是為了幫助你理解,下一次當你在推特上發“我們需要隱私”時,你到底在要求什麼。

image.png

當人們提到隱私時,他們往往指代的是完全不同的東西:

  • 意圖隱私(Intent privacy):觀察者不應該在你的交易成交前看到它。

  • 價值隱私(Value privacy):你的薪水、淨資產或交易規模不應被輕易觀察到。

  • 狀態隱私(State privacy):倉位、清算閾值、金庫狀態和庫存默認不應公開。

  • 執行隱私(Execution privacy):不應通過你觸發了哪些路徑以及如何觸發,來推斷出你的策略。

  • 圖譜隱私(Graph privacy):觀察者不應能夠繪製出你付錢給誰、捐款給誰或與誰協作的地圖。

許多“隱私協議”只解決了其中一兩個問題,卻洩露了其餘部分。大多數洩露發生在邊緣地帶:錢包、遠程過程調用(RPC,即錢包與區塊鏈之間的橋樑)、中繼器、跨鏈橋、交易所,以及人類行為的可預測性。

這是一個讓行業圖景變得清晰的框架:先確定你想要保護的表面,然後再尋找保護該表面的工具。

意圖隱私

在許多鏈上,交易並不是直接從你的錢包進入區塊的。相反,它首先會待在一個被稱為“內存池(mempool)”的公開等待室裡,待處理交易在被打包之前在這裡是可見的。如果你能看到待處理的兌換(swap),你就能針對它們做出反應。這為最大可提取價值(MEV)機器人創造了機會。這些機器人是高速運行的自動化系統,監控區塊鏈內存池,以尋找並利用獲利的交易機會,如套利、清算和三明治攻擊。

例如,一個機器人可以發現你的兌換請求,搶在之前買入,導致價格向不利於你的方向波動,然後緊接著在你之後賣出,以賺取差價。你雖然完成了交易,但成交價格變差了。

意圖隱私解決的就是這特定的約 12 秒窗口期的問題。其目標是隱藏交易細節,直到觀察者來不及做出反應。

私人交易交付

確保交易交付隱私最實用的方法是改變其路徑。你的錢包仍然創建一個正常的簽名交易。區別在於它被髮送到了哪裡。交易不再被廣播到公開內存池,而是提交給一個私人端點,由該端點轉發給區塊構建者(Block Builders)。這些構建者通過排序交易來組建候選區塊,最後由驗證者發佈其中一個區塊。

這就是像 Flashbots Protect 這樣的系統所提供的方案:一條讓你的交易在進入區塊之前遠離公開內存池的路線。

Flashbots 還在研究一個名為 SUAVE(價值表達單一統一拍賣)的概念,它將問題界定為“訂單流本身就是一個系統”。其想法是在私人環境中收集用戶意圖,運行拍賣以確定誰來執行,然後在以太坊和其他鏈上結算結果。

雖然仍在進化中,但這種方法設定了一個明確的方向:隱私應該在交易接觸公開內存池之前就應用。

這種方法奏效的原因也是其權衡所在。它奏效是因為公開機器人永遠無法提前看到。而權衡在於,私人管道和構建者確實能提前看到。你只是縮小了觀眾範圍,而不是完全消除了提前可見性。

加密內存池

加密內存池旨在提供更強的隱私,確保在交易被納入區塊之前,任何人(包括構建者)都無法看到它。

網絡看到的不是一段可讀的交易,而是一個加密的二進制大對象(blob)。觀察者可以看出有東西被提交了,但無法得知具體內容。

解密只有在訂單被鎖定之後才會發生。一種常見的設計是使用閾值解密,其中解密權限被拆分給一個委員會(Shutter Network 稱之為 Keypers)。每個委員會成員持有一個碎片。當需要揭示內容時,只要發佈足夠數量的碎片就能重建解密密鑰,從而允許交易執行。

這種方法消除了“私人管道能提前讀取一切”的問題,但它引入了新的假設:委員會必須在線,且不得合謀。

意圖隱私在區塊發佈時就結束了。 除非你將其與鏈上的價值、狀態或執行隱私相結合,否則包含在區塊內的信息依然會像往常一樣暴露。

價值隱私

價值隱私回答一個簡單的問題:我能不能在不讓全世界看到我匯了多少錢的情況下轉賬?

在正常的公共鏈上,答案是否定的。每筆交易都會直接發佈金額,這也是每個人驗證餘額的方式。

“屏蔽系統(Shielded systems)”通過分離兩件事來改變這一點:

  1. 金額(保持私密)

  2. 遵守規則的證明(保持公開)

在底層,系統將你的資金存儲為私人記錄。你可以把它們想象成加密收據。每張收據代表一定的金額,但只有所有者知道里面是多少。

當你消費時:

  • 你證明你擁有一張有效的收據。

  • 你證明你以前沒有花過它。

  • 你為接收者創建新收據(並給自己找零)。

  • 你發佈一個證明,證明轉出的總額等於轉入的總額。

鏈負責檢查這個證明。如果證明有效,交易就被接受,但隱藏的金額對外界依然未知。這是 Zcash 屏蔽轉賬背後的核心設計,也是價值隱私在生產環境中的經典案例。Penumbra 在多資產屏蔽池中也使用了相同的通用概念,所有價值都駐留在私人池內,轉賬通過證明而非可見的金額進行。

但這種隱私也有侷限性。即使數學完美,隱私仍可能失效。洩露通常源於用戶行為:

  • 如果你存入一個非常特殊的金額,稍後又取出完全相同的金額,觀察者可以猜測這是同一個人。

  • 如果你在幾分鐘內進出私人池,時間點就成了線索。

  • 如果只有少數人在使用私人池,匿名集(Anonymity set)就很小。

  • 如果你立即將資金轉移到已知的交易所賬戶,你就重新連接了身份。

所以,價值隱私隱藏了系統內部的數字,但它並不會自動隱藏圍繞該系統的行為模式。

圖譜隱私

圖譜隱私關注的是關係。即使你隱藏了金額,公共賬本仍能揭示模式:你發給誰、你從誰那裡接收、頻率如何以及金額大小。隨著時間的推移,這張網絡地圖可能比餘額更能揭露信息。

大多數圖譜隱私方法分為兩類:

第一種是資金池不可鏈接性(Pooled unlinkability)。這就是“混幣”的想法。大量用戶將資金髮送到同一個池中,隨後以一種在公開層面無法將取款與特定存款聯繫起來的方式將其取出。鏈上依然顯示存款和取款。

隱私來自於模糊性。觀察者可以看到存款和取款,但無法可靠地匹配。每筆取款在邏輯上可能屬於許多參與者。這是像 Tornado Cash 這種混幣器系統的核心機制。資金池越大,觀察者對任何單一鏈接的確定性就越低。

如果池子很繁忙,且很多人存入相同的金額,你就會消失在人群中。如果池子很小,人群就會崩塌,圖譜就會通過時間和金額重新顯現。

另一種破壞圖譜的方法是停止重複使用同一個收款地址。

如果每筆付款都發到一個公開地址,你的收款歷史就成了一個永久的公開訂閱源。任何人都可以聚類這些付款並認為它們屬於同一個人。

隱身地址(Stealth addresses)可以改變這種模式。每筆付款不再發送到單一可見的目的地,而是落在一個看起來與上一筆毫無關聯的新地址上。發送者為該筆付款生成一個一次性地址,只有預期的接收者可以訪問。對外部觀察者來說,這看起來像是資金流向了互不相關的地址。

這並沒有隱藏金額或發送者。它通過防止外人將所有收款鏈接到同一個身份,解決了一個更窄範圍內的問題。ERC-5564 為以太坊標準化的就是這種模式。它不隱藏發送者或金額,但它讓“所有付給 Alice 的錢”變得不再顯而易見。

圖譜隱私依然會通過行為洩露。如果你從池中取款後每次都立即橋接到同一個地方,你就創造了一個新的鏈接點。如果你退出並立即接觸需要實名認證(KYC)的交易所,身份會瞬間找回。如果你保持相同的時間習慣,圖譜就會變得可以被猜到。這些系統打破了直接鏈接,但並未抹去你的腳印。

狀態隱私

狀態隱私旨在解決 DeFi 特有的問題。你的餘額、倉位、清算閾值、金庫構成和庫存不應該能被任何擁有區塊瀏覽器的人讀取。

這很重要,因為“公開狀態”會變成策略洩露。如果你的倉位可見,其他參與者就可以預測你的行為、你何時會被清算以及你下一步可能做什麼。更糟糕的是,他們可以針對你。一個帶有可見清算線的錢包基本上就是一個公開的計分板。

那麼狀態隱私在底層改變了什麼?

在正常的鏈中,狀態是大家達成共識並能讀取的東西。借貸協議將地址映射到倉位詳情。金庫將地址映射到份額和債務。這就是索引器和機器人抓取的內容。

私有狀態系統停止以明文形式寫入這些細節。它們將“由你的地址索引的公開狀態”替換為“由隱藏記錄代表的私有狀態”,並強制狀態更新必須附帶證明,證明該更新遵循了規則。

這裡有最簡單的理解方式:

  • 你仍然執行諸如“存入抵押品”、“借款”、“再平衡”或“兌換”的操作。

  • 鏈仍然必須執行約束,例如“你的借款不能超過抵押品允許的範圍”、“你不能憑空創造價值”以及“你不能雙花同一個私人餘額”。

  • 但鏈是通過驗證證明來執行這些約束的,而不是通過讀取你的倉位。

這就是為什麼狀態隱私和 零知識證明(ZK proofs) 經常形影不離。你需要某種東西在保持底層數字私密的同時,宣告“這次更新是有效的”。

一個具體的例子是 Aztec。其設計中心是客戶端的私有執行,網絡負責驗證證明和承諾。這讓倉位得以存在,而無需作為可讀表格存儲在鏈上。你可以進行類似 DeFi 的操作,而公共鏈只看到證明驗證過的狀態轉換,而不是你的原始倉位。

狀態隱私在哪裡洩露?依然主要在邊緣。

如果你擁有一個私人倉位,但定期退出到公開的去中心化交易所(DEX),這些退出的規模和時機可以重構出你的行為。如果你以可預測的模式進出跨鏈橋,你就會創造鏈接。如果你依賴公開的守護者(keepers)進行清算,你的“私人”倉位仍需要與外界建立某種接口,而該接口可能會洩露信息。

此外,狀態隱私很難實現可組合性。公開 DeFi 像樂高一樣,是因為每個人都能讀取一切。私有 DeFi 必須回答:“當兩個合約都看不見對方的內部情況時,它們如何交互?”組合越複雜,設計就越需要小心翼翼。

狀態隱私是隱私從“隱藏一次轉賬”升級為“隱藏持續的財務姿態”的地方,這也是為什麼它更難實現、更有用,但也更容易在邊界處瓦解。

執行隱私

這類隱私更深入一個層次。它不僅隱藏餘額或倉位,還隱藏計算是如何發生的。這對於拍賣、撮合、求解器(solver)邏輯、清算策略、私人訂單類型以及任何一旦可見策略就會被剝削的場景都至關重要。

有兩種常見的方法:

  1. 一種使用可信執行環境(TEEs)。合約在硬件飛地(enclave)內執行,輸入在飛地內解密,輸出被加密,並通過證明(attestation)驗證運行的是正確的代碼。Secret Network 和 Oasis Sapphire 是使用這種方法以較低證明開銷獲取私有執行的例子。權衡點在於對硬件的信任和側信道攻擊風險。

  2. 另一種方法是將 ZK 證明 用於私有執行。系統產生證據證明程序正確運行,但不透露驅動執行的私人輸入。這種方法在概念上很純粹,但通常對工具和性能要求極高,且在普及前往往先在有限範圍內推出。

執行隱私在與其他隱私類型相同的領域表現薄弱:時機、邊界交互和訪問層。

RPC:解決隱私發生的地方

即便你的鏈上隱私完美無缺,如果你的錢包使用的是 Infura 或 Alchemy,那麼該 RPC 提供商 就能看到你的 IP 地址、你控制的地址(因為你查詢了它們的餘額)、你與哪些合約交互以及你的時間模式。

2022 年,ConsenSys 公開承認 MetaMask 的默認 RPC (Infura) 會收集 IP 地址和錢包地址。這就是為什麼協議隱私在實踐中經常失敗的原因:訪問層在加密技術有機會發揮作用之前就洩露了一切。

所以,隱私是由語境塑造的。不同的語境以不同的方式塑造隱私設計。

交易主要需要意圖隱私。支付需要價值隱私和收款方側的圖譜隱私。DeFi 渴求狀態隱私。跨鏈橋則會增加關聯點。機構希望在擁有驗證和問責路徑的同時保持機密性。

因此,“哪種隱私模型會贏?”這個問題通常是錯誤的。

更準確的問題是:你正在保護哪個表面?你做了哪些假設?以及當用戶接觸真實世界時,信息還會在哪裡洩露?


Twitter:https://twitter.com/BitpushNewsCN

比推 TG 交流群:https://t.me/BitPushCommunity

比推 TG 訂閱: https://t.me/bitpush

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論