织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币

以太坊黑暗森林中的“捕食者”:抢跑机器人(3)

时间:2021-01-05 14:25来源:未知 作者:admin 点击:
第一轮:直接调用合约 为了确保我们的基线陷阱能够正常工作,我们首先使用获得者帐户来调用合约。第一次尝试时,交易费相对较高(由ETH框架设定)

第一轮:直接调用合约

为了确保我们的基线陷阱能够正常工作,我们首先使用获得者帐户来调用合约。第一次尝试时,交易费相对较高(由ETH框架设定),我们成功收回了资金。

这可能是由于利润过低,无法吸引捕食者,或者因为交易挖掘得太快,它们无法做出反应。显然,这并不是我们想要的结果,因为捕获捕食者是我们的目标。

第二轮:给他们时间思考

在这一轮中,我们解决了之前遇到的问题。我们增加了潜在利润并降低了交易费,这样交易就不会被挖得太快,给机器人时间去发现它。该合约还追加了0.04 ETH(比之前增加了0.005)。

这一次,我们成功了。该交易在被挖掘前等待了大约3分钟,没有从合约中获得价值。根据合约的内部交易,我们可以发现资金流向了别人。

当前事务使用25.000001111 Gwei(.000001111Gwei高于我们所使用的值),并且与尝试的“提取”在同一个块中被挖掘。

培养追踪者

既然我们已经成功地找到了一个机器人(付出了一些代价),我们可以得出一些有趣的见解。首先,事务表明对合约的调用没有直接执行。机器人并不只是复制交易并盲目地从一个拥有的帐户发送它,而是通过代理智能合约传递它,该代理智能合约充当一个智能钱包来执行这些交易。

现在,我们可以跟踪以前和将来的事务地址,以查看机器人的成功程度及其操作方式。

反编译合约有两个主要功能:

“提款”,基本上就是把合约中的所有资金都交给合约的运营商。另一个函数接收一些参数:一个要调用的合约、一个参数列表和一个传递的值参数。

通过该功能,代理合约为运营商充当了智能钱包的角色。除了执行调用外部函数的能力,它还可以保证交易开始时的余额至少和交易结束时的余额一样多,否则还可以恢复,从而避免在调用未知合约时可能出现的资金损失(当然,交易费用除外)。

使用Dune Analytics,我们可以看到自2018年5月开始机器人取得了多大的成功!

假设这个特定的机器人总是使用相同的代理和发送地址来发行交易,我们可以估计它的收益总计约17 ETH(在本文撰写时约为1万美元)。

第三轮:他们到底有多聪明?

现在我们已经确信机器人要攻击我们了,我们想测试是否可以通过第二个合约(一个代理,它将调用一个函数来从给予者那里提取诱饵)来混淆我们的调用,从而从我们的合约中提取诱饵。(合约中也有“收款”功能,可以将款项返还给我们)。

我们部署了ProxyTaker合约,并调用了适当的函数,试图提取我们的资金。由于通过代理收取资金的成本略高,授予者合约的金额略高,为0.055 ETH。你瞧,我们的交易立刻被另一个机器人抢跑了。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容