今年4月初的時候,以太坊聯合創始人Vitalik Buterin曾在推特上明確提到,以太坊生態系統急需解決隱私問題,主要原因是ENS域名的普及給以太坊使用者帶來了很大的隱私問題,並且隨著Defi生態的不斷髮展,這種問題的嚴重性也將越來越突出。而除了Vitalik提到的tornado.cash專案,最近還出現了一個簡單的以太坊隱形支付協議,它的名字叫Umbra。
據悉,Umbra協議是由Matt Solomon和Ben DiFrancesco為HackMoney 2020虛擬駭客鬆開發的,目前已經在以太坊Ropsten測試網上可用。
那它是用來做什麼的?簡單說:
“有了隱形地址,付款人可以向接收者控制的地址傳送ETH或ERC20代幣,而除了雙方之外,沒有第三方可以知道接收者是誰。”
在鏈上,交易看起來就像是簡單地傳輸到以太坊網路上的一個未使用地址。
圖:在Etherscan上檢視使用Umbra協議的 ETH交易。在鏈上,隱形地址看起來就像是正常的EOA地址。
在鏈外,傳送方已使用ENS透過接收方釋出的公鑰來生成新地址。透過加密用於生成地址的資料,並透過Umbra智慧合約宣佈,傳送方可以讓接收方知道他們已將付款傳送到了新的隱形地址。而只有接收者才能生成提取資金所需的私鑰。
圖:Umbra的介面,可透過ropsten.umbra.cash訪問,目前僅在Ropsten測試網可用
透過利用 Gas Station網路和Uniswap,Umbra使取款人能夠使用他們收到的代幣支付gas。這就避免了在取款前用ETH來為隱形地址提供資金的需要。
Umbra和Tornado Cash的不同
那Umbra和Vitalik經常提及的Tornado Cash有什麼不同呢?
簡單說,Tornado Cash是一個使用零知識證明的鏈上混幣器,當你把幣放到裡面,並等待別人也這麼做之後,你就可以用自己的證明取出資產,由於每個人的資金都集中在混幣器中,所以來源地址和取款地址之間的連結就斷開了。
而Umbra協議則是用於兩個實體之間的支付,並附帶了一組不同的隱私權衡(即考慮的方向不同),Umbra沒有破壞傳送者和接收者地址之間的連結,而是使得該連結毫無意義。每個人都能夠知道資金被髮送到哪個地址,但他們卻無法知道是誰在控制那個地址。
除了這些,Umbra協議還具有一些非常有意思的特性,比如它使用的gas要少得多,因為它不需要驗證鏈上的任何高階加密技術,所有的交易都是簡單的轉賬。此外,它使得ETH和任意ERC20代幣都可以私下轉讓,你不需要依賴於一個大型的匿名集。
Umbra協議的工作原理描述
最後,簡單談談Umbra協議到底是如何實現的:
使用者將已簽名的訊息釋出到ENS文字記錄,以顯示他們的Umbra公鑰。此公鑰是從專門為Umbra生成的隨機私鑰派生出來的。
付款人使用這個公鑰,並加上一些隨機生成的資料,然後建立一個新的“隱形”地址。
付款人用接收者的公鑰加密隨機資料。
付款人將資金髮送到遮蔽地址,並將加密訊息傳送到Umbra的智慧合約。合約將加密的訊息作為事件進行廣播。
接收者掃描Umbra協議廣播的加密訊息,直到找到一個可以用私鑰解密的訊息。
接收者使用加密訊息的內容加上他們的私鑰來生成隱形地址的私鑰。
接收者使用隱形地址的私鑰簽署一筆取款交易,將ETH或代幣傳送到他們選擇的地址。
另外可選的一個途徑,取款交易透過Gas Station網路交易中繼者廣播,避免了為訪問代幣的隱形地址提供ETH資金的需要。Umbra合約透過Uniswap交換部分代幣,向GSN中繼者支付gas。
截至目前,Umbra協議依舊處於在Ropsten測試網測試的階段,根據Ben DiFrancesco表示,他們計劃完善Umbra協議,並很快將在以太坊主網上線,而他們的首要任務是確保合約的安全性,畢竟這涉及到了使用者的資金安全。