以太坊的聯合創始人Vitalik Buterin前段時間發表了一篇文章,該文章主要討論的是如何通過所謂的“隱身地址”來為以太坊網絡增加隱私。他在文章中解釋了隱身地址的工作原理,以及該技術在以太坊網絡上能夠增加用戶隱私的潛力。在本文中,作者試圖使用一個示例來解釋隱身地址的工作原理:Alice想給Bob發送1.2個ETH。
我們為什麼需要隱身地址?
很多人認為以太坊和比特幣這些公共區塊鍊是私有的,這種想法其實是一種常見的誤解。我們應該明確的知道公共區塊鏈不是私有的。公共區塊鏈確實通過錢包地址這種形式的“假名”提供了某種意義上的隱私。但是我們只要把錢包地址想成是一個賬戶,只要一旦有人匹配到這個賬戶是現實生活中的哪個人,那麼這個人做的所有事情都將攤在陽光下。
錢包地址在鏈上進行的每一次交互,包括交易,與去中心化應用程序的交互,購買NFT等,這些數據都將以公開的方式被記錄和存儲、只要是能夠連接互聯網的人都可以隨意查看。像Etherscan這樣的網站,讓人們能夠非常方便地查看這些信息。 Dune Analytics等應用程序,給人們分析這些信息帶來了便利。
如果沒有隱私的保護,這些信息可以在未經同意的情況下被他人輕鬆利用。使用公共區塊鏈,是可以看到用戶的購買地點,訂閱等內容的,有心者有可能會利用這些信息來進行一些犯罪活動。鑑於此,鏈上隱私解決方案正迅速成為保護全球Web3用戶的解決方案。最近Vitalik Buterin對這個話題進行了更深入的思考,並通過所謂的隱身地址來為以太坊生態系統提供解決方案。
生成密鑰以創建隱身地址
隱身地址必須由兩個參與者參與生成:在下面的例子中Bob是接收方,Alice是發送方。
Bob生成:
-
一個支出密鑰(Spending Key),只有Bob知道,之後會用來生成地址;
-
一個隱形元地址(Stealth Meta-Address),這是一個公共地址,任何人都可以看到,但它也是一個主地址,可以用來與像Alice這樣的伙伴一起派生無限量的Stealth地址。
為了獲得Bob和Alice獨有的隱形元地址,Alice還需要生成兩個密鑰:
-
一個臨時私鑰,只有Alice知道;
-
一個相應的臨時公鑰類似於隱形元地址。
臨時公鑰是臨時私鑰生成的,就類似於助記詞生成以太坊地址。臨時公鑰可以發到任何人都可以查看的公共分類賬。臨時密鑰對只使用一次,因此Alice如果想與其他人進行交易,則必須生成新的臨時密鑰對。
總結一下就是:
-
Bob生成了一個支出密鑰(私有),用這個密鑰生成了一個隱形元地址(公共)。
-
Alice生成了一個臨時私鑰(私有),用這個密鑰生成了一個臨時公鑰(公共)。
想要生成最終隱身地址的下一個步驟是,Bob和Alice共享各自的公鑰。 Bob向Alice提供自己的任何人都能查看的隱形元地址(公共)。然後Alice將Bob提供的隱形元地址與自己創建的臨時私鑰結合起來。該組合會創建出隱身地址。 Alice可以將1.2個ETH發送到隱身地址上。
訪問隱身地址
Bob為了能夠找到Alice給他發送的1.2個ETH所在的隱身地址,就必須也創建出Alice創建的隱身地址,但有一個問題是這個步驟是需要結合Alice的臨時私鑰和Bob的隱形元地址的,問題在於,Bob並不知道Alice的臨時私鑰,因為臨時私鑰是私有的。
如果使用密碼學概念,Bob就會有另一種選擇:他可以使用不同的私鑰/公鑰組合創建相同的隱身地址(並使用自己的支出密鑰來控制隱身地址內的加密貨幣)。 Bob可以將自己的支出密鑰和Alice的臨時公鑰進行結合來創建隱身地址。
為了找到Alice的臨時公鑰,Bob需要瀏覽所有現有臨時公鑰的列表。把看到的每個臨時公鑰,與自己的支出密鑰結合起來,就會創建出一個由此產生的隱身地址。 Bob查看隱身地址中可用的加密貨幣。在大多數情況下,使用隨機臨時公鑰和Bob的支出密鑰創建出的隱身地址當中應該會包含0ETH,但只要和Alice的臨時公鑰結合起來,Bob就可以看到生成的隱身地址中包含1.2個ETH。
實際上,Bob是不需要手動去匹配所有的臨時公鑰來尋找正確的那個,這個過程會由計算機自動完成,這樣才會大大的減少投入的時間和精力。
總結
Vitalik Buterin 發布的提案是一個實用的解決方案,該方案可以在以太坊網絡上更好的保護用戶隱私。 Manta Network等其他項目使用zkAddress 系統+ UTXO 來實現鏈上隱私。 Buterin 提出的隱身地址系統是以太坊網絡上一種獨特且有前途的隱私解決方案。更重要的是,像Vitalik Buterin 這樣的領導者正在考慮鏈上隱私的創新,這件事本身就是朝著正確方向邁出的一步。
Source:https://medium.com/towards- src=”https://img.jinse.cn/6810858_image3.png” >