BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Vitalik Buterin:隱身地址的不完全指南

DeFi之道
特邀专栏作者
2023-01-24 02:00
本文約5487字,閱讀全文需要約8分鐘
從長遠來看,隱身地址生態系統看起來確實嚴重依賴於零知識證明。
AI總結
展開
從長遠來看,隱身地址生態系統看起來確實嚴重依賴於零知識證明。

原文作者:Vitalik Buterin

原文編譯:DeFi 之道

原文作者:Vitalik Buterin

原文編譯:DeFi 之道

原文編譯:DeFi 之道

原文編譯:DeFi 之道

一級標題

以太坊生態系統中剩下的最大挑戰之一是隱私。默認情況下,進入公共區塊鏈的任何內容都是公開的。越來越多地,這不僅意味著金錢和金融交易,還意味著ENS 域名、POAP、NFT、靈魂綁定代幣等等。在實踐中,使用整套以太坊應用程序涉及將你生活的重要部分公開給任何人查看和分析。

一級標題

如何改善這種狀況已經成為一個重要的問題,這一點已得到廣泛認可。然而,到目前為止,關於改善隱私的討論主要圍繞一個特定的用例:ETH 和主流ERC 20 代幣的隱私保護轉移(通常是自我轉移)。這篇文章將描述一種不同類別的工具的機制和用例,這些工具可以在許多其他情況下改善以太坊的隱私狀態:隱身地址。

一級標題

什麼是隱身地址系統?

假設Alice 想給Bob 一個資產。這可能是一定數量的加密貨幣(例如1 ETH、 500 RAI),也可能是一個NFT。當Bob 收到資產時,他不想讓全世界都知道是他得到的。想要隱藏一筆轉賬發生的事實是不可能的,特別是如果它是一個鏈上只有一個副本的NFT,但隱藏誰是接收者可能更可行。 Alice 和Bob 也很懶惰:他們想要一個支付流程與今天完全相同的系統。 Bob 向Alice(或在ENS 上註冊)發送某種“地址”編碼,編碼某人如何向他付款,僅此信息就足以讓Alice(或其他任何人)向他發送資產。

請注意,這與Tornado Cash 等工具提供的隱私不同。 Tornado Cash 可以隱藏ETH 或主要的ERC 20 代幣等主流可替代資產的轉賬(儘管它最容易用於私下發送給自己),但它在為不知名的ERC 20 轉賬添加隱私方面非常薄弱,並且它無法為NFT 轉賬添加隱私。

使用加密貨幣進行支付的普通工作流程。我們想增加隱私(沒有人能知道是Bob 收到了資產),但保持工作流程不變。

隱身地址提供了這樣的方案。隱身地址是可以由Alice 或Bob 生成的地址,但只能由Bob 控制。 Bob 生成並保密一個支出密鑰,並使用該密鑰生成一個隱形元地址。他將這個元地址傳遞給Alice(或在ENS 上註冊)。 Alice 可以對該元地址執行計算以生成屬於Bob 的隱形地址。然後她可以將她想發送的任何資產發送到這個地址,Bob 將完全控制這些資產。隨著轉移,她在鏈上發布了一些額外的加密數據(一個臨時公鑰),幫助Bob 發現這個地址屬於他。

另一種方式是:隱身地址提供與Bob 相同的隱私屬性,為每筆交易生成一個新地址,但不需要Bob 的任何交互。

隱身地址方案的完整工作流程如下所示:

1. Bob 生成他的根支出密鑰(m) 和隱形元地址(M)。

2. Bob 添加一條ENS 記錄以將M 註冊為bob.eth 的隱形元地址。

3. 我們假設Alice 知道Bob 是bob.eth。 Alice 在ENS 上查找他的隱身元地址M。

5. Alice 使用一種算法,將她的臨時密鑰和Bob 的元地址結合起來生成一個隱身地址。她現在可以將資產發送到這個地址。

7. 為了讓Bob 發現屬於他的隱身地址,Bob 需要掃描臨時公鑰註冊表以查找自上次掃描以來任何人出於任何原因發布的整個臨時公鑰列表。

一級標題

這一切都依賴於密碼欺騙的兩種用途。首先,我們需要一對算法來生成共享秘密:一個算法使用Alice 的秘密事物(她的臨時密鑰)和Bob 的公開事物(他的元地址),另一個算法使用Bob 的秘密事物(他的根花費密鑰) ) 和Alice 的公開事物(她的臨時公鑰)。這可以通過多種方式完成; Diffie-Hellman 密鑰交換是建立現代密碼學領域的成果之一,它也正是實現了這一點。

一級標題

但是僅共享秘密是不夠的:如果我們只是從共享秘密生成一個私鑰,那麼Alice 和Bob 都可以從這個地址消費。我們可以就此打住,讓Bob 將資金轉移到新地址,但這樣做效率低下並且不必要地降低了安全性。所以我們還添加了一個密鑰盲化機制:一對算法,Bob 可以將共享秘密與他的根支出密鑰結合起來,Alice 可以將共享秘密與Bob 的元地址結合起來,這樣Alice 就可以生成隱身地址,並且Bob 可以為該隱身地址生成支出密鑰,所有這些都無需在隱身地址和Bob 的元地址之間(或一個隱身地址與另一個隱身地址之間)創建公共鏈接。

一級標題

使用橢圓曲線密碼術的隱身地址

• Bob 生成一個密鑰m,併計算M = G * m,其中G 是橢圓曲線的共同商定生成點。隱形元地址是M 的編碼。

• Alice 可以計算出一個共享秘密S = M * r,而Bob 可以計算出相同的共享秘密S = m * R。

一級標題

• 為了計算該地址的私鑰,Bob(和Bob 一個人)可以計算p = m + hash(S)這滿足了我們上面的所有要求,而且非常簡單!

一級標題

一級標題

假設有人給你發了一個NFT。考慮到您的隱私,他們會將其發送到您控制的一個隱身地址。掃描鏈上的ephem 公鑰後,您的錢包會自動發現該地址。您現在可以自由證明這個NFT 的所有權或將其轉讓給其他人。但是有一個問題!該帳戶中的ETH 為0 ,因此無法支付交易費用。即使是ERC-4337 代幣付款人也不會工作,因為它們只適用於可替代的ERC 20 代幣。而且你不能從你的主錢包向它發送ETH,因為那樣你就創建了一個公開可見的鏈接。

一級標題

有一種“簡單”的方法可以解決這個問題:只需使用ZK-SNARKs 轉移資金來支付費用!但是這樣會消耗大量的gas,單次轉賬就多了幾十萬gas。

一級標題

另一種聰明的方法涉及信任專門的交易聚合器(MEV 術語中的“搜索者”)。這些聚合器將允許用戶支付一次以購買一組可用於支付鏈上交易的“票”。當用戶需要在一個不包含任何其他內容的隱身地址中花費NFT 時,他們會向聚合器提供其中一張票,使用Chaumian 盲化方案進行編碼。這是在1980 年代和1990 年代提出的中心化隱私保護電子現金方案中使用的原始協議。搜索者接受“票”,並重複將交易免費包含在他們的捆綁包中,直到交易在一個區塊中被成功接受。由於涉及的資金量少,而且只能用於支付交易手續費,因此信任和監管問題遠低於“完全”實施這種中心化隱私保護電子現金。

一級標題

隱身地址和分離支出和查看密鑰

假設Bob 不是只有一個可以做所有事情的主“根支出密鑰”,而是想要一個單獨的根支出密鑰和查看密鑰。查看密鑰可以看到Bob 的所有隱形地址,但不能從中花費。

在橢圓曲線世界中,這可以使用一個非常簡單的密碼技巧來解決:

• Bob 的元地址M 現在的形式為(K, V),編碼為G * k 和G * v,其中k 是支出密鑰,v 是查看密鑰。

• 隱身地址的公鑰是P = K + G * hash(S),私鑰是p = k + hash(S)。

這有很多用例。例如,如果Bob 想要接收POAP,那麼Bob 可以給他的POAP 錢包(或者甚至是一個不太安全的Web 界面)他的查看密鑰來掃描鏈並查看他的所有POAP,而不需要給這個界面花費那些POAP 的權力。

一級標題

為了更容易地掃描整個臨時公鑰集,一種技術是向每個臨時公鑰添加一個視圖標籤。在上述機制中執行此操作的一種方法是使視圖標籤成為共享秘密的一個字節(例如,S 模256 的x 坐標,或hash(S) 的第一個字節)。

一級標題

這樣,Bob 只需要為每個臨時公鑰執行一次橢圓曲線乘法來計算共享秘密,而Bob 需要進行更複雜的計算以生成和檢查完整地址的時間只有1/256 。

一級標題

隱身地址和抗量子安全

上面的方案依賴於橢圓曲線,它很好,但不幸的是容易受到量子計算機的攻擊。如果量子計算機成為一個問題,我們將需要切換到抗量子算法。有兩個自然的候選者:橢圓曲線同源和格(lattices)。

橢圓曲線同源是一種非常不同的基於橢圓曲線的數學構造,它具有線性特性,可以讓我們使用與上面所做的類似的密碼技巧,但巧妙地避免了構造可能容易受到量子計算機離散對數攻擊的循環群。

基於同源性的密碼學的主要弱點是其高度複雜的底層數學,以及在這種複雜性下隱藏可能的攻擊的風險。去年,一些基於同種基因的協議被攻破,但其他協議仍然安全。同源性的主要優勢是相對較小的密鑰大小,以及直接移植多種基於橢圓曲線的方法的能力。

CSIDH 中的3-同源性,來源在這裡。

全同態加密,這是格的一種應用。 FHE 還可以用於以不同的方式幫助隱形地址協議:幫助Bob 外包檢查整個鏈中是否包含資產的隱形地址的計算,而無需透露他的視圖密鑰。

不幸的是,您無法使用比構建公鑰加密系統所需的成分更簡單的成分來構建隱形地址。有一個簡單的證明:你可以用一個隱蔽的地址方案構建一個公鑰加密系統。如果Alice 想給Bob 加密一條消息,她可以發送N 筆交易,每筆交易要么發往Bob 的一個隱身地址,要么發往一個屬於她自己的隱身地址,Bob 可以看到他收到了哪些交易來讀取消息。這很重要,因為有數學證明你不能只用哈希來做公鑰加密,而你可以只用哈希來做零知識證明——因此,隱形地址不能只用哈希來完成。

一級標題

c 的加密不會告訴Bob 任何其他人任何信息,而且k 是一個哈希,因此它幾乎不會透露任何關於c 的信息。錢包代碼本身只包含k,c 是私有的,意味著k 無法追溯到h。

一級標題

然而,這需要一個STARK,而STARK 很大。最終,我認為後量子以太坊世界很可能會涉及許多應用程序使用許多Stark,因此我提倡像此處描述的聚合協議將所有這些STARK 組合成一個遞歸STARK 以節省空間。

一級標題

隱身地址和社交恢復以及多L2 錢包

這允許許多帳戶,甚至跨越許多第2 層協議,在某處(在基礎鏈上或某些第2 層上)由單個k 值控制,其中更改一個值足以更改所有帳戶的所有權,所有這些都不會洩露您的帳戶之間的聯繫。

結論

一級標題

結論

Vitalik
歡迎加入Odaily官方社群