编者按:本文来自 巴比特资讯(ID:bitcoin8btc),作者:Matt Solomon和Ben DiFrancesco,翻译:洒脱喜,星球日报经授权发布。
今年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协议,并很快将在以太坊主网上线,而他们的首要任务是确保合约的安全性,毕竟这涉及到了用户的资金安全。