我参与量化差不多 1
年了,期间也被黑客攻击过,经过和黑客斗智斗勇,总结了下面的措施,用来防止三明治攻击。
滑点
之所以被三明治攻击,是因为滑点设置的过大,让攻击者攻击你之后依然有利润。
比如,你花费 10U
滑点为 10%
想要兑换 token
,你设置的滑点,最少可以兑换 100
个 token
。
但是,按照池子的深度,正常来说,你 10U
可以兑换 200
个 token
,这个时候,就有机器人强在你之前买入一笔 token
,虽然,这个时候的 token
价格上涨了。但是,你的 10U
依然能兑换 120
个 token
,所以,你的兑换可以成功。
但是,中间有 80
个 token
的利润被黑客赚走了。
如果,你想要防止这种攻击,你应该把滑点设置为 0.1%
,这样,你目标最少兑换 198
个,有效的防止了黑客的攻击。
但是,过低的滑点有可能会导致交易失败。
为什么会导致交易失败?假设你要兑换一个换手非常频繁的币,这一秒你能兑换 200
个,但是,下一秒你只能兑换 170
个,所以,这就会导致你兑换失败。
合约交易
机器人之所以能够攻击你,是因为它识别了这个交易是什么?
如,pancakeswap
的 swapExtraTokentoToken
这个方法,是公开的,机器人可以追踪这种方法,只要找到就会计算有利可图吗?
所以,可以通过合约弄一个新的方法,将上面的方法进行包装一层,让黑客无法追踪到你。
借助其他项目
ETH
中有一个项目叫做 EDEN
,这个就是我们把交易传递给它,它有一个单独的节点,进行隐私保护,然后把这些交易打包到主链上。
这样黑客也追踪不到这些交易。
但是,这个我没有试过。