0%

defi | 如何防止三明治攻击

我参与量化差不多 1 年了,期间也被黑客攻击过,经过和黑客斗智斗勇,总结了下面的措施,用来防止三明治攻击。

滑点

之所以被三明治攻击,是因为滑点设置的过大,让攻击者攻击你之后依然有利润。

比如,你花费 10U 滑点为 10% 想要兑换 token,你设置的滑点,最少可以兑换 100token

但是,按照池子的深度,正常来说,你 10U 可以兑换 200token,这个时候,就有机器人强在你之前买入一笔 token,虽然,这个时候的 token 价格上涨了。但是,你的 10U 依然能兑换 120token,所以,你的兑换可以成功。

但是,中间有 80token 的利润被黑客赚走了。

如果,你想要防止这种攻击,你应该把滑点设置为 0.1%,这样,你目标最少兑换 198 个,有效的防止了黑客的攻击。

但是,过低的滑点有可能会导致交易失败。

为什么会导致交易失败?假设你要兑换一个换手非常频繁的币,这一秒你能兑换 200 个,但是,下一秒你只能兑换 170 个,所以,这就会导致你兑换失败。

合约交易

机器人之所以能够攻击你,是因为它识别了这个交易是什么?

如,pancakeswapswapExtraTokentoToken 这个方法,是公开的,机器人可以追踪这种方法,只要找到就会计算有利可图吗?

所以,可以通过合约弄一个新的方法,将上面的方法进行包装一层,让黑客无法追踪到你。

借助其他项目

ETH 中有一个项目叫做 EDEN,这个就是我们把交易传递给它,它有一个单独的节点,进行隐私保护,然后把这些交易打包到主链上。

这样黑客也追踪不到这些交易。

但是,这个我没有试过。

请我喝杯咖啡吧~