博客
关于我
Umbra:以太坊区块链的隐形支付协议
阅读量:502 次
发布时间:2019-03-07

本文共 1652 字,大约阅读时间需要 5 分钟。

编译:隔夜的粥

今年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协议到底是如何实现的:

  1. 用户将已签名的消息发布到ENS文本记录,以显示他们的Umbra公钥。此公钥是从专门为Umbra生成的随机私钥派生出来的。

  2. 付款人使用这个公钥,并加上一些随机生成的数据,然后创建一个新的“隐形”地址。

  3. 付款人用接收者的公钥加密随机数据。

  4. 付款人将资金发送到屏蔽地址,并将加密消息发送到Umbra的智能合约。合约将加密的消息作为事件进行广播。

  5. 接收者扫描Umbra协议广播的加密消息,直到找到一个可以用私钥解密的消息。

  6. 接收者使用加密消息的内容加上他们的私钥来生成隐形地址的私钥。

  7. 接收者使用隐形地址的私钥签署一笔取款交易,将ETH或代币发送到他们选择的地址。

  8. 另外可选的一个途径,取款交易通过Gas Station网络交易中继者广播,避免了为访问代币的隐形地址提供ETH资金的需要。Umbra合约通过Uniswap交换部分代币,向GSN中继者支付gas。

截至目前,Umbra协议依旧处于在Ropsten测试网测试的阶段,根据Ben DiFrancesco表示,他们计划完善Umbra协议,并很快将在以太坊主网上线,而他们的首要任务是确保合约的安全性,毕竟这涉及到了用户的资金安全。

推荐阅读

更多关键词: | 

 |  |  | 

 |  |  | 

转载地址:http://glocz.baihongyu.com/

你可能感兴趣的文章
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>