长推:Tornado Cash新版本 privacy-pools 原理解析_ALL:TreeSwap

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

1/n

privacy-pools原理解析:

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

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

2/n

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

Iliketheprettycoolcodeforprivacy-pools!Awesomework!@ameensol

以下是具体的原理介绍:

3/n

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

OmniBOLT已开放OBWallet测试网公开测试:4月5日消息,Omni BOLT开放OBWallet测试网进行公开测试。OmniBOLT和Connect2Evolve(C2E)基于此次公开测试达成战略合作,共同推出OBWallet测试网挑战赛。OBWallet测试网挑战赛奖金池为3000美元,活动时间:4月5日至5月4日。期间用户通过参与挑战并分享产品反馈,不仅可以帮助改善用户体验,还有机会瓜分奖金池。反馈奖励最高可达150美元。

此次活动旨在培养一个由消息灵通的区块链爱好者、开发者和投资者组成的全球社区。通过将OmniBOLT的创新技术融入C2E平台,用户可以探索、评估和讨论Omni BOLT对比特币生态系统和更广泛的加密货币行业的潜在影响。此外,Omni BOLT还推出了BugBounty计划,为发现漏洞的开发者提供高达15万美元的奖金池[2023/4/5 13:45:24]

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

4/n

Web3安全基础设施Trusta Labs完成超300万美元种子轮融资:1月17日消息,据官方推特,Web3安全基础设施Trusta Labs宣布完成超300万美元种子轮融资,SevenX Ventures和元璟资本(Vision Plus Capital)领投,HashKey Capital、Redpoint China Ventures、GGV Capital和SNZ Holding参投,所筹资金将用于新产品研发、促进新用户吸纳和转化以及对价值用户的留存和运营。据介绍,Trusta Labs专注于Web3安全基础设施,于2022年10月成立,并在次月获得Gitcoin Open Data Hackathon冠军。[2023/1/17 11:16:16]

(privacy-poos以下用PP表示)

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

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

5/n

数据:FTX黑客仍在以太坊上持有约2.8亿美元加密资产:11月15日消息,加密情报平台Arkham Intelligence数据显示,截止目前为止FTX黑客相关钱包仍在以太坊上持有约2.82亿美元加密资产,包括持有2.14亿美元的ETH、4800万美元的DAI,此外其他网络还有4400万美元的BNB、400万美元的USDT(Avalanche)和380万美元MATIC。

该攻击者尝试使用不同的DEX聚合器,包括1inch、Cowswap和DODO exchange,为了防止滑点,被迫批量出售PAXG、LINK和MATIC。此前报道,11月12日,FTX被攻击,攻击黑客已窃取价值1.89亿美元的ETH和DAI。[2022/11/15 13:05:31]

用vitalik的原话来说:

makeazero-prooftoprovethatthiswithdrawalisnotpartofoneofthesetsofdepositsorthiswithdrawalispartofoneofthissubsetofdeposits

Aave与StarkWare的第一阶段跨链合作已完成开发,将进行治理部署:10月29日消息, Aave与StarkWare的第一阶段跨链合作已完成开发,将经过社区治理进行部署。该阶段是Aave v2在以太坊上的aToken跨链至StarkNet的智能合约基础设施,允许网络用户在StarkNet获取跨链aToken,即可成为Aave v2在以太坊上的存款者。同时支持通过向用户提供收费服务,以跨流动性到StarkNet,从而提升Aave v2在以太坊上的aToken持有者的收益率。

据此前报道,今年2月,Aave与Starkware的第一阶段合作提案以100%的支持率投票通过,Starkware将通过提供Aave设施来提升StarkNet的用户群,双方将为此共同出资约38.5万美元,并在2-3个月内开发完成。[2022/10/29 11:55:53]

6/n

也就是说:

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

Orbiter Finance新增支持StarkNet:6月30日消息,Layer2跨Rollup桥Orbiter Finance宣布新增支持StarkNet,允许用户将ETH从以太坊、Optimism、Polygon跨至StarkNet,以及从StarkNet跨至其他网络。[2022/6/30 1:42:25]

7/n

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

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

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

8/n

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

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

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

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

9/n

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

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

10/n

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

在这个case里,可以看到所有在deposittree里的legalfunds的叶子节点在对应的allowtree的叶子节点里都会被标注为"allow",而illegalfunds对应的叶子节点会被标注为"blocked"

11/n

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

privateinput包含:

-allowtree对应的path(绿色节点)

-deposittree对应的path(绿色节点)

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

publicinput包含:

-allow_tree_root

-deposit_tree_root

12/n

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

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

13/n

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

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

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

14/n

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

15/n

写在最后:

很喜欢@ameensol写的两段话:

-whenyoumakeprivacycriminal,then**only**criminalshaveprivacy.

-Thisisanopportunitytoprovetheingenuityofthecryptocommunitytoselfregulateandtoshowcasetheawesomepowerofzeroknowledgeproofs!

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的节点可以退款

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

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

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

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

金智博客

[0:46ms0-5:679ms