【9】拿什么拯救你,我被盗的ETH钱包?——基于Sweeper机器人和Flashbot RPC的资产拯救JS脚本
February 13, 2024
在数字资产的世界中,保护你的钱包是一项至关重要的任务。在理想的情况下,你的资产将永远安全,不受任何威胁,除了你自己没有任何人可以抢走属于你的代币和NFT。然而,这不是总是可能的。
在某些情况下,你的区块链钱包可能被盗。一般都是你将自己的私钥或者助记词暴露在网上,被别人记录了;又或者你的电脑被病毒入侵,你的Metamask钱包记录的助记词被泄露在这种情况下,执行应急措施以尝试恢复你的资产变得至关重要。
在这种情况下,执行应急措施以尝试恢复你的资产变得至关重要。一般发生助记词泄漏(一般迹象为你钱包中资产开始突然被转走),你应该紧急救助白帽黑客或者快速转移走自己的资产。然而,一般情况下,黑客会以迅雷不及掩耳之势转移走你的大部分财产,剩下的质押Staking代币和一些相对不贵的NFT则可能被黑客遗漏。
如果你已经遭遇了这种不幸的情况,或者你只是想知道在这种情况下你需要做什么,本文将详细介绍两种可以帮助你挽救被盗钱包的机器人:Flashbot和Sweeper bot。
你不需要太多的代码知识,但我建议你还是要谨慎操作,如果你对区块链网络代码一点都不了解,我建议你一步一步按照我的操作来运行,极大概率你会成功救出自己的被盗资产。
⚠️我这里指的是:还未来得及被黑客转移走的NFT或者质押代币,已经被转移走的资产将永远没办法转移回你的钱包!
什么是Sweeper机器人和Flashbot?
"Sweeper bots"是一个指的是在区块链网络中自动监控地址余额并利用可利用条件自动将资产转移到另一个钱包地址的机器人。它们始终在寻找机会,诈骗者写下的脚本以飞快的速度扫描最新区块高度的资产余额,一旦发现被盗钱包有ETH入账,它们就会立即行动,尽快地转移ETH资产。这通常会使得恢复钱包中的资产变得极其困难,甚至可能是不可能的。
然而,有了Flashbot和一些必要的技能,你可能还是有机会夺回你的资产。这个过程可能需要一些专业知识和努力,但如果成功,结果将完全值得。在接下来的部分中,我将详细介绍还有这两种机器人如何操作,以及争取恢复你的钱包的最佳策略。
什么是Flashbot?
Flashbot是一个最先优化交易的新型工具。它允许用户直接与ethereum网络上的矿工进行交互,以便在未来的区块中包含他们的交易。通过使用Flashbot,用户可以出价于其交易在特定区块中的位置,以此来优化他们的交易速度和成本。
用人话来讲:你发送到区块链的交易可以在同一个区块进行多次交易,并且不会被放到公共Memppol,从而让之前提到Sweeper机器人抢跑你的交易。
但我提供的这个方法里,你不用了解太复杂的知识,我提供的方法都是非常简单基础的图形界面操作,按照步骤一步一步就能直接操作!
更为具体地说,Flashbot有以下主要优势:
配置性:用户可以自由选择要发送交易的目标和自身的mev-share设置。
防止交易被抢跑:用户的交易不会在公共mempool中被其他盗取交易的机器人看到。
MEV(可提取价值)回馈:如果用户的交易创造了MEV,用户可以通过MEV-Share得回最多90%的MEV。
无失败交易:只有在交易不包含任何回滚的情况下,用户的交易才会被包含在内,所以用户不需要为失败的交易付费。
Flashbot RPC是一种具有特殊配置的RPC,可以优化交易的速度和包含程度。
Flashbot RPC有以下主要特点:
快速模式:用户可以通过使用Flashbot RPC的快速模式来加速他们的交易的包含程度。当配置Protect RPC时点击 "fast",或手动将RPC设定到rpc.flashbots.net/fast。
广泛分享:默认情况下,Protect交易只与Flashbots Builder分享,Flashbots Builder只构建所有以太坊区块的子集。在快速模式下,交易会与所有注册的builders分享,以增加用户交易可以包含入的区块的数量。
使用Flashbot Protect有三种方式:
将Flashbots Protect RPC添加到你的钱包,大多数用户会选择这种方式。
使用eth_sendRawTransaction将交易发送到 RPC URL。
使用eth_sendPrivateTransaction将交易发送到 Flashbots。
具体哪种方式取决于你和你的偏好。最简单的使用Flashbots Protect的方式就是将Flashbots Protect RPC添加到你的钱包。
1.1 准备编程环境
在你开始这个过程之前,请确保你已经安装和设置了适当的编程环境。你需要有Node.js,npm,以及一个支持JavaScript或者TypeScript的文本编辑器。
你也需要有一个测试网上的Gas,这样你才能进行交易和支付交易费用。这个可以根据自己的需求去不同测试网上的Facuet水龙头去领取。
1.2 编写Sweeper机器人代码
然后,你需要编写你的机器人的代码。你的代码应该包括从区块链读取信息、理解可能的交易、以及执行这些交易的功能。
Sweeper机器人的核心功能是检测到被盗的资产,并在尽可能快的情况下转移走它们。
BurnGas机器人则是通过执行有利的交易并尽可能地消耗gas,使得诈骗者的其他交易更难以完成。
Burn机器人你可以参考这个推文来进行部署!
我在使用的是我自己写的Sweeper机器人代码,他的特性包括:
支持Arb,Op,BSC,Ethereum和Polygon链多链抢跑交易
支持重复运行;部署简单有效,几乎没有什么bug
存在的问题:节点需要你自己提供更快速的节点或者继续使用公共节点尝试(大概率会失败)
我的Sweeper机器人代码要求如下:
⚠️ 运行之前要安装必要的环境,并且建议先在测试网上测试一下:
复制第一段代码并存储为package.json
复制第二段代码储存为bot.js
在命令行中运行npm install,安装依赖环境
在命令行中运行node bot.js
代码应该可以自动运行了
第二段bot.js代码
1.3 测试你的代码
在你的代码完成之后,你应该在一个安全的环境中进行测试。这样可以帮助你找出潜在的问题,并确保一切都在正确地运行。
你可以使用以太坊的本地测试网络,如Goerli进行测试。
1.4 部署你的机器人
测试完成后,你就可以部署你的机器人到EVM网络上了。
在钱包遭遇恶意扫荡机器人(Sweeper Bot)的攻击,资产被锁定情况下,使用Flashbot打包交易是我们可以采纳的一种恢复选项。相信在前半段文章中,你已经已经对sweeper bot的概念有所了解,如果不清楚,可以回顾本系列第一部分了解基础知识。接下来,我将结合图文教程,教您如何使用Dark Florist的Interceptor和Bouquet两款产品,助您安全、快速地找回资产。
使用Interceptor浏览器拓展
Dark Florist推出的Interceptor是一个与MetaMask类似的浏览器拓展工具,用于创建模拟交易包并通过Flashbot送出。通过添加账户、启用模拟模式,以及使用“Make Me Rich”按钮在模拟状态下为账户增加以太币,您就可以开始模拟交易流程。
首先,安装Dark Florist Interceptor浏览器添加项。(改插件会创建一个以太坊网络的fork版本,并假装你的钱包里有很多ETH,这样我们就可以模拟真实的交易了)
启用模拟模式,并使用被攻击钱包的以太坊地址配置添加项,此步骤中不需要钱包私钥。
在模拟模式中,点击“Make Me Rich”为账户注入模拟的以太币。
在你想要的Dapp上进行模拟操作,插件会自动生成模拟数据(以在Uniswap Swap为例)
使用Bouquet转移ERC20资产
通过Bouquet网页应用,用户能将通过Interceptor创建的交易包发送到以太坊网络。这样,交易包中的所有交易将同时被执行,这对于战胜持续从账户中移走ETH的sweeper bot至关重要。
通过链接到Bouquet网页应用(https://bouquet.dark.florist)。
通过Bouquet,连接并读取Interceptor中的模拟交易堆栈,并将其转化为一个Flashbots交易包。
完成模拟中的瓦斯费注入,确保有足够ETH支持交易执行。
使用NFTSender转移ERC721资产
对于NFT的转移,可以使用Dark Florist创建的NFTSender应用。
在NFTSender中连接拦截器,选择需要转移的NFT。
使用OpenSea的链接提取合约地址和代币ID,或手动输入。
输入安全的接收地址,并发送NFT。
总结
使用Dark Florist的Interceptor和Bouquet工具,您可以构建出同步交易包,即使在面临sweeper bot攻击的情况下,也能有效地保护和转移您的资产。但非常重要的一点是,在整个过程中,请谨慎处理您的私钥信息,并仅在必要时与信任的白帽团队共享。强烈建议使用这些工具前,详细了解其使用方式,并在遇到问题时,及时向我或者熟悉区块链编程的人员救助!