20

引介 | Tornado : 为以太坊引入隐蔽交易机制

 4 years ago
source link: https://ethfans.org/posts/introducing-private-transactions-on-ethereum-now
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

默认情况下,你在以太坊上所有的交易历史和余额都是公开的。通过诸如 Etherscan 这样的区块浏览器可以查看所有的交易,某人但凡知道了你的地址,就可以轻轻松松获取你的支付记录、跟踪你的资金来源、计算你的持仓、甚至分析你的链上活动。

但是,有时候你也不希望公开自己的交易历史和余额吧?如果你想要实现交易的匿名和隐私,有什么好法子么?

多年来人们一直试图在以太坊上开发出隐蔽交易机制。一些人的思路是掩盖资金的流动过程,比如使用一个中心化的交易所或托管的混币服务。但是,这样做必然会引入高度的对手方和监视风险。结果,这些工具始终无法媲美其它专注于隐私的密码学货币(例如 Zcash)。Zcash 为了实现隐私保护,使用了包括零知识证明在内的各种密码学方法。

uMbq2q6.png!web

今天,我们非常高兴地向大家宣布,在以太坊上也有可能实现真正的隐蔽交易啦!我们推出的新工具 tornado.cash 基于强大的密码学开发出了突破性的技术、非托管的资金模式,用了它,你可以 100% 匿名地发送以太坊上的密码学货币。

M3iuI3j.png!web

Tornado.cash 是如何在以太坊上实现隐私的?

主要思路就是打破收款人和资金目标地址之间在链上的关联。你可以将以太币存入 Tornado.cash 的智能合约中,然后使用另一个不同的地址提款。无论你何时将以太币提现到新地址,其他人都 无法将存钱地址和提款地址挂钩从而确保了绝对的隐私

在这种办法中,Tornado.cash 充当着一个代理,使用 zkSnark 证明来确保交易的 100% 匿名

更棒的是,它还是 100% 非托管 的,这意味着你拥有对存款的完全控制权,是时候和经常跑路的中心化服务说拜拜了。

存款

用户在存款时需要生成一个秘密(secret),并将其哈希值(也叫做 “承诺”(commitment))连同存款的数额发送到 Tornado 的智能合约中。合约接收存款后,将其承诺也添加到合约的存款列表中。

日后,当用户想要提款时,TA 需要向合约提供一个证明,证明 TA 拥有一个秘密,能和智能合约中的存款列表中未被花费的承诺对应起来。得益于 zkSnark 技术的加持,我们可以在不公开这个秘密与哪笔资金相关的条件下完成匹配。Tornado 智能合约将检查这个证明,然后将存款金额转移到指定的提款地址。而对于外部的观察者来说,无从得知这笔提款来自哪笔存款。

这就是它的工作原理。接下来我会解释一下为什么 匿名集 如此重要。

匿名集(Anonymity Set)

VVZRn2u.png!web

匿名集的大小本质上是对匿名性的一种度量。它展示了还有多少笔存款等待被提取。换句话说,你要提取的以太币可能来自于多少笔被混合的存款。

先有鸡还是先有蛋?

你可能注意到了,你提款时有两个选项:

  • 使用钱包(Metamask、Trustwallet、等等)
  • 通过中继者

vaQzYvY.png!web

第一种方式要求你拥有一个全新的以太坊地址,并且里面还有一些以太币。这就引出了一个问题。

如何在保持地址匿名的前提下获取一些以太币呢?

因为通常情况下我们获取以太币的方式是从其他人手中购买(无论是否使用交易所),但(这就会使这个地址与其他人的地址产生关联)我们正是想要避免暴露信息,不是吗?

这就是为什么我们要提供第二个选项。你只需要生成一个新的以太坊地址,剩下的工作可以放心地交给 zkSnark 证明和中继者来完成。这一过程会收取你一些以太币,只是用来支付以太坊网络的手续费而已。

匿名小贴士

iEFjyiJ.png!web

  • 无论你是否使用中继者,都请记得保持正常的网络匿名,比如使用 VPN、代理、 Tor 等工具来隐藏你活动的 IP 地址。由于你使用的是浏览器,因此使用匿名的标签页也是有用的。
  • 请确保你在使用新地址之前清除了 dApp 的 cookies,因为当 dApp 发觉新旧地址使用的是相同的 cookies 时,它就会知道这两个地址属于同一个所有者。
  • Note 当中的一些数据可用于将你的存款和提款联系起来。因此在你完成提款后,最好确保你已经安全地销毁了 note 数据。
  • 存款之后不要立即取款。如果你存完款之后马上提出来,观察者会猜测这是同一个人在操作,那你就暴露了。因此我们建议你存款后至少等到有 5 笔新的存款时再提款。
  • 不仅要等待新存款存入,还要等待一段时间。因为即使在你存款之后有多笔存款,它们也可能是由同一个人发出的,这个人在试图发送多笔垃圾存款,使用户误以为匿名集已经很大了。我们建议你至少等待 24 小时,以确保在此期间有多个人存款。

(完)

原文链接: https://medium.com/@tornado.cash/introducing-private-transactions-on-ethereum-now-42ee915babe0

作者:Tornado Cash

翻译&校对:曾汨 & 阿剑


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK