,有或没有智能钱包代理,它们篡改的交易将会被发送到这个钱包。 这些机器人的操作者使用某种技术扫描交易池中的每笔交易,对其进行解析,替换其参数(例如,交易调用方),并判断对其截胡是否有利润。 抢先交易机器人工作流 理性的机器人对于交易费用超过可能获利的交易不会发起截胡攻击。总计交易费用可能较高,尤其是在 Gas 价格高昂的时候,因此,要想让抢先交易机器人攻击我们的诱饵交易,需要一定的最低利润。 此外,由于机器人需要对交易池中的每笔交易(其中有很多交易)进行分析,因此时间也很重要。以太坊平均需要 12 秒产出一个区块。如果交易的 Gas 价格足够高,则必须在下一个区块产生之前对其进行分析并足够快地替换掉原交易。 这是一个存在一定概率的过程,在交易被广播出去后,有可能有一个区块被立即挖出,导致机器人没有时间来成功分析该交易并广播一个抢先交易。 考虑了这些因素以及一些想法,我们测试了抢先交易机器人出手截胡诱饵的条件。 设陷阱我们的智能合约 (付款方 Giver) 设立时的最初余额为 0.035 ETH,当时价值约 20 美元。任何人向合约中存储的哈希提供正确的秘密合约,就可以拿走这些资金。拿走这些资金的交易会触发掠食者的抢先交易动作,另一个账户 (接受者 taker) 会试图给出合适的秘密合约来提取资金。 第一轮:直接调用合约为了确保基准陷阱正常运行,我们首先使用了接收者帐户来调用合同。第一次尝试时,Gas 价格相对较高(由以太框架确定),我们能够成功收回资金。 我们能成功可能是因为截胡这一交易的利润太低,不足以打动掠食者,或者因为这一交易很快被写入区块,机器人没来得及采取行动。显然这不是我们期待的结果,我们的目标是引诱掠食者进入我们的陷阱。 第二轮:给掠食者留出思考时间这一轮中我们解决了先前遇到的问题。我们增加了潜在利润,并降低了 Gas 价格,因此交易不会太快地被写入区块,从而使机器人有时间找到它。该合约的余额增加至 0.04 ETH (余额比以前增加了 0.005 ETH)。 这次我们遭到了攻击。该笔交易在被写入区块前滞留了约 3 分钟,最终未能从陷阱智能合约中提取到价值。我们审视了合约的内部交易,发现资金被别人截胡。 (责任编辑:admin) |