本文发布于巴比特资讯,作者:HarryDenley,编译:洒脱喜。
你是否遇到过这样的情况,当你发送一笔以太坊资金,然后就发现钱包里的钱立即被清空了,你可能被清扫器盯上了,这篇文章旨在帮你解决这个问题,原文作者是MyCrypto安全&反钓鱼工程师HarryDenley。
当你的秘密遭到泄露时,恶意方通常会给你的账户设置一个清扫器,以利用将来该地址上所发生的任何事情,比如当用户存入ETH以尝试提取一些代币,发生空投或其它情况时。
本文概述了用户的资金是如何被清扫走的,以及三种独特的方法来挽救任何未被清扫的资金。
用户是如何被钓鱼的
近期,我们看到有大量用户在冒充Telegram群管理员,这些假的管理员会向在主频道中请求帮助的用户提供帮助。这些冒名顶替者经常会说很多行话来迷惑用户,并分享一个看似合法网站的链接,但它最终会要求你输入助记词或私钥。
以太坊开发人员正在计划下一个硬分叉“Dencun”:金色财经报道,在周四的以太坊开发电话会议上,开发人员讨论了下一个硬分叉“Dencun”,该名称源自以太坊区块链的两个主要层上同时发生的两个升级的组合词,所有协议规则所在的执行层将进行“Cancun”升级,而在确保块得到验证的共识层被称为“Deneb”。Dencun的核心是EIP4844,也被称为“proto-danksharding”,该提案旨在通过增加数据“blob”的空间来扩展区块链,预计这些变化还将降低第2层rollups的费用。预计Dencun还将包括一些其他技术升级,包括EIP6780、6475和1153。开发人员在本次会议上没有讨论Dencun升级的时间,尽管他们过去曾表示,目标是在2023年下半年推出。Dencun的全貌预计将在接下来的几周内确定。[2023/5/12 14:58:14]
然后,你的加密资产就不见了,上面有一个清扫器。
这是这些假网站之一的示例:
基于以太坊的流媒体服务Audius筹集310万美元资金:金色财经报道,基于以太坊的流媒体服务Audius在Multicoin Capital和Blockchange Ventures共同领导的融资中筹集了310万美元,Pantera Capital和Coinbase Ventures参与了该轮融资。据悉,该项目旨在利用区块链平台帮助艺术家管理他们共享的音乐。[2020/7/31]
清扫器的工作方式
清扫器是一些监控区块链的代码,其以编程方式对一组规则的特定事务进行签名的反应,要比人类更快。
这意味着,对于你在区块链浏览器上查看你的地址或将其「连接」到dapp的UI,清扫器是看不见的。只有在你签名并向网络广播交易后,清扫器才能看到你的活动。
随着时间的推移,我们看到了清扫器和利用它们的活动的演变。
清扫器的演变
2017年期间,有相当一部分活动利用了具有锁定功能但包含喂价的代币。DaveAppleton发表了一篇关于这些活动的文章。
动态 | Blockstream CSO因投资以太坊区块链上INX证券型代币销售而被指责虚伪:Blockstream CSO Samson Mow因支持在以太坊区块链上发布的INX证券型代币销售而受到抨击。Samson Mow被指责虚伪。The Block编辑Mike Dudas通过推特提供Mow投资INX交易平台项目的证据。其推文显示Mow在今年1月的声明,“以太坊是有史以来最不切实际的东西”。因此,看起来很奇怪,他会支持一个基于以太坊区块链的项目。一些人将Blockstream CSO的投资贴上虚伪的标签。Dudas提供包括MoW和其他领先加密货币人物在IINX Limited投资的证据,INX的设想是符合监管要求、以机构为重点的交易平台。其中包括Monero项目主要开发者Riccardo Spagni、莱特币创始人李启威、Stephan“WhalePanda”Jespers。根据Dudas发布的文件,Mow似乎已在INX平台投资超10万美元。他也是该项目顾问委员会成员,其他知名人士包括Stephan Jespers和Jameson Lopp。 (Beincrypto)[2019/8/22]
恶意方利用这种局的方式是,他们会将私钥发布到这个地址,并等待人们将ETH存入该地址。然后恶意方会有一个该账户的清扫器程序,以将存入该地址的ETH快速转移到他自己的账户。从理论上来说,锁定的代币被认为是毫无价值的,因此他们试图从那些毫无戒心的「贪婪」用户那里获取利润。
动态 | 以太坊钱包MetaMask在DevCon上发布移动客户端:据CCN消息,由ConsenSys开发的以太坊钱包MetaMask在DevCon上发布移动客户端。[2018/11/1]
如今,遭泄露的的地址基本被部署了ETH清扫器程序,一些组织则使用更高级的清扫器程序逻辑来清扫基于喂价的ERC20代币。
今年早些时候,我对一个泄露地址做了一些侦察研究,发现清扫器在不断进化:
清扫器偏爱美元价值最高的资产,即使这意味着需要花费更多的交易费用来清扫;
清扫器将使用所有可用的ETH最大化清扫价值,同时也有很高的百分比是nonce的「获胜」交易。
清扫器有一个匹配引擎,将质押代币与其原生代币匹配,以便喂价反映在质押代币上。
清扫器有自己的内部nonce计数器,如果其最高nonce随机数未在一个时间范围内得到确认,则定期将nonce随机数重置为eth.getTransactionCount输出。
开发者:以太坊资金恢复争论没有正确答案:Andreessen Horowitz前合伙人,Coinbase前软件工程师Preethi Kasireddy在5月4日的以太坊社区会议EDCON上表示,最近有关找回因Parity客户端问题而丢失的大量资金而引发的社区争论是“没有正确答案”。他说,“我们一直在尝试寻找一个让所有人都满意的解决方案,但是我不认为存在这种解决方案。对于以太坊来说,这是一个具有文化意义的时刻,因为这个问题的答案将基于我们共同的社会规范是什么和我们共同的准则是什么。老实说,我认为我们不知道这些是什么,这就是为什么我们被困在这场争论中。”[2018/5/6]
如果存在清扫器所针对的高价值资产,则有一些活动会建议运行者通过资助地址来「牺牲」一些ETH,以尝试从账户中快速清扫高价值资产。
如果美元价值低于某个阈值,则某些清扫器就不会清扫资产,这意味着你可能并不知道自己的账户被清扫器盯上了,这是很可怕的。
描述清扫器的文章,第一次出现是在2017年,而现在我们观察到的清扫器已变得更加先进,它们的设计目的是最大化运行者的利润,同时对受害者造成最大的损失。
如何击败清扫器?
首先,作为人类,我们是无法比代码更快的,所以我们的解决方案只能涉及编码。你可以选择几条不同的路线,它们均无法提供100%的保证,但对我们而言是有利的。
你需要创建一个想要尝试抢救的代币列表,按优先级排序,这样你就可以轻松地确定你的计划,你需要列出:
代币合约地址;
代币是否质押;
代币是否可转让;
代币价值;
关键是你要有条不紊地完成这件事,这样你才能快速有效地执行。正如一句名言:「如果你疏于计划,那你就是计划走向失败」。
使用TAICHI
清扫器的工作方式是监视txpool中转到其清扫地址的传入交易,而TAICHI允许你将签名的交易直接提交给矿工,而无需通过公共txpool进行广播,这意味着清扫器程序将是看不到的,并且很可能你的交易不会被清扫程序机器人抢先完成。
图片来自TAICHI.NETWORK
这里的方法是让你的所有交易预先以nonce顺序签名,并以编程方式提交给TAICHI。大多数清扫器只监视公共txpool/mempool以获取传入的ETH交易,并且不在每个新区块上调用eth_getBalance,这意味着它们将对通过专用txpool路由发送到帐户的ETH视而不见,也就不会对其进行清扫。
这需要你做一些数学工作,如果正确执行了数学运算,则尝试抢先交易的清扫器程序可能会失败!
你可以离线使用MyCrypto来生成已签名的交易,并在准备就绪时将其推送到TAICHI,或者使用ethers.js创建代码来创建已签名的交易。
方法2:使用一个自毁智能合约
就像使用TAICHI方法一样,我们可以使用智能合约让ETH进入账户,而不会在公共txpool中显示出来。我们通过从安全地址部署智能合约来做到这一点,然后在结构上将ETH发送到被泄露的地址。
通过部署这个合约,我们可以在构造函数参数中发送ETH以及遭泄露的地址字符串。该合约通过在同一交易中创建合约并自毁来工作。使用selfdestruct意味着我们清除了区块链状态,并且在一次交易中将ETH转发到了泄露地址。(示例)
请注意,这种方法虽然有效,但它会增加额外的成本,因为我们要做的操作不仅仅是将ETH从一个帐户发送到另一个帐户。这种方法的成本约为70,000gas,在高昂的gas价背景下,使用这种方法的手续费成本就可能达到0.0112ETH。
方法3:使用Flashbots
一般而言,我们需要支付ETH才能让一笔交易被确认。然而,由于Flashbots?的出现,我们可以更轻松地从EOA中通过用另一个帐户中的资金「贿赂」矿工,以0gas价格确认交易,这意味着我们可以将代币从泄露的地址中转移出来,而无需用ETH支付gas费用,是的,就是这样。
该策略需要用到2个账户,一个是泄露账户,以及另一个贿赂矿工的帐户。
Flashbots小组已发布了一个名为Flashbots/searcher-sponsored-tx?的项目,其具有设置此策略以从两个帐户中确认你的交易的基本原理。
由于我们将使用另一个帐户支付交易费用,因此不需要向受损害的帐户存入ETH。
为了确保泄露帐户中没有ETH,我们强烈建议你运行一个Burner机器人。
我们通常建议在每个实例上使用不同的RPC节点,在一台以上的计算机上运行这个burner机器人。例如,使用Infura在本地运行burner机器人,并在具有其他提供商的远程服务器上运行一个burner机器人。这样,你就有了一个备案计划,以防出现高网络延迟或节点问题。
Flashbots/searcher-sponsored-tx中的代码需要根据你的特定需求进行修改,但这个引擎可以帮助你将代币从泄露的地址中解救出来。这个Flashbots引擎足够灵活,可支持单个transfer()调用,或者unstake()以及transfer()调用。
如果你不太熟悉代码,你也可以尝试使用@kendricktan/flashbots.tools?网站。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。