风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

长推:Tornado Cash 升级版 privacy-pools 原理解析

privacy-pools是TC的升级版本,可以支持用户在从混币器中提款的时候,附带一个提款证明,证明自己要提款的资金不是黑客部署在混币器中的资金。

0xhhh
0xhhh
热度 ...

原文作者:0xhhh

原文来源:twitter

注:本文来自@hhh69251498 推特,CHAINLOOK整理如下:

1/n

privacy-pools原理解析:

Tornado Cash的新版本出来了,昨天@ameensol(TC早期开发者)宣称privacy-pools已经在Optimism上部署

privacy-pools是TC的升级版本,可以支持用户在从混币器中提款的时候,附带一个提款证明,证明自己要提款的资金不是黑客部署在混币器中的资金。

2/n

我怀着好奇的心思跑去他们的github仓库看了下他们的代码, 然后"牛逼"!

I like the pretty cool code for privacy-pools!Awesome [email protected]

以下是具体的原理介绍:

3/n

首先你可能需要先了解下TC原来的运行原理,如果你还不了解的话:

隐私池

https://twitter.com/hhh69251498/status/1632438792387690496

4/n

(privacy-poos 以下用PP表示)

PP使用来证明取款的金额是"干净"的资金的方法,其实v神在之前提到过

https://twitter.com/ameensol/status/163208921331006259

5/n

用vitalik的原话来说:

make a zero-proof to prove that this withdrawal is not part of one of the sets of deposits or this withdrawal is part of one of this subset of deposits

6/n

也就是说:

可以用一个zk-proof去证明取款的金额在是在合法的存款的金额集合之内的,或者是表面取款的金额是在不合法取款的金额集合之外的

7/n

PP也是按照这个想法来实现的,在PP的推特上写到了很感谢vitalik提供的idea.

在之前的Thread也介绍了deposit资金到混币器中的时候,会添加一个commitment叶子节点到deposit树中

隐私池

https://twitter.com/hhh69251498/status/1632438792387690496

8/n

我们以一个实际例子来理解PP是怎么运作的:

1)现在有黑客想要将一笔illegal funds通过PP混币,于是他调用deposit方法将资金放入到PP中.

(我们假设原先已经有3个用户将前deposit到PP中了)

2)这个时候,deposit tree会发生以下变化.

隐私池

9/n

3)所有人都可以通过链上信息知道黑客将illegal funds被存储在deposit tree中index=3的叶子节点了。

4) 此时用户A想要取走index=0的资金,但是他又想证明自己去走的不是黑客的资金.(假设用户A知道index=0的叶子节点的secret)

10/n

5) 用户A需要再构造另外一颗树 allow tree, 这颗树跟deposit tree是对应的;

在这个case里,可以看到所有在deposit tree里的legal funds的叶子节点在对应的allow tree的叶子节点里都会被标注为"allow",而illegal funds对应的叶子节点会被标注为"blocked"

隐私池

11/n

6) 然后用户A开始构造自己的withdrawal证明

private input包含:

- allow tree对应的path(绿色节点)

- deposit tree 对应的path(绿色节点)

- deposit tree上要退款的节点对应在allow tree上的叶子节点值必须为 "allowed"(绿色连线)

public input包含:

- allow_tree_root

- deposit_tree_root

隐私池

12/n

其中private input意味着这部分的信息最后会被隐藏在证明内,没有可以从我提交的withdraw交易中知道这些信息。

于是用户A成功完成了withdraw,把自己index=0的叶子节点的资金取了出来

13/n

如果是黑客要取这笔钱呢?

它只能构造allow tree的index=3的叶子节点值为“allowed“的allow tree, 而且给出对应的allow_tree_root;

又因为allow_tree_root我们可以从withdraw交易中的input 知道,所以可以知道取的这笔钱构造的allow_tree是没有将index=3排除在外的

隐私池

14/n

于是我们成功标记了黑客的withdraw交易,也就意味着黑客想通过混币交易洗钱的目的失效了。

15/n

写在最后:

很喜欢@ameensol写的两段话:

- when you make privacy criminal, then **only** criminals have privacy.

- This is an opportunity to prove the ingenuity of the crypto community to self regulate and to showcase the awesome power of zero knowledge proofs!

16/n

希望我们能用更有好的技术,做更有意义的事情

大家有兴趣也可以看看PP的github,不过这个PP的完成度还不是很高,所以大家可以持续关注关注

隐私池

https://github.com/ameensol/privacy-pools

附加一个vitalik之前对TC改进的视频

https://youtube.com/clip/Ugkx7LeQPvONM0OFOfAUazyjf0JSj_9y7Tqwhttps://www.youtube.com/clip/Ugkx7LeQPvONM0OFOfAUazyjf0JSj_9y7Tqw

额外总结一下:

- 只有allow-tree设置为allowed的节点可以退款

- 黑客不得不将自己所在的allow tree那个节点(index=3)变成allowed

- 正常用户会将 黑客所在的那个allow tree的节点(index=3)设置成blocked

- 所以可以通过在withdraw的时候黑客给的allow tree(将非法节点设置为了allow)来标记黑客

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:0xhhh,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1691126716.html

下一篇:

DODO Research:数据解读以太坊质押 LSD 赛道

SSV Network 是 DVT 技术的服务提供商,LSD 通过类似 SSV Network 的解决方案可以使节点运营更有效率,更加去中心化。

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5