# 对于HOP女巫攻击的思考

By [pc9527zxx](https://paragraph.com/@pc9527zxx) · 2022-05-24

---

*   今天下午看了HOP创始人 [@WhinfreyChris](https://twitter.com/WhinfreyChris) 对于识别女巫的方法，同时晚上看了律动关于HOP的文章，有一些思考。
    
*   首先是一个地址交互结束之后将资金转入下一个地址，以这种方式使自己的地址交互完成，这种女巫攻击的方式可以轻松识别。
    

![](https://storage.googleapis.com/papyrus_images/6b44b786d7a36a58a36266a8f218a2353fc38eae3ae6a0181dbccf09e64ede91.png)

他的鉴别方式也简单粗暴，首先找到了最初的地址，接着检测资金的转出，就顺着找下去了。

![代码](https://storage.googleapis.com/papyrus_images/774ef10bf2bb65005882ccb8386dd1c4bc45fced0165de7b4ea41b275d121671.png)

代码

所以要尽量使用这种资金转移方式，可以使用CEX的子账户，ftx可以创建50个子账户，每个子账户提币地址不相同，而且一般的项目方是会把cex地址排除在外的。

*   第二种就是不在arb或者主网进行资金归集，在侧链或者其他二层进行归集。
    

![](https://storage.googleapis.com/papyrus_images/e6c14bdeb63a1bd0db23daf4261aeed1aef35f002c859df9239f659981fb1185.png)

这种其实就带有侥幸心理，一般情况下项目方不会查那么细致，不过hop就有点变态了，某些女巫猎人更变态，所以，不要想着跨到别的链上进行归集。或者用wormhole到solana进行归集，万一女巫猎人去solana查女巫呢。

所以尽量使用cex，或者一些隐私dapp。

*   第三种猎人查询女巫的方式就是解析tx，不只是转账，只要你产生了tx，他们就会查询到你。
    
    比如你使用某合约交互之后，打个比方（uniswap），你用A地址的eth去买usdc，买之后的usdc可以直接发送到B地址（你的归集资金的地址）。这个交易在etherscan上是看不出来的，但是点进tx里是可以观察到的。所以，不要使用这种合约开源的，没有隐私保护的工具进行资金归集以及转账。
    
*   最后，我在hop创始人推特下面看到一个评论，就是项目方如何判断那些从cex转出的资金是否为女巫地址呢。
    

![](https://storage.googleapis.com/papyrus_images/d1e34331d2e28483dc52ed4a518d475295ebfe6c86c558efb5a31fe3afb9bc4e.png)

也就是说，虽然从cex转出的资金无法被轻易定义为女巫，但是一般撸空投的人都是流水线操作，他们的操作顺序，操作金额，以及gaslimt和gasprice都基本相同。所以，如果碰到比较变态的项目方还是能抓到女巫的。另外，万一项目方结合机器学习呢？所以我们操作尽量不要相同，金额也尽量不要一样。

最后再说一下使用隐私dapp
--------------

1.  首先是 [@TornadoCash](https://twitter.com/TornadoCash)，使用零知识证明的隐私保护的项目，这个不用多说，保护得很好，很多黑客和跑路项目方都在使用。具体的使用方法很简单，存钱进去，他会给你个凭证，你可以用这个凭证去领钱，两个地址之间毫无关联，可以说几乎不可能找到与你关联的地址。
    
2.  另外，最近有很多大v推另一款隐私产品 [@UmbraCash](https://twitter.com/UmbraCash)，但是说实话，它并不能很好的保护隐私，实际在解析tx时我们很轻松就能知道是哪个地址给哪个地址发送的代币。
    
    随便以链上一条tx为例
    
    0xe5854e81c96ce0a80dcb3c626acea799b79fb6166ebbf449550879b57be39a0b
    

这条哈希就是umbra的发送资金的方法

![](https://storage.googleapis.com/papyrus_images/da2d0de08327dada8e547083dea8c3522ddda672f1c297af7e8e9cad97195f49.png)

可以观察到，receiver地址暴漏在了tx inputdata里，所以完全知道是从哪里发送到哪里。红框是一个中继地址，可以理解为tornado的混币池。

![](https://storage.googleapis.com/papyrus_images/963bba9b770178413f3baa3240766daa7542f1f680cff033f001f05ae0b7ed4e.png)

可以看到从中继地址有一笔资金转移，那就没错了，那个接收地址就是另一个钱包。所以，umbra没办法防范猎人。

总结
--

*   不要在主网和其他侧链进行代币转移。
    
*   尽量将自己的行为错开。
    
*   善用混币器，以及交易所子钱包
    
    这是我的第一篇mirror，本来想写点感悟，结果一口气写了好多，和写论文一样，我本来是个一级玩土狗的科学家，行情太差于是来探索区块链，最近体验了很多项目。（嗯，比土狗有意思多了，代码也很有意思）以后多分享一下高质量的内容。

---

*Originally published on [pc9527zxx](https://paragraph.com/@pc9527zxx/hop)*
