以太坊隱私保護——隱匿地址

中級1/22/2025, 4:16:15 PM
以太坊的隱私問題日益受到關注,尤其是交易透明度可能暴露用戶的財務信息和活動。為解決此問題,隱匿地址(Stealth Addresses)被提出,旨在通過為每筆交易生成唯一的臨時地址,確保接收者的身份和交易細節保持私密。這種方法無需依賴第三方隱私協議,直接在協議層面增強隱私性。然而,隱匿地址的實施仍面臨挑戰。

介紹

Web3加密用戶面臨的一個主要問題是隱私保護不足。由於所有交易都可以在公共賬本中查看,而且越來越多的交易與一個清晰的ENS名稱掛鉤,這讓很多用戶不願進行某些操作,或者必須採取增加使用難度的方式來完成這些操作。比如,從熱錢包轉賬到冷錢包,或者反過來。用戶可能不希望一個錢包和另一個錢包相互關聯,因為他們不希望其他人看到冷錢包的餘額。目前,以太坊的地址不像私人銀行賬戶那樣保密,因為任何人都可以看到你的錢包和交易記錄,甚至你的社交活動(如SBT、認證、在各種dapp上的行為等)。正因為如此,Vitalik曾指出,隱私是以太坊必須解決的三大主要技術轉型之一,只有這樣,以太坊才能真正為普通用戶提供價值。

現有的隱私解決方案,如Tornado Cash,雖然可以提供一定程度的隱私保護,但並不完美,原因有幾點。首先,用戶擔心他們的地址可能會被集中交易所或其他平臺列入黑名單。其次,使用Tornado Cash等工具的體驗並不友好,更適合技術嫻熟的用戶。

隱匿地址提供了一種類似私人銀行賬戶的隱私保護方式,並且這種方式非常直觀易懂。此外,隨著隱匿地址技術的不斷髮展,我們有可能在不違反各國反洗錢(AML)法規的前提下,保護用戶隱私。

用戶隱私需求

雖然關於Web和Web3用戶對隱私的態度的研究不多,但通過網絡搜索,我們發現了一些相關研究,結果顯示用戶對隱私保護有明顯的需求。

  1. 2022年,Simin Ghesmati等人進行的調查併發佈於《區塊鏈中的用戶感知隱私》一文中,指出“有一半的受訪者認為交易隱私對他們至關重要”。雖然這項研究主要集中在比特幣用戶身上,但以太坊用戶的態度很可能也類似。不過,這項研究的樣本量較小(僅14位受訪者)。
  2. 另一個有趣的2022年研究,發佈在Frontiers期刊上的《區塊鏈用戶的政治、經濟和治理態度 》研究中,調查了3710名加密用戶。結果顯示,大約四分之一的受訪者認為隱私是“區塊鏈和加密貨幣最重要的特性”。

  1. 在隱私方面的普遍態度上,Consensys發佈了2023年《 Web3 和加密貨幣全球調查》報告,調查了來自15個國家的15,158人,討論了關於網絡的多個話題,不僅僅是加密貨幣。調查結果顯示,83%的受訪者認為數據隱私非常重要,而只有45%的受訪者表示他們信任當前互聯網服務商對他們的數據和個人信息的使用方式。
  2. 一個 英國金融服務補償計劃進行的調查,於 2023 年 4 月發佈,強調 9% 的受訪者引用了“渴望匿名/隱私”作為他們投資加密貨幣的原因。2023年4月,英國金融服務補償計劃(FSCS)發佈的一項調查顯示,9%的受訪者表示,“對匿名性/隱私的需求”是他們投資加密貨幣的原因。

隱匿交易協議的採納情況

Railgun的表現非常出色,截至2024年11月,協議的使用穩步增長,總價值鎖倉(TVL)超過了7000萬美元,交易量達到了20億美元。

TVL(美元)Railgun在以太坊主網的表現 — 來源: ​​Railgun — DefiLlama

Umbra 的協議使用情況也持續增長(人們將隱匿地址註冊到他們的ENS上),截至2024年11月,註冊人數接近77,000人:

Umbra 累計註冊人數(跨鏈) — 來源:dune.com

如果我們看一下以太坊中最廣為人知的(而且現在不幸變得臭名昭著的)隱私協議——Tornado Cash,我們可以看到,儘管其合約地址技術上被列入了OFAC的SDN名單,Tornado Cash仍然得到了顯著的使用。

下圖顯示了Tornado Cash的TVL變化。我們可以看到,2021年10月左右,Tornado Cash從峰值開始第一次大幅下降,這與加密市場的整體拋售相符;第二次下降發生在2022年8月,當時OFAC將Tornado Cash列入SDN名單;第三次下降出現在2022年11月OFAC重新指定時。然而,從那時起,Tornado Cash儘管面臨制裁,仍然穩定增長,TVL幾乎達到了6億美元。這強烈表明,用戶對以太坊上的基本交易隱私有著明顯的需求。

TVL(美元)Tornado Cash在以太坊主網的表現 — 來源:Tornado Cash — DefiLlama

隱匿地址的現狀

根據這項研究,當前在EVM鏈上已投入使用的四個主要隱匿地址解決方案是:

其中,Fluidkey和Umbra基於以太坊的標準,分別是:

而Labyrinth和Railgun則是基於zerocash協議,這也是zcash的基礎。Zerocash使用一個受保護的資金池,用戶可以將資金存入其中。它通過“票據”的概念實現私密交易,票據是加密表示的價值,每張票據包含一個隱藏值、所有者密鑰和一個唯一編號(空值)。使用zk-SNARKs技術,能夠在不暴露細節的情況下驗證所有權,從而完成私密轉賬。每當票據被使用時,空值被揭示以防止雙重支付,並且為接收者生成新的票據,形成一種UTXO系統。

總體來看,隱匿地址的工作原理是:第三方可以向一個從未存在的地址發送資金,而接收者通過某些方式可以發現並控制這個地址(也就是說,他們可以隨後花費這些資金)。

ERC-5564標準定義了一種機制,接收者可以發佈一個隱匿元地址,基於此可以衍生出新的以太坊地址。任何想要向接收者發送資金的人,都能生成新地址並且讓接收者在沒有任何直接溝通的情況下了解這些資金。所有隱匿地址的實現都基於這一核心原理。

隱匿地址的工作方式

隱匿元地址由兩個壓縮公鑰組合而成,分別稱為“支出密鑰”和“查看密鑰”。隱匿元地址採用EIP-3770標準的鏈特定地址格式,並在前面加上“st:”前綴。以下是一個隱匿地址的示例:

st:eth:0x036ffa94a70a5b9608aca693e12da815fe0295f3739c7b22b0284c6d85c464ba4a02c0521b6fe31714b2ca0efa159402574355b754e0b50406b0b5fb33128eec3507

為了簡化,隱匿地址可以與普通的以太坊地址(以及ENS)關聯,這使得向隱匿地址轉賬變得更加容易。發送者會解析該地址,並依據EIP-5564標準生成一個臨時公鑰,再根據此公鑰創建隱匿地址。發送者將資金髮送到新生成的隱匿地址,通常是通過一個單一合約,所有隱匿地址的接收者都會監聽這個合約並訂閱相關事件。每當公告事件觸發時,接收者將會檢查公告中的臨時公鑰,將其與自己的私鑰結合,查看是否有權限花費發送到隱匿地址的資金。如果有,錢包或客戶端會自動記住隱匿地址及其資金,並把相關餘額顯示給用戶。要實際花費這些資金,用戶只需要用支出私鑰簽署交易即可。

下面的圖示更清晰地展示了這一流程:

這個過程完全是非交互的,也就是說,發送者和接收者之間並沒有直接的溝通,第三方無法觀察到兩者之間的任何關聯。

然而,為了讓這一機制正常運作,接收者必須事先將隱匿地址告知發送者。一種實現方法是通過eip-6538 隱形元地址註冊表,這是一種允許用戶將隱匿元地址與普通以太坊地址綁定的合約,發送者可以通過查找這些地址來找到隱匿元地址。這就使得發送者能夠通過ENS解析普通地址,並從註冊表中查找關聯的隱匿元地址。

這一機制打破了發送者和接收者之間的直接聯繫,保護了兩者的隱私,防止他們的交易被公開。然而,有以下幾點需要注意:

  • 當接收者花費這些資金時,他們將把資金轉移給其他人,而接收者所轉出的資金來源地址及原發送者的信息會被接收方看到。也就是說,轉賬的鏈條依然是完整且可追溯的,但這些信息不會直接與接收者關聯(除非接收者將資金轉至他們已知的非隱匿地址)。需要注意的是,這種情況僅適用於ERC-5564的實現,Railgun和Labyrinth不受此影響。
  • 另一個問題是,為了保持最佳隱私,用戶可能需要將資金保留在最初接收到的隱匿地址裡,直到他們真正需要使用它們,而不是將資金合併到一個單一地址。這就需要記住多個地址,並從不同地址中的資金進行轉賬,增加了操作的複雜性。
  • 為了從這些地址轉賬,接收者需要為地址充入一些ETH來支付交易費用,這可能導致接收者的匿名性被破壞。這是隱匿地址的已知問題之一,也是一些實現方案支持EIP-4337和支付方(paymaster)的原因。
  • 隱匿地址方案的一個缺點是,接收者需要監控區塊鏈上的公告事件,並檢查每個公告以確定自己是否收到了資金。這顯然對大多數用戶來說是一種不切實際的負擔,尤其是在跨多個網絡接收資金時。為了提高效率,標準中規定了一個“查看標籤”(view tag),這是從共享祕密派生的一個簡化哈希值,可以用來快速篩選出那些肯定不是發給自己的交易。通過使用查看標籤,桌面端的性能影響不大,但在移動設備上可能會稍顯明顯。性能問題通常只有在錢包恢復時才會明顯,因為恢復錢包時需要掃描每一個地址,直到合約部署的那一刻,這需要耗費時間。
  • 為了避免這一問題,用戶可以選擇將私有查看密鑰與受信任的第三方共享。這個第三方服務會監控多個網絡,並在用戶收到資金時通知他們。當然,這也有一個取捨:雖然第三方無法實際花費用戶的資金(因為他們沒有私鑰),但他們可以查看所有發送給某個接收者的資金,因此,用戶需要信任他們保護隱私。Fluidkey 就是默認採用這種方式。
  • 雖然 ERC-5564 標準的隱匿地址協議主要用於保障轉賬隱私,但對於一些非金融用途,比如調用任意智能合約函數,仍然需要額外的技術支持,通常這些功能是根據具體實現來定製的。

比較矩陣

本文探討的四種隱匿地址協議之間有許多不同之處,包括一些細微的差異和各自的優勢與不足。最重要的對比點可能是關於可追溯性和隱藏金額的處理方式。

Fluidkey 和 Umbra 可以將資金轉到標準的以太坊地址,同時斷開與接收者身份的關聯,但它們仍然保留了交易的可追溯性,意味著任何查看隱匿地址交易歷史的人都能追蹤到發送者。這意味著,若你收到資金並通過隱匿地址再次轉賬,接收者將能夠看到這筆資金的來源。此外,轉賬金額本身也是公開的。相比之下,Railgun 和 Labyrinth 隱藏了發送者信息和轉賬金額,但代價是這些交易都發生在一個單一的合約內,而非傳統的以太坊地址交易。

下圖顯示了我們在本文中比較的協議在這兩個重要維度上的比較。

接下來是一個比較矩陣,展示了四種主要隱匿地址協議在六個主要維度上的比較:

  1. 端到端隱私:只有發送者和接收者能夠看到交易信息。
  2. 前向保密性:通過隱匿交易接收到的資金,不會讓接收方看到資金來源。
  3. 是否遵循 ERC-5564 和 ERC-6538 標準。
  4. 是否具有可擴展的模塊化架構,支持與第三方 Dapp 的集成。
  5. 是否提供 SDK,供開發者集成使用。
  6. 是否提供去匿名化支持,以確保一定程度的合規性。
  7. 是否能隱藏轉賬的金額/價值。

|協議|端到端隱私 |前向保密性 |開放標準 |模塊化架構| SDK |去匿名化支持 |隱藏金額 |

|——————|——————-|————————-|——- —————-|———————————|———|———— —————————|————————|

|Umbra | ✅ | ⛔️ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |

|Fluidkey | ⛔️ | ⛔️ | ✅ | ✅ |即將 | ✅ | ⛔️ |

|Labyrinth| ✅ | ✅ | ⛔️ | ✅ | ✅ | ✅ | ✅ |

|Railgun | ✅ | ✅ | ⛔️ | ✅ | ✅ |自願 | ✅ |

以下部分詳細描述了其他一些細節差異。每種隱匿地址實現都有其獨特之處,根據你的需求不同,這些差異可能會影響你的選擇。

舉個例子:在 Fluidkey 中,所有的轉賬都會直接發送到鏈上的隱匿地址;而在 Umbra 中,只有 ETH 會發送到鏈上的隱匿地址,代幣則會轉移到一箇中央合約中;而在 Railgun 和 Labyrinth 中,所有交易都通過核心合約處理,而不是直接發送到鏈上的隱匿地址。

深入解析隱匿地址的實現

Fluidkey

Fluidkey是一種基於 ERC-5564 標準的隱匿地址協議,支持用戶發送、接收、交換以及橋接 ETH 和 ERC-20 代幣。目前,Fluidkey 已在 Base、Optimism、Arbitrum、Polygon、Gnosis 和 Ethereum 主網部署。

用戶通過 Fluidkey 的網頁界面進行操作。首次登錄時,用戶使用錢包簽署一條密鑰生成消息,基於這條消息生成他們的查看密鑰和支出密鑰。每次用戶進入應用時,密鑰都會重新生成。

Fluidkey 有一些與其他隱匿地址實現不同的特點。最主要的不同之處在於,用戶需要與 Fluidkey 共享他們的私密查看密鑰(嚴格來說是從該密鑰派生的一個 BIP-32 節點)。這樣,Fluidkey 就能為用戶生成隱匿地址,並且在用戶收到資金時通知他們。然而,這也意味著 Fluidkey 可以查看用戶的交易和餘額,這是一個隱私上的妥協。不過,用戶的資產依然是完全自主管理的。

Fluidkey 設計中的另一個亮點是,它會為每個新的隱匿地址部署一個智能合約賬戶。只有當隱匿地址中的資金被花費時,智能合約賬戶才會被創建。這個賬戶是一個 1/1 Safe 賬戶,支持如Gas 贊助等功能,使得用戶可以更方便地管理多個隱匿地址。詳細的技術說明可以在他們的技術手冊中找到。

儘管 Fluidkey 確實有保留對用戶賬戶透明的做法,這在合規性上可能反而是一個優勢,雖然目前 Fluidkey 如何處理未來可能出現的執法請求還沒有公開具體框架。但值得注意的是,Fluidkey 位於瑞士,瑞士有著嚴格的數據保護法——任何數據共享都必須有明確的法律依據,並且要通過法院審查(詳細瞭解瑞士隱私法,可以參考這篇文章)。

用戶可以完全自由地導出交易記錄,或者將查看密鑰分享給第三方(如會計),這對於企業尤其有幫助。但需要注意的是,根據 ERC-5564 規範,分享公鑰意味著完全開放,無法單獨查看某一筆交易。同時,像所有 ERC-5564 的實現一樣,雖然無法追溯到具體用戶,但每個隱匿地址的交易歷史對於持有查看密鑰的人仍然是公開的。為了減少這種影響,Fluidkey 提供了旋轉查看密鑰的功能,用戶可以每月更換查看密鑰,並只將特定月份的訪問權限共享給第三方。

Fluidkey 還提供一個優勢:隱匿地址並非由發送方生成,而是每次通過查詢 ENS 時,由 Fluidkey 自行隨機生成。這大大加快了流程,因為用戶無需掃描公告事件來查找自己的交易。也就是說,發送方不需要擁有隱匿地址錢包,他們只需像往常一樣發送資金即可。這意味著 Fluidkey 設計中沒有註冊合約,這也是其獨特之處,帶來了顯著的優勢。

值得一提的是,Fluidkey 承諾完全自我託管,並且已經開源了他們的 Stealth Account Kit 庫。除此之外,還提供了幾個獨立開發的恢復接口,萬一 Fluidkey 突然消失,這些接口也能幫助用戶恢復賬戶,確保資金永遠不會被鎖定或卡住。

地址抽象化

通過使用智能合約賬戶,Fluidkey 能夠自動抽象管理各個隱匿地址。這意味著,如果你希望從多個隱匿地址中轉出指定金額給某個收款人,Fluidkey 可以自動計算出哪些地址組合能提供足夠的資金來完成轉賬,同時處理所有的 gas 費用和合約部署,所有這一切都在幕後自動完成。此外,Fluidkey 還允許用戶通過一個名為“標籤”的酷功能,幫助用戶將地址分類管理。

ENS 解析

Fluidkey 要求用戶創建特定於 Fluidkey 的 ENS 名稱。它們有兩種形式:username.fkey.id 和 username.fkey.eth。一種是指向 Web 界面的 URL,用來向某人轉賬,另一種則是標準的 ENS 名稱,可以與錢包一起使用。

ENS 設置使用了一個 ENS 離鏈解析器 (即 ERC-3668:CCIP 讀取),該解析器返回隱匿地址。每次查詢這個離鏈解析器時,它會為相應的 ENS 名稱生成並返回一個新的隱匿地址。這是一個非常棒的功能,因為它允許用戶使用一個易於識別的 ENS 名稱,同時保持隱匿地址的隱私性,因為生成的隱匿地址與 ENS 名稱之間無法回溯性地建立聯繫。

成本

Fluidkey可以免費使用,不收取任何費用。唯一的費用是在你想要花費這些資金時,為每個有資金的地址部署一個 Safe 合約。然而,雖然在主網部署相對較貴,但在 L2 上,費用是微不足道的,通常不到 1 美分,即使是將多個隱匿地址合併成一次轉賬。

通過 Safe 部署,Fluidkey 還可以進行 gas 贊助——他們計算出 gas 費用,並從用戶的餘額中扣除,即使是代幣也能支付。如果是代幣, 中繼者將代表用戶部署 Safe 並轉移代幣。

Umbra Cash

Umbra 是由 Scopelift實現的基於 eip-5564 和 eip-6538 的隱匿地址協議。當用戶首次登錄 Umbra 應用時,他們會經過一個設置過程,在此過程中需要簽署一條消息,系統基於這條消息生成用戶的支出密鑰和查看密鑰,以及相應的隱匿元地址。然後,用戶將該隱匿元地址註冊到自己的主錢包地址,並將其存儲在鏈上,這一點與 Fluidkey 的實現方式有所不同。

Umbra 的 erc-5564 實現方式最符合標準,因為它不涉及訪問用戶的密鑰。這意味著 Umbra(或其他任何人)無法查看用戶的資金狀況。但這也意味著,想要向用戶發送資金的發送方,必須使用與 eip-5564 兼容的錢包(或使用 Umbra 應用)來生成隱匿元地址。

當有人想要 發送 資金給用戶時,他們通常會使用 Umbra 應用程序來這樣做。本質上,當有人想要向某個用戶發送資金時,通常會通過 Umbra 應用來完成。Umbra 應用會查找與用戶的 ENS 名稱或錢包地址註冊的隱匿元地址,並生成一個隱匿地址。收款人在登錄 Umbra 應用後,可以掃描並查看自上次登錄以來,發送到其隱匿地址的所有資金。得益於高效的緩存機制,這一掃描過程通常只需 10-15 秒,用戶也可以選擇指定一個特定區塊範圍來縮小掃描範圍。Umbra v2 版本將引入視圖標籤(viewtags)功能,進一步加快這一過程。

中繼者

隱匿地址的一個問題是,為了讓收款人能夠使用發送到隱匿地址的資金,他們需要為該地址提供 ETH 或其他支付交易費用的 gas 代幣。在大多數網絡中,如果隱匿地址接收到的是 ETH,通常不會出現問題。然而,如果收到的是 erc-20 代幣或 NFT,使用 ETH 為該隱匿地址支付 gas 費用可能會暴露該地址與用戶其他地址的關聯,從而失去隱私保護。

為了繞過這一問題,Umbra 引入了中繼者機制。當發送給 Umbra 用戶的資產不是 ETH 時,它們會先發送到一個特殊的合約,而不是直接發送到隱匿地址。用戶可以通過在 Umbra 應用中發起一個元交易,指示 Umbra 的中繼者代為將資金從合約中轉移到用戶的隱匿地址。中繼者會為用戶完成這筆交易,並扣除相應的費用。

成本

為了防止垃圾郵件,Umbra 合約在低交易費用的網絡中轉賬時,會收取一小部分費用。這是為了避免垃圾郵件增加掃描交易的成本,導致識別相關交易變得更加困難。因此,這筆費用被認為是一種合理的權衡。

支持的網絡

目前,Umbra 已經部署在以太坊主網、Optimism、Polygon、Gnosis Chain 和 Arbitrum 等多個網絡上。 Umbra 的註冊合約設計獨特,使用了 create2 部署方法,並且智能合約地址在所有網絡上都是相同的。這意味著,只要合約存在於某個網絡,客戶端就可以確認這是正確的合約。客戶端可以配置網絡,任何人都可以在任何網絡上部署合約。他們已經統一了字節碼,並且合約沒有特定的所有者,允許任何人在任何鏈上無權限地部署註冊和公告合約。

Umbra v2

Scopelift 正在開發 Umbra的第2版本 ,新的版本引入了模塊化架構,允許核心合約擴展支持更多代幣標準或其他類型的用例。藉助這種新架構,第三方開發者可以為各種代幣標準構建模塊,例如 erc-1155、erc-7621,支持 erc-4337 paymasters 或任何其他功能。目前,Umbra 核心合約支持兩種主要場景,分別是 ETH 和 erc-20,版本 2 將支持更多不同的場景。

Labyrinth

Labyrinth 是一個基於零知識證明(zkp)的隱私協議,它並不像 eip-5564 + eip-6538 那樣依賴標準,而是通過 zkFi 中間件為交易增加匿名性和隱私保護。Labyrinth 的白皮書將其描述為一個“zkFi”中間件:“zkFi 提供了一個封裝的解決方案,作為一個隱私中間件,內置合規性。”內置合規性指的是 Labyrinth 的“選擇性去匿名化”,這是一種複雜的解決方案,允許某些交易對特定授權方(即法律機構,如國際刑警等)去匿名,同時保持透明性和公開性。

Labyrinth 使用的核心智能合約包括一個多交易和多資產池,允許用戶在一個交易中交易多個資產。為了花費資產,用戶掃描網絡並獲取加密的票據數據,解密票據,並篩選出要花費的資產。隨後,用戶創建一個包含交易的 ZKP(零知識證明)及與票據相關的簽名密鑰的簽名。

Labyrinth 核心合約的一部分是一個轉換器合約,它與模塊化代理合約接口,這些代理合約基本上是外部合約的代理。例如:如果用戶想使用 Labyrinth 與 Uniswap 進行交互,用戶會創建一個交易,使用轉換器合約通過 Uniswap 的代理合約調用 Uniswap 池的交換操作。

Labyrinth 的 zkFi 協議使用“票據”來跟蹤餘額和轉賬。票據本質上是一個數據結構,描述了某個資產的金額及其屬於哪個地址。客戶端存儲創建票據所需的信息,並使用這些信息來花費資產。票據的承諾(資產 ID、所有者和價值的哈希)存儲在鏈上的 Merkle 樹中。實際上,Labyrinth 使用了兩棵 Merkle 樹,一棵用於票據,一棵用於根地址。

票據的數據結構包括:

  • 資產ID(assetId):指示票據代表的資產類型(如 ETH、WBTC、MATIC 等)。
  • 金額(value):票據表示的金額。
  • 葉節點索引(leafIndex):票據在 Merkle 樹中的索引位置。
  • 致盲因子(blinding):用於加密的隨機因子。
  • 根地址(rootAddress):擁有該票據的用戶地址。
  • 撤銷者公鑰(revoker):選擇的撤銷者的公鑰。

您會發現,以上數據結構中沒有提到資產的所有者,這有些奇怪,因為在票據 Merkle 樹中記錄的承諾實際上是資產 ID、金額和所有者的哈希值。實際上,所有者是根據根地址、撤銷者以及一個隨機的致盲因子計算出來的。因此,外部觀察者看到的所有者地址其實是每筆新交易時都創建的一個新地址。

屏蔽池

Labyrinth 的獨特之處在於,它與傳統的隱形地址協議略有不同,採用了一種屏蔽池的方式,使用票據概念創建了一個屏蔽的 UTXO 池,提供了前向保密性。回想一下,基於 eip-5564 的實現中,當用戶將資金轉賬給某個對象時,接收方可以看到資金的來源。舉個例子,愛麗絲通過隱形地址付款給鮑勃,鮑勃又付款給查理,這樣查理就能知道鮑勃最初從愛麗絲那裡收到了資金,依此類推。而 Labyrinth 的屏蔽池就避免了這個問題。

為了理解這個屏蔽池的工作方式,我們需要了解資金在協議中如何轉移:

用戶在屏蔽池中的餘額是所有相關資產票據的總和。要使用這些票據,用戶必須揭示票據的“無效符”。無效符是唯一的,一旦票據被花費,無效符就會被標記,防止重複使用,並且會基於已用票據創建一個新票據。多個相同資產的票據可以合併,新的票據也可以被創建。無效符就是 (𝑙,𝑐,𝛿) 的哈希值,其中 𝑙 是票據 Merkle 樹中該票據承諾的索引,𝑐 是承諾,𝛿 是一個隨機的致盲因子。

隱形交易的接收方通過與 eip-5564 相同的方式識別交易,即他們監聽核心合約發出的事件,識別哪些隱形地址可以用於發送資金,並將這些地址記錄在本地。通過視圖標籤的使用,以及通過本地緩存和異步同步票據信息,接收到資金的過程變得更加高效。

例如,Aztec 提出了一個提案來加速接收資金的發現過程,具體內容請參見《提案請求:註釋發現協議 — Aztec》。

為了使用這些資金,用戶還需要生成 zk-proof,這與 eip-6654 實現方式不同,後者直接使用普通的以太坊地址。生成證明需要一個兼容的錢包,性能較好,一般中端安卓設備上大約 20 秒左右可以完成。

Bundler 和轉換器

Labyrinth 提供了幾項非常實用的功能,解決了隱形交易的一些痛點。通過 erc-4337 bundlers 發送到 Labyrinth 核心合約的交易,是作為用戶操作進行的。這意味著用戶可以在不需要 ETH 或 gas 代幣的情況下使用票據,因為他們可以通過 erc-4337 paymaster 讓系統代為支付 gas,從而增加了隱私性。唯一的例外是初始存款,它不是通過用戶操作提交的。通過 erc-4337 paymaster,還可以通過轉賬資產本身來支付 gas,即使這些資產是 erc-20 代幣,Labyrinth 還提供了 gas 價格預言機 API。

Labyrinth 另一個非常棒的功能是它的模塊化架構,允許轉換器合約作為第三方 dapp 的代理。這使得用戶不僅可以通過隱形交易轉賬資金,還可以與第三方 dapp(例如 Uniswap、Aave、Lido 等)進行交互。這些代理“轉換器”合約本質上實現了一個功能,該功能輸入一定數量的資產並輸出相應數量的資產,底層邏輯存在於某個第三方合約中。

合規解決方案

Labyrinth 使用一種叫做選擇性去匿名化(SeDe)的框架,確保符合合規要求和監管標準。

在 Labyrinth 的票據數據結構中,包含一個叫做“撤銷者”的字段。撤銷者是一個特定實體的地址,可以啟動去匿名化的過程。用戶必須從預設的列表中選擇至少一個撤銷者。撤銷者的責任不僅是識別潛在的非法或不合規活動,更重要的是在執法機關的要求下執行去匿名化操作。

需要注意的是,撤銷者並沒有直接去匿名化交易的權限。他們的職責是發起去匿名化的請求,而這些請求會公開發送給一個叫做“監護人”的委員會,這些監護人負責審查隱私和合規問題。監護人會投票決定是否允許去匿名化某筆交易。如果投票通過,並且達成法定人數,撤銷者就能解密交易數據,從而將該筆交易與之前的交易進行關聯,直到交易的來源完全去匿名化。

這種機制通過制衡確保了任何單一實體不能隨意公開交易數據。即使監護人之間合謀,他們也無法繞過撤銷者的權限,而撤銷者也必須得到監護人委員會的多數票才能執行去匿名化操作。

Railgun

RAILGUN 是一種隱私保護的隱形交易系統,已經在以太坊、BSC、Polygon 和 Arbitrum 上部署。它與 Labyrinth 有相似之處,都是基於“票據”概念,這些票據以承諾的形式存儲在 Merkle 樹中,並構成 UTXO 集。這意味著,票據可以通過創建新票據來轉給其他接收者。在消費票據時,需要為該票據添加一個“無效符”來防止雙重消費。而無效符只能由票據的擁有者計算出來,它是根據支出密鑰的哈希值和 Merkle 樹中票據的索引值計算的,意味著只有票據的擁有者才能花費該票據,且每個票據只能使用一次。

在 Railgun 中,隱形元地址的前綴為“0zk”,並且像 eip-5564 一樣,它由公共查看密鑰和公共支出密鑰組成。不同之處在於,Railgun 使用的是 BabyJubJub 曲線上的 Ed25519 密鑰,而不是 ECDSA 和 secp256k1 密鑰。用戶通過掃描 Railgun 合約中的所有事件,使用查看密鑰來識別哪些事件表示資金已轉入他們的賬戶。

Railgun 利用廣播者網絡進行操作。廣播者是中繼者,它們接收來自用戶的元交易並將實際交易廣播到目標區塊鏈,且會代表用戶支付 Gas 費用。通過這種方式,用戶的交易可以被保護在廣播者背後,從而保障用戶的匿名性。用戶向廣播者發送的交易會被加密,並通過Waku協議 發送。

Railgun 具有模塊化架構,允許與外部智能合約互動,提供超越簡單轉賬的功能。它通過 AdaptRelay 合約實現,在與外部合約交互前後對代幣進行遮蔽和解遮蔽,例如,解遮蔽代幣 A,通過某個自動做市商(AMM)交換為代幣 B,再將代幣 B 遮蔽回原始所有者。

Railgun 即將發佈的版本 3 將採用 eip-4337 標準,並且支持傳統的元交易。團隊希望通過為 Railgun 設置專門的 eip-4337 用戶操作內存池,允許獨立的求解者作為廣播者參與交易的廣播。目前,Railgun 團隊正在與 Umbra 合作,共同研究這一方向,解決一些邊緣案例和潛在問題。有關更多細節,可以參考下文關於 Railgun v3 的部分內容。

費用

Railgun 協議在存款和取款時收取 0.25% 的手續費,這部分費用會被轉入 DAO 財庫,並逐步分發給質押 RAIL 治理代幣的用戶。除了這筆固定的 0.25% 手續費外,廣播者通常還會收取額外費用,一般來說,大約是鏈上交易 Gas 費用的 10%。

治理

Railgun 採用了去中心化治理系統,任何對核心合約(包括財庫和治理合約)的修改都需要通過 DAO 提案流程。特別的是,Railgun 在不同網絡上的實例各自擁有獨立的治理體系。例如,以太坊、Polygon 和 Binance Chain 上的 Railgun 各自有不同的治理結構和代幣。

SDK 和 Cookbook

Railgun 提供了詳細的 SDK,供錢包和 Dapp 開發者使用,幫助他們將隱形地址功能集成到應用中。此外,Railgun 還提供了由社區維護的 cookbook ,其中包含一系列“食譜”,允許 Dapp 開發者為 Railgun 創建模塊,用戶通過這些模塊可以與 Dapp 進行私密交互。例如,開發者可以為去中心化交易所(DEX)編寫食譜,允許 Railgun 用戶在不暴露交易信息的情況下交換代幣。

Railgun v3

Railgun 版本 3 預計將使交易費用降低 50% 到 60%。此外,版本 3 還將支持通過專用內存池來處理 eip-4337 用戶操作,並引入基於意圖的架構,允許求解者競爭最佳執行方案。雖然細節仍然在開發中,但目前團隊正在與CowSwap合作,計劃通過前置和後置鉤子機制優化求解過程,進一步提高交易效率。

Railgun Connect

Railgun Connect 可能是提議中最有趣的變化之一,它類似於 WalletConnect 的功能,允許用戶通過 0zk 地址連接到大多數前端應用,以進行私密操作,而不需要這些 Dapp 特意通過自定義模塊集成 Railgun。

Railgun Connect 是一個瀏覽器擴展,它的工作方式是通過 HardHat 在本地模擬鏈的狀態,並將一個 web3 提供者注入到 Dapp 中,連接到本地 HardHat 版本的鏈。這就允許用戶像平常一樣與 Dapp 合約交互,記錄交易,批量處理這些交易並生成 SNARK 證明,最後將證明發送到真實鏈上的 Railgun 合約。雖然描述有所簡化,但它傳達了基本概念。簡單來說,用戶幾乎可以與任何 Dapp 進行交互,唯一的限制是對於那些需要進行額外鏈下處理的 Dapp 存在一些邊緣情況。值得注意的是,本地保存鏈狀態是一個資源密集型操作,但一旦完成,用戶就可以像使用普通錢包一樣,使用 Railgun 的隱形地址與 Dapp 交互,不會感受到任何差異。

總結

有一些關於將隱形地址納入以太坊協議的有趣提案。例如, Inco 提出了一個 ERC-20 “包裝器”的概念,它將普通的 ERC-20 合約進行包裝,並加密所有餘額。所有的轉賬和授權操作都在加密的狀態下進行,使用的是完全同態加密技術。Inco 依賴於一些目前僅在其自己網絡上存在的預編譯功能,但未來可能會引入以太坊。

此外,還有一個叫做EIP-7503:零知識蟲洞 的提案,它採用了“燒燬證明”(proof-of-burn)設計。不過這個提案似乎沒有受到廣泛關注,可能是因為它需要更新 EVM,若沒有這一更新,它只能在代幣層面實施,使用一個支持 EIP-7503 的 ERC-20 設計(或者某些 L2 可能會在他們的 EVM 操作碼中加入支持)。

Aztec 是目前最複雜的隱私技術之一,但它要求用戶將資金橋接到 Aztec 網絡上才能使用,這可能對大多數用戶來說是一個不太能接受的體驗。然而,如果以太坊用戶對基本交易隱私的需求日益增加,Aztec 就可能成為一個獨特且有價值的 L2,尤其是在 Dapp 和用戶逐漸遷移到默認提供隱私的平臺時。

類似地,Intmax 是一個以太坊 L2(基於 Plasma 設計),注重隱私,並且通過 ZKP 基礎的反洗錢證明驗證資金的合法性,同時對交易金額施加限制。Intmax 在提供隱私方面有一定的侷限性,尤其是 EVM 智能合約操作不具備隱私保護。但與 Aztec 不同,Intmax 允許開發者用 Solidity 編寫智能合約,這可能更適合一些開發者(根據具體的應用場景)。

錢包支持

雖然隱形地址協議的採用逐漸增加,這是一個積極的信號,但仍然面臨一些挑戰。最重要的挑戰之一是,目前主流的以太坊錢包還不完全支持隱形地址(至少現在不支持)。如果這些錢包打算支持隱形地址,它們可能需要做出幾個選擇。以下是其中一些選擇:

  • 它們是會為單一實現提供有明確立場的支持,還是會構建並維護一個跨多個協議的綜合聚合器?後者在開發和維護上的成本可能會非常高。
  • 是否會有監管方面的考慮?它們是否需要對選擇性去匿名化的程度和機制(例如 Labyrinth 的做法)表明立場?
  • 隱形地址需要一個鏈上組件,通常是與註冊合約(Fluidkey 除外)相關聯,這意味著錢包必須顯式支持每個 EVM 網絡(儘管 Umbra 的設計使得註冊表的無權限部署變得更加容易)。
  • 隱形地址使得與區塊瀏覽器(例如 Etherscan)的現有集成變得更加複雜。例如,“查看在瀏覽器”按鈕對於隱形元地址無法正常工作,因為錢包顯示的是總餘額。這一問題可能也會出現在轉賬中。類似的邊緣情況需要考慮清楚。
  • 根據底層實現的不同,用戶將只能在特定的去中心化應用(dapp)上有效使用隱形地址,即那些由底層協議支持的 dapp。對於模塊化隱形地址架構,這一點是可能實現的。然而,並不是所有的 dapp 都會得到支持,錢包需要以某種方式告知用戶這個信息。使用 eip-5506 時,雖然稍微容易一些,但它仍然存在一定的複雜性和邊緣情況,這些問題可能會影響到錢包的用戶體驗。

對於用戶隱私保護的挑戰,仍然存在改進的空間。參見這篇論文:“Umbra隱形地址方案在以太坊上的匿名性分析”,作者成功地在以太坊主網去匿名化了 48.5% 的隱形交易。他們使用的啟發式方法與協議本身無關,更多地與隱私管理習慣有關。例如,用戶將資金髮送到他們控制的隱形地址,然後再將這些資金髮送回原先發送地址,誤以為這樣就破壞了可追溯性。總的來說,作者識別了六種不同的啟發式方法,這些方法都基於不遵循最佳實踐。然而,這些問題是關鍵的 UX 問題,必須解決。

總體而言,我對隱形地址和以太坊的隱私前景持樂觀態度。我認為我們已經取得了相當顯著的進展,並發現了一些非常可修復的挑戰。我有信心,主流錢包將能夠找到為隱形地址提供足夠支持的方法,使得用戶能夠幾乎不費力地使用它們,享受到用戶期望並應得的隱私保護。

要特別感謝所有致力於研究和建設隱形地址基礎設施的團隊,包括我在本文中提到的四個協議。他們的辛勤工作和堅持不懈將對以太坊產生巨大的影響!

免責聲明:

  1. 本文轉載自【Medium】。所有版權歸原作者所有【Simon Brown】。若對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. Gate Learn 團隊將文章翻譯成其他語言。未經允許,禁止複製、分發或抄襲翻譯文章。

以太坊隱私保護——隱匿地址

中級1/22/2025, 4:16:15 PM
以太坊的隱私問題日益受到關注,尤其是交易透明度可能暴露用戶的財務信息和活動。為解決此問題,隱匿地址(Stealth Addresses)被提出,旨在通過為每筆交易生成唯一的臨時地址,確保接收者的身份和交易細節保持私密。這種方法無需依賴第三方隱私協議,直接在協議層面增強隱私性。然而,隱匿地址的實施仍面臨挑戰。

介紹

Web3加密用戶面臨的一個主要問題是隱私保護不足。由於所有交易都可以在公共賬本中查看,而且越來越多的交易與一個清晰的ENS名稱掛鉤,這讓很多用戶不願進行某些操作,或者必須採取增加使用難度的方式來完成這些操作。比如,從熱錢包轉賬到冷錢包,或者反過來。用戶可能不希望一個錢包和另一個錢包相互關聯,因為他們不希望其他人看到冷錢包的餘額。目前,以太坊的地址不像私人銀行賬戶那樣保密,因為任何人都可以看到你的錢包和交易記錄,甚至你的社交活動(如SBT、認證、在各種dapp上的行為等)。正因為如此,Vitalik曾指出,隱私是以太坊必須解決的三大主要技術轉型之一,只有這樣,以太坊才能真正為普通用戶提供價值。

現有的隱私解決方案,如Tornado Cash,雖然可以提供一定程度的隱私保護,但並不完美,原因有幾點。首先,用戶擔心他們的地址可能會被集中交易所或其他平臺列入黑名單。其次,使用Tornado Cash等工具的體驗並不友好,更適合技術嫻熟的用戶。

隱匿地址提供了一種類似私人銀行賬戶的隱私保護方式,並且這種方式非常直觀易懂。此外,隨著隱匿地址技術的不斷髮展,我們有可能在不違反各國反洗錢(AML)法規的前提下,保護用戶隱私。

用戶隱私需求

雖然關於Web和Web3用戶對隱私的態度的研究不多,但通過網絡搜索,我們發現了一些相關研究,結果顯示用戶對隱私保護有明顯的需求。

  1. 2022年,Simin Ghesmati等人進行的調查併發佈於《區塊鏈中的用戶感知隱私》一文中,指出“有一半的受訪者認為交易隱私對他們至關重要”。雖然這項研究主要集中在比特幣用戶身上,但以太坊用戶的態度很可能也類似。不過,這項研究的樣本量較小(僅14位受訪者)。
  2. 另一個有趣的2022年研究,發佈在Frontiers期刊上的《區塊鏈用戶的政治、經濟和治理態度 》研究中,調查了3710名加密用戶。結果顯示,大約四分之一的受訪者認為隱私是“區塊鏈和加密貨幣最重要的特性”。

  1. 在隱私方面的普遍態度上,Consensys發佈了2023年《 Web3 和加密貨幣全球調查》報告,調查了來自15個國家的15,158人,討論了關於網絡的多個話題,不僅僅是加密貨幣。調查結果顯示,83%的受訪者認為數據隱私非常重要,而只有45%的受訪者表示他們信任當前互聯網服務商對他們的數據和個人信息的使用方式。
  2. 一個 英國金融服務補償計劃進行的調查,於 2023 年 4 月發佈,強調 9% 的受訪者引用了“渴望匿名/隱私”作為他們投資加密貨幣的原因。2023年4月,英國金融服務補償計劃(FSCS)發佈的一項調查顯示,9%的受訪者表示,“對匿名性/隱私的需求”是他們投資加密貨幣的原因。

隱匿交易協議的採納情況

Railgun的表現非常出色,截至2024年11月,協議的使用穩步增長,總價值鎖倉(TVL)超過了7000萬美元,交易量達到了20億美元。

TVL(美元)Railgun在以太坊主網的表現 — 來源: ​​Railgun — DefiLlama

Umbra 的協議使用情況也持續增長(人們將隱匿地址註冊到他們的ENS上),截至2024年11月,註冊人數接近77,000人:

Umbra 累計註冊人數(跨鏈) — 來源:dune.com

如果我們看一下以太坊中最廣為人知的(而且現在不幸變得臭名昭著的)隱私協議——Tornado Cash,我們可以看到,儘管其合約地址技術上被列入了OFAC的SDN名單,Tornado Cash仍然得到了顯著的使用。

下圖顯示了Tornado Cash的TVL變化。我們可以看到,2021年10月左右,Tornado Cash從峰值開始第一次大幅下降,這與加密市場的整體拋售相符;第二次下降發生在2022年8月,當時OFAC將Tornado Cash列入SDN名單;第三次下降出現在2022年11月OFAC重新指定時。然而,從那時起,Tornado Cash儘管面臨制裁,仍然穩定增長,TVL幾乎達到了6億美元。這強烈表明,用戶對以太坊上的基本交易隱私有著明顯的需求。

TVL(美元)Tornado Cash在以太坊主網的表現 — 來源:Tornado Cash — DefiLlama

隱匿地址的現狀

根據這項研究,當前在EVM鏈上已投入使用的四個主要隱匿地址解決方案是:

其中,Fluidkey和Umbra基於以太坊的標準,分別是:

而Labyrinth和Railgun則是基於zerocash協議,這也是zcash的基礎。Zerocash使用一個受保護的資金池,用戶可以將資金存入其中。它通過“票據”的概念實現私密交易,票據是加密表示的價值,每張票據包含一個隱藏值、所有者密鑰和一個唯一編號(空值)。使用zk-SNARKs技術,能夠在不暴露細節的情況下驗證所有權,從而完成私密轉賬。每當票據被使用時,空值被揭示以防止雙重支付,並且為接收者生成新的票據,形成一種UTXO系統。

總體來看,隱匿地址的工作原理是:第三方可以向一個從未存在的地址發送資金,而接收者通過某些方式可以發現並控制這個地址(也就是說,他們可以隨後花費這些資金)。

ERC-5564標準定義了一種機制,接收者可以發佈一個隱匿元地址,基於此可以衍生出新的以太坊地址。任何想要向接收者發送資金的人,都能生成新地址並且讓接收者在沒有任何直接溝通的情況下了解這些資金。所有隱匿地址的實現都基於這一核心原理。

隱匿地址的工作方式

隱匿元地址由兩個壓縮公鑰組合而成,分別稱為“支出密鑰”和“查看密鑰”。隱匿元地址採用EIP-3770標準的鏈特定地址格式,並在前面加上“st:”前綴。以下是一個隱匿地址的示例:

st:eth:0x036ffa94a70a5b9608aca693e12da815fe0295f3739c7b22b0284c6d85c464ba4a02c0521b6fe31714b2ca0efa159402574355b754e0b50406b0b5fb33128eec3507

為了簡化,隱匿地址可以與普通的以太坊地址(以及ENS)關聯,這使得向隱匿地址轉賬變得更加容易。發送者會解析該地址,並依據EIP-5564標準生成一個臨時公鑰,再根據此公鑰創建隱匿地址。發送者將資金髮送到新生成的隱匿地址,通常是通過一個單一合約,所有隱匿地址的接收者都會監聽這個合約並訂閱相關事件。每當公告事件觸發時,接收者將會檢查公告中的臨時公鑰,將其與自己的私鑰結合,查看是否有權限花費發送到隱匿地址的資金。如果有,錢包或客戶端會自動記住隱匿地址及其資金,並把相關餘額顯示給用戶。要實際花費這些資金,用戶只需要用支出私鑰簽署交易即可。

下面的圖示更清晰地展示了這一流程:

這個過程完全是非交互的,也就是說,發送者和接收者之間並沒有直接的溝通,第三方無法觀察到兩者之間的任何關聯。

然而,為了讓這一機制正常運作,接收者必須事先將隱匿地址告知發送者。一種實現方法是通過eip-6538 隱形元地址註冊表,這是一種允許用戶將隱匿元地址與普通以太坊地址綁定的合約,發送者可以通過查找這些地址來找到隱匿元地址。這就使得發送者能夠通過ENS解析普通地址,並從註冊表中查找關聯的隱匿元地址。

這一機制打破了發送者和接收者之間的直接聯繫,保護了兩者的隱私,防止他們的交易被公開。然而,有以下幾點需要注意:

  • 當接收者花費這些資金時,他們將把資金轉移給其他人,而接收者所轉出的資金來源地址及原發送者的信息會被接收方看到。也就是說,轉賬的鏈條依然是完整且可追溯的,但這些信息不會直接與接收者關聯(除非接收者將資金轉至他們已知的非隱匿地址)。需要注意的是,這種情況僅適用於ERC-5564的實現,Railgun和Labyrinth不受此影響。
  • 另一個問題是,為了保持最佳隱私,用戶可能需要將資金保留在最初接收到的隱匿地址裡,直到他們真正需要使用它們,而不是將資金合併到一個單一地址。這就需要記住多個地址,並從不同地址中的資金進行轉賬,增加了操作的複雜性。
  • 為了從這些地址轉賬,接收者需要為地址充入一些ETH來支付交易費用,這可能導致接收者的匿名性被破壞。這是隱匿地址的已知問題之一,也是一些實現方案支持EIP-4337和支付方(paymaster)的原因。
  • 隱匿地址方案的一個缺點是,接收者需要監控區塊鏈上的公告事件,並檢查每個公告以確定自己是否收到了資金。這顯然對大多數用戶來說是一種不切實際的負擔,尤其是在跨多個網絡接收資金時。為了提高效率,標準中規定了一個“查看標籤”(view tag),這是從共享祕密派生的一個簡化哈希值,可以用來快速篩選出那些肯定不是發給自己的交易。通過使用查看標籤,桌面端的性能影響不大,但在移動設備上可能會稍顯明顯。性能問題通常只有在錢包恢復時才會明顯,因為恢復錢包時需要掃描每一個地址,直到合約部署的那一刻,這需要耗費時間。
  • 為了避免這一問題,用戶可以選擇將私有查看密鑰與受信任的第三方共享。這個第三方服務會監控多個網絡,並在用戶收到資金時通知他們。當然,這也有一個取捨:雖然第三方無法實際花費用戶的資金(因為他們沒有私鑰),但他們可以查看所有發送給某個接收者的資金,因此,用戶需要信任他們保護隱私。Fluidkey 就是默認採用這種方式。
  • 雖然 ERC-5564 標準的隱匿地址協議主要用於保障轉賬隱私,但對於一些非金融用途,比如調用任意智能合約函數,仍然需要額外的技術支持,通常這些功能是根據具體實現來定製的。

比較矩陣

本文探討的四種隱匿地址協議之間有許多不同之處,包括一些細微的差異和各自的優勢與不足。最重要的對比點可能是關於可追溯性和隱藏金額的處理方式。

Fluidkey 和 Umbra 可以將資金轉到標準的以太坊地址,同時斷開與接收者身份的關聯,但它們仍然保留了交易的可追溯性,意味著任何查看隱匿地址交易歷史的人都能追蹤到發送者。這意味著,若你收到資金並通過隱匿地址再次轉賬,接收者將能夠看到這筆資金的來源。此外,轉賬金額本身也是公開的。相比之下,Railgun 和 Labyrinth 隱藏了發送者信息和轉賬金額,但代價是這些交易都發生在一個單一的合約內,而非傳統的以太坊地址交易。

下圖顯示了我們在本文中比較的協議在這兩個重要維度上的比較。

接下來是一個比較矩陣,展示了四種主要隱匿地址協議在六個主要維度上的比較:

  1. 端到端隱私:只有發送者和接收者能夠看到交易信息。
  2. 前向保密性:通過隱匿交易接收到的資金,不會讓接收方看到資金來源。
  3. 是否遵循 ERC-5564 和 ERC-6538 標準。
  4. 是否具有可擴展的模塊化架構,支持與第三方 Dapp 的集成。
  5. 是否提供 SDK,供開發者集成使用。
  6. 是否提供去匿名化支持,以確保一定程度的合規性。
  7. 是否能隱藏轉賬的金額/價值。

|協議|端到端隱私 |前向保密性 |開放標準 |模塊化架構| SDK |去匿名化支持 |隱藏金額 |

|——————|——————-|————————-|——- —————-|———————————|———|———— —————————|————————|

|Umbra | ✅ | ⛔️ | ✅ | ⛔️ | ⛔️ | ⛔️ | ⛔️ |

|Fluidkey | ⛔️ | ⛔️ | ✅ | ✅ |即將 | ✅ | ⛔️ |

|Labyrinth| ✅ | ✅ | ⛔️ | ✅ | ✅ | ✅ | ✅ |

|Railgun | ✅ | ✅ | ⛔️ | ✅ | ✅ |自願 | ✅ |

以下部分詳細描述了其他一些細節差異。每種隱匿地址實現都有其獨特之處,根據你的需求不同,這些差異可能會影響你的選擇。

舉個例子:在 Fluidkey 中,所有的轉賬都會直接發送到鏈上的隱匿地址;而在 Umbra 中,只有 ETH 會發送到鏈上的隱匿地址,代幣則會轉移到一箇中央合約中;而在 Railgun 和 Labyrinth 中,所有交易都通過核心合約處理,而不是直接發送到鏈上的隱匿地址。

深入解析隱匿地址的實現

Fluidkey

Fluidkey是一種基於 ERC-5564 標準的隱匿地址協議,支持用戶發送、接收、交換以及橋接 ETH 和 ERC-20 代幣。目前,Fluidkey 已在 Base、Optimism、Arbitrum、Polygon、Gnosis 和 Ethereum 主網部署。

用戶通過 Fluidkey 的網頁界面進行操作。首次登錄時,用戶使用錢包簽署一條密鑰生成消息,基於這條消息生成他們的查看密鑰和支出密鑰。每次用戶進入應用時,密鑰都會重新生成。

Fluidkey 有一些與其他隱匿地址實現不同的特點。最主要的不同之處在於,用戶需要與 Fluidkey 共享他們的私密查看密鑰(嚴格來說是從該密鑰派生的一個 BIP-32 節點)。這樣,Fluidkey 就能為用戶生成隱匿地址,並且在用戶收到資金時通知他們。然而,這也意味著 Fluidkey 可以查看用戶的交易和餘額,這是一個隱私上的妥協。不過,用戶的資產依然是完全自主管理的。

Fluidkey 設計中的另一個亮點是,它會為每個新的隱匿地址部署一個智能合約賬戶。只有當隱匿地址中的資金被花費時,智能合約賬戶才會被創建。這個賬戶是一個 1/1 Safe 賬戶,支持如Gas 贊助等功能,使得用戶可以更方便地管理多個隱匿地址。詳細的技術說明可以在他們的技術手冊中找到。

儘管 Fluidkey 確實有保留對用戶賬戶透明的做法,這在合規性上可能反而是一個優勢,雖然目前 Fluidkey 如何處理未來可能出現的執法請求還沒有公開具體框架。但值得注意的是,Fluidkey 位於瑞士,瑞士有著嚴格的數據保護法——任何數據共享都必須有明確的法律依據,並且要通過法院審查(詳細瞭解瑞士隱私法,可以參考這篇文章)。

用戶可以完全自由地導出交易記錄,或者將查看密鑰分享給第三方(如會計),這對於企業尤其有幫助。但需要注意的是,根據 ERC-5564 規範,分享公鑰意味著完全開放,無法單獨查看某一筆交易。同時,像所有 ERC-5564 的實現一樣,雖然無法追溯到具體用戶,但每個隱匿地址的交易歷史對於持有查看密鑰的人仍然是公開的。為了減少這種影響,Fluidkey 提供了旋轉查看密鑰的功能,用戶可以每月更換查看密鑰,並只將特定月份的訪問權限共享給第三方。

Fluidkey 還提供一個優勢:隱匿地址並非由發送方生成,而是每次通過查詢 ENS 時,由 Fluidkey 自行隨機生成。這大大加快了流程,因為用戶無需掃描公告事件來查找自己的交易。也就是說,發送方不需要擁有隱匿地址錢包,他們只需像往常一樣發送資金即可。這意味著 Fluidkey 設計中沒有註冊合約,這也是其獨特之處,帶來了顯著的優勢。

值得一提的是,Fluidkey 承諾完全自我託管,並且已經開源了他們的 Stealth Account Kit 庫。除此之外,還提供了幾個獨立開發的恢復接口,萬一 Fluidkey 突然消失,這些接口也能幫助用戶恢復賬戶,確保資金永遠不會被鎖定或卡住。

地址抽象化

通過使用智能合約賬戶,Fluidkey 能夠自動抽象管理各個隱匿地址。這意味著,如果你希望從多個隱匿地址中轉出指定金額給某個收款人,Fluidkey 可以自動計算出哪些地址組合能提供足夠的資金來完成轉賬,同時處理所有的 gas 費用和合約部署,所有這一切都在幕後自動完成。此外,Fluidkey 還允許用戶通過一個名為“標籤”的酷功能,幫助用戶將地址分類管理。

ENS 解析

Fluidkey 要求用戶創建特定於 Fluidkey 的 ENS 名稱。它們有兩種形式:username.fkey.id 和 username.fkey.eth。一種是指向 Web 界面的 URL,用來向某人轉賬,另一種則是標準的 ENS 名稱,可以與錢包一起使用。

ENS 設置使用了一個 ENS 離鏈解析器 (即 ERC-3668:CCIP 讀取),該解析器返回隱匿地址。每次查詢這個離鏈解析器時,它會為相應的 ENS 名稱生成並返回一個新的隱匿地址。這是一個非常棒的功能,因為它允許用戶使用一個易於識別的 ENS 名稱,同時保持隱匿地址的隱私性,因為生成的隱匿地址與 ENS 名稱之間無法回溯性地建立聯繫。

成本

Fluidkey可以免費使用,不收取任何費用。唯一的費用是在你想要花費這些資金時,為每個有資金的地址部署一個 Safe 合約。然而,雖然在主網部署相對較貴,但在 L2 上,費用是微不足道的,通常不到 1 美分,即使是將多個隱匿地址合併成一次轉賬。

通過 Safe 部署,Fluidkey 還可以進行 gas 贊助——他們計算出 gas 費用,並從用戶的餘額中扣除,即使是代幣也能支付。如果是代幣, 中繼者將代表用戶部署 Safe 並轉移代幣。

Umbra Cash

Umbra 是由 Scopelift實現的基於 eip-5564 和 eip-6538 的隱匿地址協議。當用戶首次登錄 Umbra 應用時,他們會經過一個設置過程,在此過程中需要簽署一條消息,系統基於這條消息生成用戶的支出密鑰和查看密鑰,以及相應的隱匿元地址。然後,用戶將該隱匿元地址註冊到自己的主錢包地址,並將其存儲在鏈上,這一點與 Fluidkey 的實現方式有所不同。

Umbra 的 erc-5564 實現方式最符合標準,因為它不涉及訪問用戶的密鑰。這意味著 Umbra(或其他任何人)無法查看用戶的資金狀況。但這也意味著,想要向用戶發送資金的發送方,必須使用與 eip-5564 兼容的錢包(或使用 Umbra 應用)來生成隱匿元地址。

當有人想要 發送 資金給用戶時,他們通常會使用 Umbra 應用程序來這樣做。本質上,當有人想要向某個用戶發送資金時,通常會通過 Umbra 應用來完成。Umbra 應用會查找與用戶的 ENS 名稱或錢包地址註冊的隱匿元地址,並生成一個隱匿地址。收款人在登錄 Umbra 應用後,可以掃描並查看自上次登錄以來,發送到其隱匿地址的所有資金。得益於高效的緩存機制,這一掃描過程通常只需 10-15 秒,用戶也可以選擇指定一個特定區塊範圍來縮小掃描範圍。Umbra v2 版本將引入視圖標籤(viewtags)功能,進一步加快這一過程。

中繼者

隱匿地址的一個問題是,為了讓收款人能夠使用發送到隱匿地址的資金,他們需要為該地址提供 ETH 或其他支付交易費用的 gas 代幣。在大多數網絡中,如果隱匿地址接收到的是 ETH,通常不會出現問題。然而,如果收到的是 erc-20 代幣或 NFT,使用 ETH 為該隱匿地址支付 gas 費用可能會暴露該地址與用戶其他地址的關聯,從而失去隱私保護。

為了繞過這一問題,Umbra 引入了中繼者機制。當發送給 Umbra 用戶的資產不是 ETH 時,它們會先發送到一個特殊的合約,而不是直接發送到隱匿地址。用戶可以通過在 Umbra 應用中發起一個元交易,指示 Umbra 的中繼者代為將資金從合約中轉移到用戶的隱匿地址。中繼者會為用戶完成這筆交易,並扣除相應的費用。

成本

為了防止垃圾郵件,Umbra 合約在低交易費用的網絡中轉賬時,會收取一小部分費用。這是為了避免垃圾郵件增加掃描交易的成本,導致識別相關交易變得更加困難。因此,這筆費用被認為是一種合理的權衡。

支持的網絡

目前,Umbra 已經部署在以太坊主網、Optimism、Polygon、Gnosis Chain 和 Arbitrum 等多個網絡上。 Umbra 的註冊合約設計獨特,使用了 create2 部署方法,並且智能合約地址在所有網絡上都是相同的。這意味著,只要合約存在於某個網絡,客戶端就可以確認這是正確的合約。客戶端可以配置網絡,任何人都可以在任何網絡上部署合約。他們已經統一了字節碼,並且合約沒有特定的所有者,允許任何人在任何鏈上無權限地部署註冊和公告合約。

Umbra v2

Scopelift 正在開發 Umbra的第2版本 ,新的版本引入了模塊化架構,允許核心合約擴展支持更多代幣標準或其他類型的用例。藉助這種新架構,第三方開發者可以為各種代幣標準構建模塊,例如 erc-1155、erc-7621,支持 erc-4337 paymasters 或任何其他功能。目前,Umbra 核心合約支持兩種主要場景,分別是 ETH 和 erc-20,版本 2 將支持更多不同的場景。

Labyrinth

Labyrinth 是一個基於零知識證明(zkp)的隱私協議,它並不像 eip-5564 + eip-6538 那樣依賴標準,而是通過 zkFi 中間件為交易增加匿名性和隱私保護。Labyrinth 的白皮書將其描述為一個“zkFi”中間件:“zkFi 提供了一個封裝的解決方案,作為一個隱私中間件,內置合規性。”內置合規性指的是 Labyrinth 的“選擇性去匿名化”,這是一種複雜的解決方案,允許某些交易對特定授權方(即法律機構,如國際刑警等)去匿名,同時保持透明性和公開性。

Labyrinth 使用的核心智能合約包括一個多交易和多資產池,允許用戶在一個交易中交易多個資產。為了花費資產,用戶掃描網絡並獲取加密的票據數據,解密票據,並篩選出要花費的資產。隨後,用戶創建一個包含交易的 ZKP(零知識證明)及與票據相關的簽名密鑰的簽名。

Labyrinth 核心合約的一部分是一個轉換器合約,它與模塊化代理合約接口,這些代理合約基本上是外部合約的代理。例如:如果用戶想使用 Labyrinth 與 Uniswap 進行交互,用戶會創建一個交易,使用轉換器合約通過 Uniswap 的代理合約調用 Uniswap 池的交換操作。

Labyrinth 的 zkFi 協議使用“票據”來跟蹤餘額和轉賬。票據本質上是一個數據結構,描述了某個資產的金額及其屬於哪個地址。客戶端存儲創建票據所需的信息,並使用這些信息來花費資產。票據的承諾(資產 ID、所有者和價值的哈希)存儲在鏈上的 Merkle 樹中。實際上,Labyrinth 使用了兩棵 Merkle 樹,一棵用於票據,一棵用於根地址。

票據的數據結構包括:

  • 資產ID(assetId):指示票據代表的資產類型(如 ETH、WBTC、MATIC 等)。
  • 金額(value):票據表示的金額。
  • 葉節點索引(leafIndex):票據在 Merkle 樹中的索引位置。
  • 致盲因子(blinding):用於加密的隨機因子。
  • 根地址(rootAddress):擁有該票據的用戶地址。
  • 撤銷者公鑰(revoker):選擇的撤銷者的公鑰。

您會發現,以上數據結構中沒有提到資產的所有者,這有些奇怪,因為在票據 Merkle 樹中記錄的承諾實際上是資產 ID、金額和所有者的哈希值。實際上,所有者是根據根地址、撤銷者以及一個隨機的致盲因子計算出來的。因此,外部觀察者看到的所有者地址其實是每筆新交易時都創建的一個新地址。

屏蔽池

Labyrinth 的獨特之處在於,它與傳統的隱形地址協議略有不同,採用了一種屏蔽池的方式,使用票據概念創建了一個屏蔽的 UTXO 池,提供了前向保密性。回想一下,基於 eip-5564 的實現中,當用戶將資金轉賬給某個對象時,接收方可以看到資金的來源。舉個例子,愛麗絲通過隱形地址付款給鮑勃,鮑勃又付款給查理,這樣查理就能知道鮑勃最初從愛麗絲那裡收到了資金,依此類推。而 Labyrinth 的屏蔽池就避免了這個問題。

為了理解這個屏蔽池的工作方式,我們需要了解資金在協議中如何轉移:

用戶在屏蔽池中的餘額是所有相關資產票據的總和。要使用這些票據,用戶必須揭示票據的“無效符”。無效符是唯一的,一旦票據被花費,無效符就會被標記,防止重複使用,並且會基於已用票據創建一個新票據。多個相同資產的票據可以合併,新的票據也可以被創建。無效符就是 (𝑙,𝑐,𝛿) 的哈希值,其中 𝑙 是票據 Merkle 樹中該票據承諾的索引,𝑐 是承諾,𝛿 是一個隨機的致盲因子。

隱形交易的接收方通過與 eip-5564 相同的方式識別交易,即他們監聽核心合約發出的事件,識別哪些隱形地址可以用於發送資金,並將這些地址記錄在本地。通過視圖標籤的使用,以及通過本地緩存和異步同步票據信息,接收到資金的過程變得更加高效。

例如,Aztec 提出了一個提案來加速接收資金的發現過程,具體內容請參見《提案請求:註釋發現協議 — Aztec》。

為了使用這些資金,用戶還需要生成 zk-proof,這與 eip-6654 實現方式不同,後者直接使用普通的以太坊地址。生成證明需要一個兼容的錢包,性能較好,一般中端安卓設備上大約 20 秒左右可以完成。

Bundler 和轉換器

Labyrinth 提供了幾項非常實用的功能,解決了隱形交易的一些痛點。通過 erc-4337 bundlers 發送到 Labyrinth 核心合約的交易,是作為用戶操作進行的。這意味著用戶可以在不需要 ETH 或 gas 代幣的情況下使用票據,因為他們可以通過 erc-4337 paymaster 讓系統代為支付 gas,從而增加了隱私性。唯一的例外是初始存款,它不是通過用戶操作提交的。通過 erc-4337 paymaster,還可以通過轉賬資產本身來支付 gas,即使這些資產是 erc-20 代幣,Labyrinth 還提供了 gas 價格預言機 API。

Labyrinth 另一個非常棒的功能是它的模塊化架構,允許轉換器合約作為第三方 dapp 的代理。這使得用戶不僅可以通過隱形交易轉賬資金,還可以與第三方 dapp(例如 Uniswap、Aave、Lido 等)進行交互。這些代理“轉換器”合約本質上實現了一個功能,該功能輸入一定數量的資產並輸出相應數量的資產,底層邏輯存在於某個第三方合約中。

合規解決方案

Labyrinth 使用一種叫做選擇性去匿名化(SeDe)的框架,確保符合合規要求和監管標準。

在 Labyrinth 的票據數據結構中,包含一個叫做“撤銷者”的字段。撤銷者是一個特定實體的地址,可以啟動去匿名化的過程。用戶必須從預設的列表中選擇至少一個撤銷者。撤銷者的責任不僅是識別潛在的非法或不合規活動,更重要的是在執法機關的要求下執行去匿名化操作。

需要注意的是,撤銷者並沒有直接去匿名化交易的權限。他們的職責是發起去匿名化的請求,而這些請求會公開發送給一個叫做“監護人”的委員會,這些監護人負責審查隱私和合規問題。監護人會投票決定是否允許去匿名化某筆交易。如果投票通過,並且達成法定人數,撤銷者就能解密交易數據,從而將該筆交易與之前的交易進行關聯,直到交易的來源完全去匿名化。

這種機制通過制衡確保了任何單一實體不能隨意公開交易數據。即使監護人之間合謀,他們也無法繞過撤銷者的權限,而撤銷者也必須得到監護人委員會的多數票才能執行去匿名化操作。

Railgun

RAILGUN 是一種隱私保護的隱形交易系統,已經在以太坊、BSC、Polygon 和 Arbitrum 上部署。它與 Labyrinth 有相似之處,都是基於“票據”概念,這些票據以承諾的形式存儲在 Merkle 樹中,並構成 UTXO 集。這意味著,票據可以通過創建新票據來轉給其他接收者。在消費票據時,需要為該票據添加一個“無效符”來防止雙重消費。而無效符只能由票據的擁有者計算出來,它是根據支出密鑰的哈希值和 Merkle 樹中票據的索引值計算的,意味著只有票據的擁有者才能花費該票據,且每個票據只能使用一次。

在 Railgun 中,隱形元地址的前綴為“0zk”,並且像 eip-5564 一樣,它由公共查看密鑰和公共支出密鑰組成。不同之處在於,Railgun 使用的是 BabyJubJub 曲線上的 Ed25519 密鑰,而不是 ECDSA 和 secp256k1 密鑰。用戶通過掃描 Railgun 合約中的所有事件,使用查看密鑰來識別哪些事件表示資金已轉入他們的賬戶。

Railgun 利用廣播者網絡進行操作。廣播者是中繼者,它們接收來自用戶的元交易並將實際交易廣播到目標區塊鏈,且會代表用戶支付 Gas 費用。通過這種方式,用戶的交易可以被保護在廣播者背後,從而保障用戶的匿名性。用戶向廣播者發送的交易會被加密,並通過Waku協議 發送。

Railgun 具有模塊化架構,允許與外部智能合約互動,提供超越簡單轉賬的功能。它通過 AdaptRelay 合約實現,在與外部合約交互前後對代幣進行遮蔽和解遮蔽,例如,解遮蔽代幣 A,通過某個自動做市商(AMM)交換為代幣 B,再將代幣 B 遮蔽回原始所有者。

Railgun 即將發佈的版本 3 將採用 eip-4337 標準,並且支持傳統的元交易。團隊希望通過為 Railgun 設置專門的 eip-4337 用戶操作內存池,允許獨立的求解者作為廣播者參與交易的廣播。目前,Railgun 團隊正在與 Umbra 合作,共同研究這一方向,解決一些邊緣案例和潛在問題。有關更多細節,可以參考下文關於 Railgun v3 的部分內容。

費用

Railgun 協議在存款和取款時收取 0.25% 的手續費,這部分費用會被轉入 DAO 財庫,並逐步分發給質押 RAIL 治理代幣的用戶。除了這筆固定的 0.25% 手續費外,廣播者通常還會收取額外費用,一般來說,大約是鏈上交易 Gas 費用的 10%。

治理

Railgun 採用了去中心化治理系統,任何對核心合約(包括財庫和治理合約)的修改都需要通過 DAO 提案流程。特別的是,Railgun 在不同網絡上的實例各自擁有獨立的治理體系。例如,以太坊、Polygon 和 Binance Chain 上的 Railgun 各自有不同的治理結構和代幣。

SDK 和 Cookbook

Railgun 提供了詳細的 SDK,供錢包和 Dapp 開發者使用,幫助他們將隱形地址功能集成到應用中。此外,Railgun 還提供了由社區維護的 cookbook ,其中包含一系列“食譜”,允許 Dapp 開發者為 Railgun 創建模塊,用戶通過這些模塊可以與 Dapp 進行私密交互。例如,開發者可以為去中心化交易所(DEX)編寫食譜,允許 Railgun 用戶在不暴露交易信息的情況下交換代幣。

Railgun v3

Railgun 版本 3 預計將使交易費用降低 50% 到 60%。此外,版本 3 還將支持通過專用內存池來處理 eip-4337 用戶操作,並引入基於意圖的架構,允許求解者競爭最佳執行方案。雖然細節仍然在開發中,但目前團隊正在與CowSwap合作,計劃通過前置和後置鉤子機制優化求解過程,進一步提高交易效率。

Railgun Connect

Railgun Connect 可能是提議中最有趣的變化之一,它類似於 WalletConnect 的功能,允許用戶通過 0zk 地址連接到大多數前端應用,以進行私密操作,而不需要這些 Dapp 特意通過自定義模塊集成 Railgun。

Railgun Connect 是一個瀏覽器擴展,它的工作方式是通過 HardHat 在本地模擬鏈的狀態,並將一個 web3 提供者注入到 Dapp 中,連接到本地 HardHat 版本的鏈。這就允許用戶像平常一樣與 Dapp 合約交互,記錄交易,批量處理這些交易並生成 SNARK 證明,最後將證明發送到真實鏈上的 Railgun 合約。雖然描述有所簡化,但它傳達了基本概念。簡單來說,用戶幾乎可以與任何 Dapp 進行交互,唯一的限制是對於那些需要進行額外鏈下處理的 Dapp 存在一些邊緣情況。值得注意的是,本地保存鏈狀態是一個資源密集型操作,但一旦完成,用戶就可以像使用普通錢包一樣,使用 Railgun 的隱形地址與 Dapp 交互,不會感受到任何差異。

總結

有一些關於將隱形地址納入以太坊協議的有趣提案。例如, Inco 提出了一個 ERC-20 “包裝器”的概念,它將普通的 ERC-20 合約進行包裝,並加密所有餘額。所有的轉賬和授權操作都在加密的狀態下進行,使用的是完全同態加密技術。Inco 依賴於一些目前僅在其自己網絡上存在的預編譯功能,但未來可能會引入以太坊。

此外,還有一個叫做EIP-7503:零知識蟲洞 的提案,它採用了“燒燬證明”(proof-of-burn)設計。不過這個提案似乎沒有受到廣泛關注,可能是因為它需要更新 EVM,若沒有這一更新,它只能在代幣層面實施,使用一個支持 EIP-7503 的 ERC-20 設計(或者某些 L2 可能會在他們的 EVM 操作碼中加入支持)。

Aztec 是目前最複雜的隱私技術之一,但它要求用戶將資金橋接到 Aztec 網絡上才能使用,這可能對大多數用戶來說是一個不太能接受的體驗。然而,如果以太坊用戶對基本交易隱私的需求日益增加,Aztec 就可能成為一個獨特且有價值的 L2,尤其是在 Dapp 和用戶逐漸遷移到默認提供隱私的平臺時。

類似地,Intmax 是一個以太坊 L2(基於 Plasma 設計),注重隱私,並且通過 ZKP 基礎的反洗錢證明驗證資金的合法性,同時對交易金額施加限制。Intmax 在提供隱私方面有一定的侷限性,尤其是 EVM 智能合約操作不具備隱私保護。但與 Aztec 不同,Intmax 允許開發者用 Solidity 編寫智能合約,這可能更適合一些開發者(根據具體的應用場景)。

錢包支持

雖然隱形地址協議的採用逐漸增加,這是一個積極的信號,但仍然面臨一些挑戰。最重要的挑戰之一是,目前主流的以太坊錢包還不完全支持隱形地址(至少現在不支持)。如果這些錢包打算支持隱形地址,它們可能需要做出幾個選擇。以下是其中一些選擇:

  • 它們是會為單一實現提供有明確立場的支持,還是會構建並維護一個跨多個協議的綜合聚合器?後者在開發和維護上的成本可能會非常高。
  • 是否會有監管方面的考慮?它們是否需要對選擇性去匿名化的程度和機制(例如 Labyrinth 的做法)表明立場?
  • 隱形地址需要一個鏈上組件,通常是與註冊合約(Fluidkey 除外)相關聯,這意味著錢包必須顯式支持每個 EVM 網絡(儘管 Umbra 的設計使得註冊表的無權限部署變得更加容易)。
  • 隱形地址使得與區塊瀏覽器(例如 Etherscan)的現有集成變得更加複雜。例如,“查看在瀏覽器”按鈕對於隱形元地址無法正常工作,因為錢包顯示的是總餘額。這一問題可能也會出現在轉賬中。類似的邊緣情況需要考慮清楚。
  • 根據底層實現的不同,用戶將只能在特定的去中心化應用(dapp)上有效使用隱形地址,即那些由底層協議支持的 dapp。對於模塊化隱形地址架構,這一點是可能實現的。然而,並不是所有的 dapp 都會得到支持,錢包需要以某種方式告知用戶這個信息。使用 eip-5506 時,雖然稍微容易一些,但它仍然存在一定的複雜性和邊緣情況,這些問題可能會影響到錢包的用戶體驗。

對於用戶隱私保護的挑戰,仍然存在改進的空間。參見這篇論文:“Umbra隱形地址方案在以太坊上的匿名性分析”,作者成功地在以太坊主網去匿名化了 48.5% 的隱形交易。他們使用的啟發式方法與協議本身無關,更多地與隱私管理習慣有關。例如,用戶將資金髮送到他們控制的隱形地址,然後再將這些資金髮送回原先發送地址,誤以為這樣就破壞了可追溯性。總的來說,作者識別了六種不同的啟發式方法,這些方法都基於不遵循最佳實踐。然而,這些問題是關鍵的 UX 問題,必須解決。

總體而言,我對隱形地址和以太坊的隱私前景持樂觀態度。我認為我們已經取得了相當顯著的進展,並發現了一些非常可修復的挑戰。我有信心,主流錢包將能夠找到為隱形地址提供足夠支持的方法,使得用戶能夠幾乎不費力地使用它們,享受到用戶期望並應得的隱私保護。

要特別感謝所有致力於研究和建設隱形地址基礎設施的團隊,包括我在本文中提到的四個協議。他們的辛勤工作和堅持不懈將對以太坊產生巨大的影響!

免責聲明:

  1. 本文轉載自【Medium】。所有版權歸原作者所有【Simon Brown】。若對本次轉載有異議,請聯繫 Gate Learn 團隊,他們會及時處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. Gate Learn 團隊將文章翻譯成其他語言。未經允許,禁止複製、分發或抄襲翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!