Tornado.cash: 一个关于匿名和 zk-SNARKs 的故事

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

越来越多的项目攻击后,我们可以看到一种新的黑客模式出现:

通过tornado.cash获得匿名ETH。

用ETH来支付黑客交易的费用。

使用闪电贷来减少资本需求。

通过大量的资本,创造一些失衡,并对失衡进行套利。

尽可能多地重复前面的过程

偿还闪存贷款,留下利润。

闪电贷和创造失衡当然值得写博客文章。但本文我们将仔细研究Tornado.cash。

那么Tornado.cash是什么呢?

Tornado.cash

MoneyRoomTornado.cash是一个充满钱的屋子

想象一下,我们有一个房间,只有一扇门,房间门口有一个警卫。任何人都可以走到警卫面前,给他一张100美元的纸币。警卫接过纸币,把它放在上锁的房间里。然后他要求给钱的人想一个非常大的数字。这个人没有直接给他这个数字,而是计算出这个数字的哈希值,写下来交给警卫。带有哈希值的纸被扔进一个大碗里。

不妨想象一下,随着时间的推移,成百上千的人也会这样做。然后,房间里会有成千上万张100美元的纸币,警卫会有一个碗,里面有成千上万张含有哈希值的纸。

如果有人想要回他的100美元,他可以走到警卫那里。最简单的解决办法就是向警卫出示之前的随机数。警卫可以计算哈希值,并检查所有文件是否有这样的哈希值。如果他发现一个,他就会销毁那张纸,并把100美元还给你。

掌柜调查署 | 当前环境下交易所如何“转正”?:4月15日16:00,金色财经「掌柜调查署」邀请到ChainUP大客户项目负责人针对交易所如何拥抱合规的问题进行解答,带领大家全面了解当前环境下,交易所如何“转正”!更多内容点击原文链接查看。[2020/4/15]

但如果我们这样做,存在警卫作恶的风险?他可以秘密地追踪哪张100美元属于哪个随机数,从而暴露我们的身份。

用球为例解释零知识

现在,如果我们能向警卫证明,我们知道一个秘密的数字,在不透露实际数字的情况下,在碗内对承诺进行哈希运算呢?那么,我们可以用零知识证明来做到这一点。零知识证明是很复杂的,但概念化的简单方法是下面这个例子。

想象一下,你是盲人,我给你两个球,感觉完全一样,重量也一样。现在我告诉你这两个球的颜色不同。附近没有其他人。你怎么能知道我说的是不是真的呢?

你可以在每只手上放一个球,把它们展示给我看。现在你把它们放在你的背后,你要么在两只手之间交换球,要么不交换。然后你把它们拿给我看,并问我:'我是否交换了球?现在,如果两个球都是同样的颜色,将有50%的机会猜对。但如果连续答对了15次,你几乎可以肯定说这两个球确实是不同颜色的。因为随机猜对15次,几乎不可能。

我现在已经向你证明了这些球是不同颜色的,但却没有透露实际的颜色,因此被称为零知识证明。你不知道这些球是绿色、黑色、橙色还是别的什么。

声音 | 复旦杨洁萌:Libra落地最大挑战来自于如何应对监管:9月25日晚,第83期“金融学术前沿”报告会在复旦大学智库楼106会议室举行。复旦发展研究院金融研究中心(FDFRC)主任孙立坚教授研究团队成员杨洁萌发布了题为“Libra乌托邦与中国法定数字货币的机遇”的报告。杨洁萌表示,Libra和传统支付系统比,满足不同参与方的诉求,帮助账户方做大支付、汇款,让收款方降低交易成本,也让传统机构观察、应对创新的手段。具体来说,具有三大优势:1、低操作成本:区块链取代人工对账带来效率提高,差错减少;2、低交易成本:Libra体系内交易无需向中心化机构代理机构付费;3、低保证金降低成本:账本实时同步加强机构间公信,减少保证金要求,降低保证金带来的额外成本。Libra也依然面临着四大风险:各国面临的监管要求不同;反风险;资金安全和信息安全;监管政策不确定风险。因此,Libra虽然抱有非常美好的幻想,但离真正落地还有诸多挑战,最大的挑战来自于如何应对监管,还有包括隐私问题、挤兑风险问题等诸多问题,还处于乌托邦的阶段。(复旦发展研究院微信公众号)[2019/9/30]

取回你的钱

现在有人可以向警卫证明,他实际上知道一个数字,这个数字对应碗里的一个数字。这个证明产生了一个特定的签名。警卫写下签名,并将其储存起来。每当有人提供一个新的证明时,他可以检查同一证明是否已经被使用。如果它已经被使用过,那么有人试图用相同的随机数字获得多张100美元。

因此,尽管该数字的哈希值仍在我们的碗内,而且警卫不知道哪些哈希值已经再次取出了100美元,但他可以意识到有人正试图多次使用同一证明。

普京:俄罗斯不能有自己的加密货币 但必须研??究如何使用加密货币:据cointelegraph消息,俄罗斯总统普京6月7日在与俄罗斯公众的年度现场问答会议上表示,俄罗斯不能有自己的加密货币,这是因为加密货币超越了国界。对于所谓加密货币挖矿,普京指出俄罗斯确实没有对此进行规范,但态度“非常谨慎”。关于加密货币作为支付方式,普京指出,虽然专家说日本已经部分采用加密货币作为支付,但这“在其他国家并不适用”。俄罗斯联邦中央银行认为加密货币既不是支付手段,也不是价值储备手段。加密货币不受任何支持,人们应该小心谨慎地对待它。俄罗斯必须密切关注这一现象,以确定俄罗斯如何参与其进程。此外普京还补充说明,俄罗斯必须研??究如何使用加密货币,以避免在国际金融领域的任何限制。据cointelegraph分析,普京或许在暗示可以通过使用加密货币避免目前西方国家对俄罗斯的制裁。[2018/6/8]

现在拿回这100美元后,他们不能直接追溯到原来的100美元,即使警卫是恶意的。

从零知识到zk-SNARKs

在区块链的世界里,正常的零知识证明有一个问题:连续问很多遍,等待答案,需要来回几次交易。这根本就不是很有效率。有了zk-SNARKs,或者非交互式零知识证明,我们可以在一轮中完成证明。基本上,问题是根据随机预言机模型预先确定的。然后验证者可以在一次交易中发送所有答案。

zk-SNARKs的概念是一个非常有趣的话题。Vitalik发布了一个适合初学者的介绍链接。好吧,尽可能的方便初学者。如果你想真正深入了解它背后的数学,这将是不容易的。我自己当然没有弄清楚文章中的所有内容,但如果你只想知道基本情况,这里是我的高层次理解:

Tornado Cash隐私池美元价值超过1300万美元:金色财经报道,根据The Block收集的数据,基于以太坊的混合器Tornado Cash的隐私池的美元价值创历史新高,在11月11日达到超过1300万美元的峰值。[2020/11/14 20:47:14]

zk-SNARKs是基于非常繁重的计算,比如计算1亿次哈希值。

验证一个证明本身并不要求运行繁重的计算。

实际数据由多项式表示,例如:x2-4x7。

使用因子定理,我们可以将某些多项式转化为其最低度多项式的倍数。

然后利用多项式承诺和Schwartz-Zippellemma,我们可以通过随机检查一些坐标来验证此类多项式的证明。

要正确理解这一点,请阅读Vitalik的文章:https://vitalik.ca/general/2021/01/26/snarks.html。

从理论到实践:Tornado.cash

tornado.cash

使用zk-SNARKs,tornado.cash允许你将固定金额的ETH、DAI、cDAI、USDC、cUSDC或USDT存入合约。在存款时,你会收到一个备份代码,用于以后提取资金。

为什么用固定金额?基本上每个固定金额都是它自己的匿名性设置。你可以在上面的截图中看到,当时0.1ETH的匿名度是426。意味着目前还有426人可以获得0.1ETH。而由于存款是公开信息,当你存入0.1ETH时,这些0.1ETH以后可以追踪到这427人,但不能直接追踪到你。

数据:BitTorrent安装量突破20亿:点对点协议及产品公司BitTorrent宣布,其种子软件在Windows、Mac和安卓客户端上的安装量已超过20亿。 BitTorrent公司旗下产品分布于BitTorrent和μTorrent两个品牌线。目前,BitTorrent已推出兼容Windows、Mac和Linux系统的全功能种子文件客户端,且已在Google Play商店上架适配移动端的种子文件下载器。[2020/8/12]

这有多安全?在匿名性方面,匿名集有多大,人们的存款和提款有多频繁,它就有多安全。如果你有一个30,000人的集合,但几个月没有存款/提款。现在你来存款,等了一天又取款,要追踪资金到你身上将是非常容易的。因此,请密切关注统计页面。

它是如何工作的?利用pedersenhashfunction可以有效地计算出椭圆曲线上的hash,以用于zk-SNARK。snarkjs则用来进行初始设置和自动生成Solidity验证器合约。

所有细节可在白皮书中找到。

Tornado.cash的治理

Tornado.cash协议正在计划增加治理。将包括自己的TORN代币,TORN55%将被用作金库,30%支付给团队和投资者,5%空投给服务的早期用户以及10%用于新概念的匿名挖矿。

由于tornado.cash服务只有在很多人使用时才是安全的,所以TORN会进一步激励人们在合约中留下资金,并为此向他们支付TRON。这将以充分保持矿工的匿名性的方式进行。

去匿名化

现在有人已经开始尝试去匿名化用户。这可以通过三个指标来达到目的:

发送存款/取款的每日的时间

Gas价格分布

交易图表分析

例如:

当该服务的大多数用户生活在欧洲,而你生活在新西兰,在你的时间下午4点左右与合约交互时,在欧洲将是凌晨4点。因此,要识别你会非常容易。

大多数钱包倾向于MetaMask自动设置Gas价格,从而提供一些信息来识别用户。

拥有多个地址的用户可能用这些地址与相同的服务进行交互。在最坏的情况下,这些地址之间甚至有直接的联系,或是通过交易图表能够将某些地址映射在一起。

如果你严格遵守规则,所有这些问题都是可以防止的:

使用0-24的随机数发生器,在你发送存款/取款时为你生成一个时间

在随机数生成器的帮助下,手动设置你的交易gas成本,或使用多个钱包

使用一个新的地址取款,以后不要用这个地址和另一个地址使用相同的服务

本翻译由CellNetwork赞助支持。

来源:https://soliditydeveloper.com/tornado.cash

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

tornado.cash:https://tornado.cash/

Tornado.cash:https://tornado.cash/

随机预言机模型:https://en.wikipedia.org/wiki/Random_oracle

链接:https://vitalik.ca/general/2021/01/26/snarks.html

多项式:https://en.wikipedia.org/wiki/Polynomial

因子定理:https://en.wikipedia.org/wiki/Factor_theorem

Schwartz-Zippellemma:https://en.wikipedia.org/wiki/Schwartz-Zippel_lemma

统计页面:https://explore.duneanalytics.com/public/dashboards/UEU02CHiGtNw9crfeD6OJ7bKPnvFtNjOgZ7Vc6uj

pedersenhashfunction:https://iden3-docs.readthedocs.io/en/latest/iden3_repos/research/publications/zkproof-standards-workshop-2/pedersen-hash/pedersen.html#pedersen-hash

snarkjs:https://github.com/iden3/snarkjs

白皮书:https://tornado.cash/Tornado.cash_whitepaper_v1.4.pdf

正在计划增加治理:https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703

去匿名化用户:https://arxiv.org/pdf/2005.14051.pdf

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10183717.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

巨鲸的资金涌向哪里,哪里就是热点!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-3:716ms