以太坊清扫器盯上你了,如何预防与恢复资产

什么是清扫器

清扫器是 sweeper 的直译,它主要工作在以太坊网络上(包括 EVM 兼容链,比如 BSC、Heco等),sweeper 持有一个私钥,这个私钥对应的钱包中有大量的 ERC20 通证,但是没有足够的 ETH 当 gas 费,所以无法直接从中转走 ERC20 通证。 为了从中取出价值连城的 ERC20 通证,你不得不往里面转 ETH,但有趣的是,一旦你往里面转 ETH,立刻会被 sweeper 卷走。

这个泄漏私钥的账户看起来像是这样:

这个私钥可能是一个黑客故意以看起来无意的方式暴露给你的,激发你的贪婪,让你试图从中取出资产。

也可能是由于你在参与一些空投时进入了钓鱼网站,它要求最终输入你的私钥,一旦这么做了,账户中的所有 ETH 会被瞬间转走,并为你挂上一个 sweeper。

一个 demo

在 Goerli 测试网络上(chainId 为 5,它是测试网络,因此你只需要到对应的 faucet 领取 token,即可测试),我设置了一个简单的 sweeper 去模拟你的困境,sweeper 会占用较多资源,我可能随时会关。如果你需要发起测试时,发现 sweeper 没工作,可以联系我开启。

被盗私钥的地址:0x166d78FE7a9e1De11aF1ef8aE5919fbBf3E81245

对应私钥就暂时不公布了,我可不想到时候你们使用我的解决方案来干掉我的 sweeper。

模拟的 USDT 地址:0x4734C809Cd59C87753Ebe95B494C0056513ceF85 ,这上面有 1000 USDT 你可以尽你最大的努力将它取出来。

但你会发现,一旦你转 ETH 到该地址,所有的 ETH 都会被立刻转移到黑客的地址中,就像下图这样:

image-20211211115343791

工作原理

目前的 sweeper 主要基于以太坊的交易池(也称 txpool、mempool)发现你发起的交易与新块产生调用 eth.getBalance() 获取你的余额。

交易池中包含了所有未被包含进区块的交易,当你试图直接将 ETH 通过转账发送到被盗账户时,你的交易就会被送入交易池,时刻监听交易池的 sweeper 就能够发现你的行为。

image-20211211200301235

并等到你的交易被执行后,立刻发起新的交易,这个新的交易将你转入的 ETH 扣除掉 gas 费后的剩余数量转入到黑客的地址中。

image-20211211200658869

然而根据公共交易池获取信息并不总是有效,很多方法可以规避交易进入交易池。

  1. 选择私有交易池。如果其中没有黑客,那么你的交易不会被黑客发现
  2. 选择内部交易(internal transaction)。简单的理解就是合约内部的逻辑调用,就是内部交易。对于外部来说,他们只能发现你调用了合约,无法获知合约内部具体的执行情况。例如,为了避免进入交易池,你只要对一个合约发起交易,执行合约的代码,而合约去将 ETH 转入你的被盗钱包即可。

sweeper 可能没有足够的成本去成为一个私有交易池的参与方,但有的 sweeper 会对内部交易进行预防。因为不论一笔交易会不会进入公共交易池,交易最终出现在链上的时候,一定会有状态的改变。也就是说通过内部交易转入的 ETH,会在新块产生时,能够被 sweeper 通过调用 eth.getBalance() 发现。

这是简单的工作原理,实际的 sweeper 拥有很复杂的逻辑,会让黑客的收益最大化,让你的损失最大化。更深的细节就不过多讲解,避免出现更加棘手的 sweeper 不是吗?

如何恢复你的资产

讲了原理,就容易理解如何应对它们了。

如果你的私钥已经泄漏,那么目前最有效的方案是通过私有交易池进行交易,而且是进行“批处理”交易,也就是说你可以将一批交易提交到私有交易池中,这个交易池中的矿工为你做以下担保:

  1. 如果决定在区块中包含你的交易,就一定将你的一批交易全部包含
  2. 你的一批交易全被包含进区块链后,才会广播到公共网络中

而矿工是根据利益关系做决定的,你需要更多的 gas price 支付,才能让矿工愿意打包你的交易,否则它为什么不直接打包公共交易池中的交易呢?

flashbots 是能够做到以上几点,但它目前只在以太坊主网与 Goerli 测试网络上工作,所以如果你的资产不在以太坊主网,将无法通过这种方式找回。

如何预防

  1. 不要随意将你的私钥泄漏,在任何时间,任何地点
  2. 考虑使用硬件钱包
  3. 有远见的批准一个“安全”的账户去能够转移你的 ERC20 通证,这样安全账户可以直接通过 transferFrom 转移你被盗账户中的 ERC20 通证
  4. 参与空头、活动等行为的账户与拥有大量存款的账户独立开
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>