1

以太坊清扫机器人肆虐,一文了解三种解决方案

 3 years ago
source link: https://www.tuoniaox.com/news/p-496858.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

以太坊清扫机器人肆虐,一文了解三种解决方案

巴比特资讯 2021-04-20 15:30 1617

article_qmarks.svg 摘要:

了解以太坊黑暗森林猎人的行动方式,并避免被猎杀

你是否遇到过这样的情况,当你发送一笔以太坊资金,然后就发现钱包里的钱立即被清空了,你可能被清扫器(sweeper)盯上了,这篇文章旨在帮你解决这个问题,原文作者是MyCrypto安全&反钓鱼工程师Harry Denley。

以太坊清扫机器人肆虐,一文了解三种解决方案

当你的秘密遭到泄露时,恶意方通常会给你的账户设置一个清扫器(sweeper),以利用将来该地址上所发生的任何事情,比如当用户存入ETH以尝试提取一些代币,发生空投或其它情况时。

本文概述了用户的资金是如何被清扫走的,以及三种独特的方法来挽救任何未被清扫的资金(例如质押资金)。

1 用户是如何被钓鱼的

近期,我们看到有大量用户在冒充Telegram群管理员,这些假的管理员会向在主频道中请求帮助的用户提供帮助(尽管他们不是真正的管理员,他们复制了管理员简介信息,但用户名有一些小的差异)。这些冒名顶替者经常会说很多行话来迷惑用户,并分享一个看似合法网站的链接,但它最终会要求你输入助记词或私钥。

然后,你的加密资产就不见了,上面有一个清扫器。

这是这些假网站之一的示例:

以太坊清扫机器人肆虐,一文了解三种解决方案

2 清扫器的工作方式

清扫器是一些监控区块链(包括txpool,从技术上讲,它没有在链上)的代码,其以编程方式对一组规则的特定事务进行签名的反应,要比人类更快。

这意味着,对于你在区块链浏览器上查看你的地址或将其“连接”到dapp的UI,清扫器(sweeper)是看不见的。只有在你签名并向网络广播交易后,清扫器(sweeper)才能看到你的活动。

随着时间的推移,我们看到了清扫器(sweeper)和利用它们的活动的演变。

3 清扫器的演变

2017年期间,有相当一部分活动利用了具有锁定功能(即,你无法成功调用transfer() )但包含喂价的代币。Dave Appleton发表了一篇关于这些活动的文章。

恶意方利用这种骗局的方式是,他们会将私钥发布到这个地址(以某种看起来无辜或错误的方式),并等待人们将ETH存入该地址(以转移地址中的代币)。然后恶意方会有一个该账户的清扫器程序,以将存入该地址的ETH快速转移到他自己的账户。从理论上来说,锁定的代币被认为是毫无价值的,因此他们试图从那些毫无戒心的“贪婪”用户那里获取利润。

如今,遭泄露的的地址基本被部署了ETH清扫器程序,一些组织则使用更高级的清扫器程序逻辑来清扫基于喂价的ERC20代币。

今年早些时候,我对一个泄露地址做了一些侦察研究,发现清扫器在不断进化:

  1. 清扫器偏爱美元价值最高的资产,即使这意味着需要花费更多的交易费用来清扫;

  2. 清扫器将使用所有可用的ETH最大化清扫价值,同时也有很高的百分比是nonce的“获胜”交易。

  3. 清扫器有一个匹配引擎,将质押代币(即:xKNCa=KNC)与其原生代币匹配,以便喂价反映在质押代币上。

  4. 清扫器有自己的内部nonce计数器,如果其最高nonce随机数未在一个时间范围内得到确认(或被另一个丢弃/替换),则定期将nonce随机数重置为eth.getTransactionCount()输出。

  5. 如果存在清扫器所针对的高价值资产,则有一些活动会建议运行者通过资助地址来“牺牲”一些ETH,以尝试从账户中快速清扫高价值资产。

  6. 如果美元价值低于某个阈值,则某些清扫器就不会清扫资产,这意味着你可能并不知道自己的账户被清扫器盯上了,这是很可怕的。

描述清扫器的文章,第一次出现是在2017年,而现在我们观察到的清扫器已变得更加先进,它们的设计目的是最大化运行者的利润,同时对受害者造成最大的损失。

以太坊清扫机器人肆虐,一文了解三种解决方案

4 如何击败清扫器?

首先,作为人类,我们是无法比代码更快的,所以我们的解决方案只能涉及编码。你可以选择几条不同的路线,它们均无法提供100%的保证,但对我们而言是有利的。

你需要创建一个想要尝试抢救的代币列表,按优先级排序,这样你就可以轻松地确定你的计划,你需要列出:

  1. 代币合约地址;

  2. 代币是否质押(以及解除质押是否是时间锁定的);

  3. 代币是否可转让;

  4. 代币价值(以美元计算);

关键是你要有条不紊地完成这件事,这样你才能快速有效地执行。正如一句名言:“如果你疏于计划,那你就是计划走向失败”。

5 使用TAICHI

清扫器的工作方式是监视txpool中转到其清扫地址的传入交易,而TAICHI允许你将签名的交易直接提交给矿工(SparkPool),而无需通过公共txpool进行广播,这意味着清扫器程序将是看不到的,并且很可能你的交易不会被清扫程序机器人抢先完成(至少以我的经验来看)。

以太坊清扫机器人肆虐,一文了解三种解决方案

图片来自TAICHI.NETWORK

这里的方法是让你的所有交易预先以nonce顺序签名,并以编程方式提交给TAICHI。大多数清扫器只监视公共txpool/mempool以获取传入的ETH交易,并且不在每个新区块上调用eth_getBalance(以节省CPU周期和RPC方法调用的成本),这意味着它们将对通过专用txpool路由发送到帐户的ETH视而不见,也就不会对其进行清扫。

这需要你做一些数学工作,如果正确执行了数学运算,则尝试抢先交易的清扫器程序可能会失败!(通常,我默认gas价格比GasNow上的“快速”类别高几个百分点,因此矿工将更有可能在下一个区块中确认你的交易。)

你可以离线使用MyCrypto来生成已签名的交易,并在准备就绪时将其推送到TAICHI,或者使用ethers.js(或其他库)创建代码来创建已签名的交易。

以太坊清扫机器人肆虐,一文了解三种解决方案

方法2:使用一个自毁智能合约

就像使用TAICHI方法一样,我们可以使用智能合约让ETH进入账户,而不会在公共txpool中显示出来。我们通过从安全地址部署智能合约来做到这一点,然后在结构上将ETH发送到被泄露的地址(这将是一笔内部交易)。

以太坊清扫机器人肆虐,一文了解三种解决方案

通过部署这个合约,我们可以在构造函数参数中发送ETH以及遭泄露的地址字符串。该合约通过在同一交易中创建合约并自毁来工作。使用selfdestruct()意味着我们清除了区块链状态(因为它是一次性使用合约),并且在一次交易中将ETH转发到了泄露地址。

https://goerli.etherscan.io/tx/0x82ccb222eae55aaea73dd0efee1ea6ed7320f880889f280d4a343b8823f86692

请注意,这种方法虽然有效,但它会增加额外的成本,因为我们要做的操作不仅仅是将ETH从一个帐户发送到另一个帐户。这种方法的成本约为70,000 gas,在高昂的gas价背景下,使用这种方法的手续费成本就可能达到0.0112ETH。

以太坊清扫机器人肆虐,一文了解三种解决方案

方法3:使用Flashbots

一般而言,我们需要支付ETH才能让一笔交易被确认(因为交易费用是由发送方支付的)。然而,由于Flashbots‌的出现,我们可以更轻松地从EOA中通过用另一个帐户中的资金“贿赂”矿工,以0 gas价格(即0美元交易费用)确认交易,这意味着我们可以将代币从泄露的地址中转移出来,而无需用ETH支付gas费用,是的,就是这样。

该策略需要用到2个账户,一个是泄露账户,以及另一个贿赂矿工的帐户。

Flashbots小组已发布了一个名为Flashbots / searcher-sponsored-tx‌的项目,其具有设置此策略以从两个帐户中确认你的交易的基本原理。

由于我们将使用另一个帐户支付交易费用,因此不需要向受损害的帐户存入ETH。

为了确保泄露帐户中没有ETH,我们强烈建议你运行一个Burner机器人。

我们通常建议在每个实例上使用不同的RPC节点,在一台以上的计算机上运行这个burner 机器人。例如,使用Infura在本地运行burner 机器人,并在具有其他提供商(例如Quiknode)的远程服务器上运行一个burner机器人。这样,你就有了一个备案计划,以防出现高网络延迟或节点问题(速率限制、同步问题)。

Flashbots/searcher-sponsored-tx中的代码需要根据你的特定需求进行修改,但这个引擎可以帮助你将代币从泄露的地址中解救出来。这个Flashbots引擎足够灵活,可支持单个 transfer()调用,或者unstake() 以及 transfer()调用。

如果你不太熟悉代码,你也可以尝试使用@kendricktan/flashbots.tools ‌网站。

来源:巴比特资讯(ID:bitcoin8btc)

和11万人同时接收最新行情资讯

搜“鸵鸟区块链”下载

和2万人一起加入鸵鸟社群

添加微信ID:tuoniao02

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK