以太坊中的隱私——隱秘地址(Stealth Address)

來源:登鏈社區

介紹

Web3 加密用戶面臨的一個主要痛點是缺乏隱私。所有交易在公共帳本上都是可見的,並且越來越多地與一個清晰可見的 ENS 名稱相關聯,這使得用戶在進行某些活動時缺乏動力,或者導致他們以增加用戶體驗摩擦的方式進行這些活動。一個例子是簡單地將資金從熱錢包轉移到冷錢包或反之亦然。用戶可能不希望一個錢包與另一個錢包相連,因為他們可能不希望自己的冷錢包餘額被看到。目前,以太坊地址並不像私人銀行帳戶那樣運作,因為每個人都可以看到你的錢包,越來越多地,你的社交活動(SBT、證明、在各種 dapp 上的活動等)也會被看到。正因如此,Vitalik 將隱私稱為以太坊需要經歷的 三大技術轉型之一 ,以便對普通用戶有用。

使用現有的隱私解決方案,如 Tornado Cash,出於幾個原因,體驗並不理想。首先:用戶會合理地擔心自己的地址在中心化交易所或其他平臺上被列入黑名單。其次,與 Tornado Cash 等服務的交互用戶體驗並不友好,實際上只適合高度熟練的用戶。

隱秘地址為用戶提供了一種隱私,類似於他們在私人銀行帳戶中所理所當然的隱私,並且以易於理解的方式實現。此外,圍繞隱秘地址的創新意味著我們可以以符合多個司法管轄區的反洗錢法規的方式來實現這一點。

用戶對隱私的需求

雖然關於網絡和 Web3 用戶對隱私態度的研究並不廣泛,但通過網絡搜索發現了以下研究,結果大致一致,表明對交易隱私有明確的需求。

  1. 2022 年進行的一項調查,由 Simin Ghesmati 等人發表在題為 User-perceived privacy in blockchain 的論文中,指出「 一半的受訪者表示交易隱私對他們非常重要 」。雖然這項研究與比特幣的關係更大,但以太坊用戶可能也有類似的態度。然而,這項研究的樣本量相對較小(14 名參與者)。

  2. 另一項有趣的研究來自 2022 年,發表在 Frontiers 上,題為 Political, economic, and governance attitudes of blockchain users ,這項研究更為全面,共調查了 3,710 名加密用戶。結果顯示,大約四分之一的受訪者表示隱私是「 區塊鏈和加密貨幣中最重要的特性 」。

  1. 在對隱私的總體態度方面, Consensys 發布了一項名為 Web3 and crypto global survey 2023 的研究,其中對來自 15 個國家的 15,158 人進行了在線調查,涉及與網絡相關的各種主題,而不僅僅是加密。調查發現,83% 的受訪者認為數據隱私很重要,而只有 45% 的受訪者表示他們信任當前網際網路服務對其數據和個人信息的使用。

  2. 英國金融服務補償計劃進行的一項 調查 ,於 2023 年 4 月發布,強調 9% 的受訪者將「 對匿名性/隱私的渴望 」作為他們投資加密貨幣的原因。

隱秘交易協議的採用

Railgun 的使用數據令人印象深刻,該協議的使用似乎隨著時間的推移穩步增長,截至 2024 年 11 月,達到超過 7000 萬美元的總鎖倉價值(TVL)和 20 億美元的交易量。

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

Umbra 的使用人數也穩步增加(註冊隱秘地址到他們的 ENS 的人數),截至 2024 年 11 月接近 77,000 人:

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

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

下圖顯示了 Tornado Cash 隨時間變化的 TVL。我們可以觀察到,從 2021 年 10 月左右的峰值開始,TVL 的第一次重大下降與加密市場的整體拋售相吻合,第二次重大下降發生在 2022 年 8 月,正好對應 OFAC 將 Tornado Cash 列入 SDN 名單,第三次重大下降對應於 2022 年 11 月 OFAC 的重新指定。然而,自那時以來,儘管受到制裁,Tornado Cash 的使用仍在穩步增長,TVL 接近 6 億美元。這強烈證明了以太坊中對基本交易隱私的需求。

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

隱秘地址的現狀

本研究確定了目前在 EVM 鏈上生產的 4 個主要解決方案,它們是:

  • Fluidkey

  • Umbra

  • Labyrinth

  • Railgun

Fluidkey 和 Umbra 基於以太坊標準,這些標準是:

  • ERC-5564: 隱秘地址協議

  • ERC-6538: 隱秘元地址註冊

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 以支付 gas,這可能會使接收者失去匿名性。這是隱秘地址的一個已知問題,也是許多實現支持 eip-4337 和支付者的原因之一。

  • 隱秘地址方案的一個缺點是,接收者需要監控區塊鏈以獲取 公告 事件,並檢查每個公告以確定他們是否收到了資金。這顯然對大多數用戶來說是一個不切實際的開銷,尤其是在接收多個網絡的資金時。為了使這個過程更高效,標準指定了一個「查看標籤」,這是從共享秘密派生的截斷哈希,可以用來快速丟棄那些顯然不打算發送給他們的交易。通過使用查看標籤,桌面上的性能並不是那麼糟糕,但在行動裝置上可能會更明顯。性能下降真正明顯的唯一時刻是如果錢包正在恢復,在這種情況下,錢包需要掃描自鏈上合約部署以來的每個地址,這非常耗時。

  • 為了解決這個問題,用戶可以選擇與可信的第三方共享私有查看密鑰。這個第三方服務可以監控各種網絡,並在他們收到資金時通知用戶。當然,這帶來了一個權衡:儘管第三方實際上無法支出用戶的資金(他們沒有私有支出密鑰),但他們可以看到發送給特定接收者的所有資金,這意味著用戶需要信任他們的隱私。Fluidkey 默認執行此操作。

  • 標準隱秘地址協議,即 ERC-5564,旨在促進隱私保護的轉移,然而,非金融用例(如調用任意智能合約函數)需要更多的工程,通常是特定於實現的。

比較矩陣

我們可以通過多種方式比較本文探討的四種隱秘地址實現。所有實現都有細微的差異和權衡,但可能最重要的要點是關於可追蹤性和價值的模糊化。

雖然 Fluidkey 和 Umbra 都允許資金轉移到標準以太坊地址,同時打破與接收者身份的任何連結,但它們仍然保留了交易的可追蹤性,這意味著發送者對任何檢查隱秘地址交易歷史的人都是可見的。這意味著如果你在隱秘地址收到資金,你決定將這些資金髮送給的人將看到它們的來源。此外,實際轉移的價值也是可見的。Railgun 和 Labyrinth 隱藏了發送者以及發送的價值,但以此為代價的是這一切都發生在一個單一的合約內,而不是作為對普通以太坊地址的正常交易。

下面的圖展示了我們在本文中討論的協議在這兩個重要的比較維度上的相互比較。

為了更詳細地探討這些差異,以下是四個主要隱匿地址協議在六個主要維度上的比較矩陣:

  1. 完整的端到端隱私(只有發送者和接收者看到支付信息)

  2. 前向保密。通過隱匿交易接收的資金不允許第二個接收者看到資金的來源

  3. 遵循 erc-5564 和 erc-6538 標準

  4. 實現了可擴展的模塊化架構,允許與第三方 dapp 的集成

  5. 實現是否提供開發人員可以用來集成的 SDK?

  6. 解決方案是否通過某種去匿名化支持提供合規性?

  7. 設計是否支持對轉移的金額/價值進行混淆?

t5u9vYiEaGRw1MKRH5lDDLBQLJZdcoQeHguQFRsm.jpeg

以下部分更詳細地捕捉了一些其他細微差別和區別。每種實現都有有趣的細微差別,這可能對你的用例產生影響或不產生影響。

例如:在 Fluidkey 中:所有交易直接轉到鏈上的隱匿地址,而 Umbra**:** 只有 ETH 轉到鏈上的隱匿地址,而代幣轉到中央合約,與 Railgun 和 Labyrinth 一樣,所有交易都轉到核心合約,而不是直接轉到鏈上的隱匿地址。

深入探討隱匿地址的實現

Fluidkey

Fluidkey 是一種 erc-5564 的實現,允許用戶發送、接收、交換和橋接 ETH 和 erc-20 代幣。在撰寫本文時,Fluidkey 已在 Base、Optimism、Arbitrum、Polygon、Gnosis 和以太坊主網上部署。

用戶通過其網頁用戶界面與 Fluidkey 互動。當他們首次使用錢包登錄時,他們會籤署一條密鑰生成信息,從中推導出他們的查看和支出密鑰。每次用戶進入應用時,這些相同的密鑰以相同方式重新生成。

Fluidkey 有幾種不同於其他實現的方式。其中一種不同之處在於,用戶與 Fluidkey 共享他們的私有查看密鑰(實際上是一個 BIP-32 派生節點)。這使 Fluidkey 能夠為用戶生成隱匿地址,並在他們收到這些地址的付款時通知用戶。然而,這也意味著 Fluidkey 有能力查看用戶的進帳交易和餘額,這是一個權衡。然而,Fluidkey 仍然保持完全自我保管。

Fluidkey 設計中的另一個有趣方面是,它為每個新的隱匿地址部署一個智能合約帳戶。只有在資助自隱匿地址的資金被使用時,才會發生這種情況。智能帳戶是一個 1/1 的安全帳戶,允許進行例如 gas 贊助等操作,使得更容易管理各種隱匿地址。有關此方面的詳細信息,可以查看他們的 技術講解

雖然 Fluidkey 確實保留了對用戶帳戶的可見性,這在合規性方面可能潛在地成為一種優勢,儘管 Fluidkey 將如何處理未來潛在的執法請求的確切框架尚未公開。他們位於瑞士,儘管須遵守當地法律,但數據保護法律非常清晰且強大——必須有非常明確的理由才能分享數據,並且此事還需經過法院審查( 參見這篇文章 了解瑞士隱私法的優秀概述)。

用戶也完全可以導出他們的交易,或者與第三方(如會計師)共享他們的查看密鑰,這對企業尤其有用。值得注意的是,根據 erc-5564 規範,公共密鑰的共享是「全或無」,這意味著它無法單獨透露孤立的單筆交易。此外,與所有 erc-5564 實現一樣,可追溯性並未被打破——只是與用戶的關聯性被打破——這意味著每個隱匿地址的交易歷史對於擁有查看密鑰的人是公開的。Fluidkey 一個不太為人知的功能是能夠旋轉查看密鑰,這將允許用戶每月使用一個新的查看密鑰,並且只與第三方共享特定月份的查看訪問權限。

Fluidkey 方法的一個好處是,隱匿地址本身不是由發送者生成的,而是由 Fluidkey 在每次查詢 ENS 時偽隨機生成的。這更快,因為用戶不必通過公告事件掃描以識別自己是收件人的交易。這也意味著發送者不需要隱匿地址錢包來為接收者生成隱匿地址——他們只需像其他地址一樣發送資金即可。這也意味著沒有涉及註冊合約,這是 Fluidkey 設計的獨特之處,也是一個主要優勢。

值得一提的是,Fluidkey 致力於完全自我保管,並且他們已開源了其隱匿帳戶工具包庫,並且在不太可能的情況下 Fluidkey 一夜之間消失的情況下,還有幾個獨立開發的恢復接口可用,這意味著資金永遠不會被鎖定或卡住。

地址抽象

通過使用智能合約帳戶,Fluidkey 可以自動抽象管理各個隱匿地址。這意味著,如果你想從你在各個隱匿地址中的餘額中向特定接收者轉移特定金額,Fluidkey 可以自動計算出用於轉移資金的地址組合,處理所有的 gas 費用和合約部署,所有這些都在後臺進行。Fluidkey 還允許用戶通過一個稱為 標籤 的酷功能,對要組合的地址進行一些控制,允許用戶將地址標記為不同的類別。

ENS 解析

Fluidkey 要求用戶創建專屬於 Fluidkey 的 ENS 名稱。這些靜態名稱有兩種形式:username.fkey.id 和 username.fkey.eth,一個是指向發送資金給某人的網頁界面的 URL,另一個是可以與錢包一起使用的標準 ENS 名稱。

ENS 設置使用 ENS offchain resolver (也稱為 erc-3668: CCIP Read )來返回隱匿地址。每次查詢離線解析器時,它會為相應的 ENS 名稱生成並返回一個新的隱匿地址。這是一個很好的功能,因為它允許用戶擁有一個單一的人類可讀的 ENS 名稱,同時仍然保留隱匿地址的隱私,因為生成的隱匿地址無法追溯到 ENS 名稱。

費用

Fluidkey 是免費使用的,不收取費用。當你想要支出資金時,每個有資金的地址都需要部署一個 Safe 合約的費用。然而,儘管在主網相對昂貴,但在 L2 上這實際上是微不足道的,通常低於 1 美分,即使將多個隱匿地址合併為一次轉帳。

他們還可以通過 Safe 部署進行 gas 贊助——他們計算 gas 的費用,並從用戶的餘額中扣除,即使它是一個代幣——在這種情況下,轉發者部署 Safe 並代表用戶轉移代幣。

Umbra Cash

Umbra Scopelift 實現的 eip-5564 + eip6538。當用戶登錄 Umbra 應用時,他們會經歷一個設置階段,在此階段他們籤署一條消息,從中派生出支出和查看密鑰及相應的隱匿元地址。然後,他們將此隱匿元地址註冊到他們的主錢包地址的鏈上註冊表中。這是實現與 Fluidkey 的不同之處。

Umbra 對 erc-5564 的實現最接近規範,因為他們無法訪問用戶的密鑰。雖然這意味著 Umbra(或其他任何人)無法看到用戶的資金,但這確實意味著為了接收資金,發送者必須擁有一個與 erc-5564 兼容的錢包(或 Umbra 應用)以生成他們的隱匿元地址。

當有人想要 發送 資金給用戶時,他們通常會使用 Umbra 應用來完成。基本上,Umbra 應用會查找註冊到 ENS 名稱/錢包地址的隱匿元地址並生成一個隱匿地址。收件人可以登錄 Umbra 應用並掃描自上次登錄以來發送到屬於他們的隱匿地址的任何資金。得益於一些巧妙的緩存,這似乎只需 10-15 秒進行每周掃描,儘管用戶也可以選擇指定一個區塊範圍以縮小掃描範圍。Umbra v2 將包括使用視圖標籤,這將進一步加快該過程。

轉發者

我們之前提到的隱匿地址的一個問題是,為了讓收件人支出發送到隱匿地址的資金,該地址需要有 ETH 或其他必要的 gas 代幣來支付交易費用。在大多數網絡上,如果隱匿地址最初收到了 ETH,這通常不是問題。然而,如果隱匿地址收到了 erc-20 代幣或 NFT,那麼用 ETH 為地址提供 gas 的行為可能會將該地址與用戶的其他地址關聯,從而失去隱私。

為了繞過這個問題,Umbra 使用了一個涉及 轉發者 的構造。當任何非 ETH 的資產發送給 Umbra 用戶時,它實際上是發送到一個特殊合約,而不是直接發送到隱匿地址。用戶可以通過向 Umbra 的轉發者發送元交易(來自 Umbra 應用)來支出發送到他們隱匿地址的資金,轉發者將代表用戶從智能合約中轉移資金。轉發者將扣除一些代幣以覆蓋 gas 費用的成本,並且最初僅支持一定數量的代幣。

費用

Umbra 合約在低交易費用的網絡上轉移資金時也會收取少量費用,以抑制垃圾郵件。其理由是,垃圾郵件會增加掃描交易以識別相關交易的成本,因此這被視為一個可接受的權衡。

支持的網絡

Umbra 目前已部署在以太坊主網,以及 Optimism、Polygon、Gnosis Chain 和 Arbitrum。

Umbra 註冊合約具有有趣的設計。部署方法使用 create2 和標準 create2 部署器,智能合約地址在任何網絡上都是相同的。這意味著如果合約在給定網絡上存在,則客戶端可以確保這是正確的合約。客戶端可以配置以添加網絡,任何人都可以部署到任何網絡。他們已經規範化了字節碼,合約沒有所有者,這允許任何人在任何鏈上無權限地部署註冊和公告合約。

Umbra v2

Scopelift 目前正在開發 Umbra 的第 2 版 ,該版本引入了一種新的模塊化架構,允許核心合約擴展以支持新的代幣標準或非支付用例。使用這種新架構,第三方開發者可以為任何類型的代幣標準構建模塊,例如 erc-1155、erc-7621、支持 erc-4337 付款方,或你能想到的任何其他內容。目前,Umbra 核心合約支持兩種場景,一種用於 ETH,另一種用於 erc-20。V2 將支持許多不同的場景。

Labyrinth

Labyrinth 是一個不基於 eip-5564 + eip6538 的協議,而是使用零知識證明為交易增加匿名性和隱私。Labyrinth 的白皮書將其描述為「zkFi」中間件:「 zkFi 提供了一種打包解決方案,充當具有內置合規性的隱私中間件 」。內置合規性指的是 Labyrinth 的「選擇性去匿名化」,這是一種複雜的解決方案,允許某些交易對特定授權方(即法律機構如國際刑警等)去匿名,同時保持透明和開放。

Labyrinth 使用的核心智能合約包括一個多交易和多資產池,允許用戶在單個交易中交易多種資產。為了支出資產,用戶掃描網絡並獲取加密的票據數據,解密票據,並過濾出他們想要支出的資產。隨後,用戶創建一個 ZKP,其中包括交易和與他們想要支出的交易相關的票據的籤名密鑰。

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

Labyrinth 的 zkFi 協議使用「票據」來跟蹤餘額和轉移。票據本質上是描述某種資產的某個數量及其所屬地址的數據結構。客戶端存儲重建票據所需的信息,並使用此信息支出資產。對票據的承諾(資產 ID、所有者和價值的哈希)存儲在鏈上的默克爾樹中。實際上,Labyrinth 使用兩個默克爾樹,一個用於票據,一個用於根地址。

筆記數據結構包含以下內容:

  • assetId :此筆記代表的資產的標識符(ETH、WBTC、MATIC 等)。

  • value :筆記所代表的價值或金額。

  • leafIndex :此筆記將被插入的承諾默克爾樹的葉節點索引。

  • blinding :一個隨機的保護因子。

  • rootAddress :擁有支出權限的用戶的根地址。

  • revoker :所選撤銷者的公鑰點。

你會注意到,上述數據結構並未包含資產的 所有者 的任何引用,這很奇怪,因為在筆記默克爾樹中記錄的承諾是資產 ID、價值和 所有者 的哈希。實際上,所有者是從根地址、撤銷者和隨機保護因子計算得出的,因此對於外部觀察者而言,所有者實際上是每個新交易生成的一個新地址。

保護池

關於 Labyrinth,特別有趣的是,它與傳統的基於隱秘地址的協議略有不同,資產池實際上是一個保護池,它利用筆記的概念創建了一種屏蔽的 UTXO 池,從而為交易提供了前向保密性。回想一下,在 eip-5564 實現中,用戶轉帳的對象將能夠查看這些資金的來源。換句話說,Alice用隱秘地址支付給Bob,Bob再支付給查理,因此查理現在可以看到Bob最初從Alice那裡收到這些資金,等等。Labyrinth 的保護池並非如此。

要理解這個保護池是如何工作的,我們需要看看在協議內部資金是如何轉移的:

用戶在保護池中的餘額是相應資產的筆記之和。為了花費這些筆記,用戶需要揭示那些筆記的「無效標識」。無效標識是唯一與筆記相關的,一旦該筆記被花費,該無效標識就被標記以防止雙重消費,並根據該已花費的筆記創建一個新筆記。相同資產的多個筆記可以合併,還可以創建多個新筆記。無效標識就是 (?,?,?) 的哈希,其中 ? 是在筆記默克爾樹中筆記承諾的索引,? 是承諾,? 是一個隨機元素,也稱為保護因子。

隱秘交易轉帳的接收者通過與 eip-5564 相同的方式識別轉帳,因為他們監聽從核心合約發出的事件,並確定他們將能夠從中發送資金的隱秘地址,並在本地記錄這些地址。通過利用視圖標籤和在應用程式生命周期內異步本地緩存和同步筆記,識別來款資金的速度也得到了提升。

目前正在進行研究,以加快發現接收資金的過程,看看 Aztec 的這個提案: Request for Proposals: Note Discovery Protocol — Aztec

在花費資金方面,用戶還必須生成一個 zk 證明,這與基本上是普通以太坊地址的 erc-6654 實現不同。生成證明需要一個兼容的錢包,性能相對較好,在中檔 Android 設備上大約需要 20 秒左右。

打包商和轉換器

Labyrinth 提供了一些不錯的功能,可以解決隱秘交易中的一些痛點。發送到 Labyrinth 核心合約的交易作為用戶操作通過 erc-4337 打包商發送。此設置允許在不需要 ETH 或交易的 gas 代幣的情況下花費筆記,因為用戶可以利用 erc-4337 支付者為他們支付 gas,從而增加了一個額外的隱私層。唯一的例外是初始存款,它不會作為用戶操作提交。使用 erc-4337 支付者的另一個好處是能夠通過被轉移的資產支付 gas,即使它們是 erc-20 代幣,因此 Labyrinth 公開了一個 gas 價格預言機 API。

Labyrinth 的另一個非常好的功能是其模塊化架構,允許 轉換器 合約作為第三方去中心化應用的代理。這不僅允許用戶使用隱秘交易轉移資金,還可以與第三方去中心化應用(例如 DEX,如 Uniswap、Aave、Lido 等)進行交互。這些代理「 轉換器 」合約本質上實現了一個函數,接收入量某種資產,並輸出一些資產,基礎邏輯存在於某個第三方合約中。

合規解決方案

Labyrinth 通過一個名為選擇性去匿名化(SeDe)的框架確保合規和監管的遵循。

回想一下,筆記的數據結構包含一個名為「撤銷者」的欄位。撤銷者是可以啟動去匿名化過程的特定實體的地址。用戶必須從預定義列表中選擇至少一個撤銷者。撤銷者並不單獨負責識別潛在的非法或不當活動,但可以響應執法機構的請求。

撤銷者沒有單獨的能力直接去匿名化交易,但他們負責發起去匿名化請求。這些請求公開發布給監護人,監護人是一個監督隱私和合規性的實體委員會。監護人必須通過投票決定是否允許去匿名化交易。如果監護人可以達到法定人數並投票支持,則撤銷者可以解密交易數據,從而將相關交易與先前的交易聯繫起來,直到交易鏈被完全去匿名化為止。

這個系統創建了一系列制衡機制,因為監護人不能單獨決定揭示交易數據,即使他們勾結,也無法在沒有撤銷者的情況下做任何事情,而僅憑撤銷者也無法在監護人多數投票的情況下做任何事情。

Railgun

RAILGUN 是一個在以太坊、幣安智能鏈、Polygon 和 Arbitrum 上部署的隱秘交易隱私系統。該協議在某些方面類似於 Labyrinth,因為它是基於 筆記 ,這些筆記作為承諾存儲在默克爾樹中,形成一個 UTXO 集,即通過創建新的筆記供其他接收者支出。這意味著只有筆記的所有者可以計算其無效標識,而無效標識往往是根據支出密鑰和筆記在默克爾樹中的索引的哈希來生成的。

Railgun 中的隱秘元地址使用「0zk」的前綴,類似於 eip-5564,這是公共查看密鑰和公共支出密鑰的組合。然而,Railgun 在 BabyJubJub 曲線上使用 Ed25519 密鑰,而不是 ECDSA 和 secp256k1。就像 eip-5564 一樣,用戶在 Railgun 合約中掃描所有發出的事件,並使用他們的查看密鑰確定哪些事件代表轉帳到他們的錢包。

Railgun 使用一個 廣播者 網絡,這些廣播者實際上是接收用戶的元交易並將實際交易廣播到相應區塊鏈的中繼者,以代表用戶支付 gas 費用。用戶到廣播者的交易是加密的,並使用 Waku 協議 進行通信,保護最終用戶的匿名性。

Railgun 採用模塊化架構,允許它與外部智能合約進行交互,從而提供超越簡單轉帳的功能。它通過 AdaptRelay 合約實現這一點,該合約在與外部合約進行交互之前和之後對代幣進行保護和解除保護,例如,解除保護代幣 A,在某個 AMM 上交換代幣 B,將代幣 B 保護回來給原所有者。

在版本 3 中,Railgun 計劃利用 eip-4337,並支持傳統的元交易。他們希望通過為 Railgun 維護一個專用的 eip-4337 userop 內存池,使獨立解決者能夠作為廣播者參與其中。他們目前正與 Umbra 合作研究此問題,並識別邊緣案例及如何解決它們,更多細節請參見下面的 Railgun v3 部分。

費用

Railgun 協議對存款和提款收取 0.25% 的費用。這些費用將發送到 DAO 庫房,這些費用會隨著時間推移支付給 RAIL 治理代幣的質押者。除了 0.25% 的存款和提款費用外,廣播者通常還會收取自己的費用,而這些費用通常約為實際鏈上交易的 gas 費用的 10%。

治理

Railgun 具有治理系統,允許提交任何形式的提案,任何核心合約(包括財政和治理合約)的更改都必須經過 DAO 提案才能進行。不尋常的是,Railgun 的不同實例有各自的治理。例如,Railgun 在以太坊、Polygon 和幣安鏈上有各自獨立的治理系統和代幣。

SDK 和 Cookbook

Railgun 提供了一套全面且文檔完備的 SDK,錢包或 DApp 開發者可以使用它通過對 Railgun 的支持來構建隱匿地址功能。Railgun 還有一個由社區維護的 cookbook ,提供「配方」,允許 DApp 開發者為 Railgun 提供模塊,使用戶能夠使用 Railgun 與他們的 DApp 進行交互。例如,開發者可以為 DEX 編寫一個配方,使得在 Railgun 中擁有代幣餘額的用戶可以私密地交換代幣。

RailGun v3

Railgun 的下一次迭代將使交易成本下降 50% 至 60%。版本 3 中的其他更改是支持 eip-4337 userops,通過專用內存池來實現。此外,v3 將支持基於意圖的架構,允許解決者競爭最佳執行,儘管截至撰寫時,細節仍非常高層次。他們目前正在與 CowSwap 合作,計劃使用前置和後置鉤子來允許解決者訪問資金。

Railgun Connect

可以說,提議中最有趣的變化是名為 Railgun Connect 的工具,它類似於 WalletConnect,允許 0zk 地址連接到大多數前端進行私有使用,無需這些 DApp 通過自定義模塊顯式提供與 Railgun 的集成。

Railgun Connect 是一個瀏覽器擴展,它的實際操作是使用 HardHat 本地複製鏈的狀態,並將其自己的 web3 提供者注入到 DApp 中,具有本地 HardHat 版本鏈的 RPC 端點。這使得你可以像往常一樣與 DApp 合約進行交互,記錄交易,然後將其批處理並創建 snark 證明,並將其發送到實際鏈上的 Railgun 合約。雖然這個描述稍顯簡單,但它傳達了總體思路。這使你能夠基本上與幾乎任何 DApp 進行交互(對於需要額外鏈下處理的 DApp 可能有一些邊緣情況)。需要注意的是,本地保存鏈的狀態是一項耗費資源的操作,但一旦完成,你就可以使用 Railgun 的隱匿地址與 DApp 進行交互,而沒有和使用普通錢包的任何不同。

結論

關於在以太坊協議中確立隱匿地址,目前有一些有趣的提案。例如, Inco 使用了一個 erc-20 「包裝器」的概念,該包裝器對普通的 erc-20 合約進行封裝,並加密所有餘額。轉帳和批准均在加密狀態下通過全同態加密進行。Inco 依賴於目前僅存在於其自身網絡上的預編譯,但將來可能會轉移至以太坊。

還有另一個提案叫做 EIP-7503: Zero-Knowledge Wormholes ,其基於一種稱為「燃燒證明」的設計,儘管這一提案似乎並未獲得廣泛關注,可能因為它需要對 EVM 進行更新,而沒有此更新,它實際上只能在代幣層面實現,使用專門支持 eip-7503 的 erc-20 設計(或者如果某個 L2 決定為其 EVM 操作碼添加支持)。

Aztec 可能是目前最複雜的隱私技術,但需要用戶將資金橋接到 Aztec 才能使用,這對大多數用戶來說可能並不可接受。然而,如果以太坊用戶對基本交易隱私的需求增長,那麼 Aztec 可能會具備獨特的價值主張,成為一個非常有價值的 L2,因為 DApp 和用戶遷移到一個默認提供隱私的平臺。

同樣, Intmax 是一個以隱私為中心的以太坊 L2(基於 Plasma 設計),它還有一個合規監管的方面,通過 ZKP 基於 AML 證明驗證個人資金的合法性,並對交易金額施加限制。Intmax 在為轉帳提供隱私方面有限制,而 EVM 智能合約操作則不具備隱私。然而,與 Aztec 不同,智能合約可以在 Solidity 中編寫,一些開發者可能偏好這種方式(取決於用例)。

錢包支持

雖然我們看到隱匿地址協議的採用增加,這是一個積極的信號,但仍然有許多挑戰。最重要的挑戰是它們尚未在主流以太坊錢包中得到全面支持(至少目前尚未)。主流錢包在提供對隱匿地址的支持時可能需要做出幾個選擇。這些選擇包括:

  • 他們會為單一實現提供意見性的支持,還是會建立並維護某種跨多個協議的綜合聚合器?後者在開發和維護方面可能代價高昂。

  • 是否會有監管考量,是否需要在選擇性去匿名的範圍和機制上採取立場(例如 Labyrinth 的情況)?

  • 隱匿地址需要一個鏈上組件,通過註冊合約(Fluidkey 除外),這意味著每個 EVM 網絡必須明確得到錢包的支持(儘管 Umbra 的設計便利了註冊表的無許可部署)。

  • 隱匿地址使得與區塊探測器(例如 Etherscan)的現有集成變得更加複雜。例如,「在探測器上查看」按鈕將不適用於隱匿元地址,因為錢包顯示的是匯總餘額。這個問題在轉帳中也可能存在。這些邊緣案例需要被認真考慮。

  • 根據底層實現,用戶僅能夠有效地與特定的一組 DApp 使用隱匿地址,即那些受到底層協議支持的 DApp。模塊化隱匿地址架構將使這一點成為可能。然而,並非所有 DApp 都會被支持,並且需要以某種方式通知用戶。使用 eip-5506 時這一點相對容易,但仍然會有複雜性和邊緣案例,這可能會滲透到錢包的用戶體驗中。

在防止用戶隱私衛生不良方面也有改進的空間,請參閱本文:「 Anonymity Analysis of the Umbra Stealth Address Scheme on Ethereum 」,作者成功地對以太坊主網上的 48.5% 隱形交易進行了去匿名化。他們使用的啟發式方法與協議無關,而更多是關於隱私衛生,例如用戶將資金髮送到他們控制的隱形地址,然後將這些資金髮送回最初的發送地址,錯誤地認為可追蹤性已經被打破。總體而言,作者確定了 6 種不同的啟發式方法可以用於去匿名化隱形地址交易,主要都是基於不遵循最佳實踐。然而,這些都是需要解決的關鍵用戶體驗問題。

總體而言,我對隱形地址以及以太坊中的隱私相當看好。我認為我們取得了相當令人印象深刻的進展,並發現了一些非常可修復的挑戰。我相信主流錢包將找到提供隱形地址支持的方法,讓用戶可以輕鬆使用這些地址,享有用戶所期待和應得的正常隱私水平。

感謝所有在研究和構建隱形地址基礎設施方面投入時間和辛勤工作的團隊,包括我在這篇文章中提到的四個協議。他們的努力和堅韌將對以太坊產生巨大影響!

  • Related Posts

    金色百科 | 什麼是地址中毒攻擊 如何避免?

    作者:Callum Reid,CoinTelegraph;編…

    金色百科 | 黃金、石油、BTC在美國儲備扮演什麼角色

    作者:Arunkumar Krishnakumar,Coin…

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    You Missed

    從傳統複製到創新躍遷 Backpack 能否抓住未來?

    • By jakiro
    • 26 3 月, 2025
    • 11 views
    從傳統複製到創新躍遷 Backpack 能否抓住未來?

    Saylor的200萬億美元BTC戰略:美國BTC的統治和永生

    • By jakiro
    • 26 3 月, 2025
    • 12 views
    Saylor的200萬億美元BTC戰略:美國BTC的統治和永生

    以太坊兩大升級Pectra和Fusaka詳解 將為ETH帶來什麼

    • By jakiro
    • 26 3 月, 2025
    • 12 views
    以太坊兩大升級Pectra和Fusaka詳解 將為ETH帶來什麼

    Coingecko:投資者如何看待加密AI技術潛力?

    • By jakiro
    • 26 3 月, 2025
    • 13 views
    Coingecko:投資者如何看待加密AI技術潛力?

    Galaxy:Futarchy治理體系和鏈上預測市場現狀探究

    • By jakiro
    • 26 3 月, 2025
    • 10 views
    Galaxy:Futarchy治理體系和鏈上預測市場現狀探究

    ETH 和 Solana 的最新動態解讀:哪些值得關注?

    • By jakiro
    • 25 3 月, 2025
    • 12 views
    ETH 和 Solana 的最新動態解讀:哪些值得關注?
    Home
    News
    School
    Search