热点丨以太坊黑暗森林中的“捕食者”_币世界+加密谷

2021-01-03 18:04 栏目:行业动态 来源:网络整理 查看()

埃瑟伦的黑暗森林怪物可不是闹着玩的。这些Frontrunning机器人可以分析智能合同调用和智能合同中从未使用过的功能,以获取潜在利润。作者|Alex MenUskin

埃瑟伦的黑暗森林怪物可不是闹着玩的。这些Frontrunning机器人可以分析智能合同调用和智能合同中从未使用过的功能,以获取潜在利润。

鉴于对这些机器人普遍缺乏了解,我们开始了一次狩猎之旅,以了解更多关于这种情况的信息,并看看它们有多常见。我们设法“捕获”了一些通用前端机器人,并分析了它们的行为。我们研究了它们的效率和交易被“猎杀”的可能性。我们还测试了不同的方法来避免它们。

什么是Frontrunning?

通常,在已知的未来事务发生之前,Frontrunning是在执行队列中获取事务的第一个行为。

Frontrunning的一个简单例子是交易所竞价。假设有人打算在Uniswap上大量购买ETH,足以推高ETH的价格。从这种情况中受益的一个方法是在购买大量ETH之前进行交易,同时保持价格低廉。然后价格暴涨后,卖ETH盈利。

除了这个套利例子之外,Frontrunning进行的许多其他交易也可能是有价值的,包括清算、购买稀有的NFT或简单的用户错误。(从交易或交易序列中提取的值称为MEV)。

在Ethereum中,Frontrunning是通过出价略高的交易费用来实现的,这鼓励矿工在构建块时更早排序,并且首先执行更高的支付交易。因此,如果从同一个合约看涨期权中获利的两个交易放在同一个区块中,只有第一个交易会获利。

行为

丹罗宾逊和圣乔治孔斯坦托普洛斯在《ETH是黑暗森林》年的一篇博文中描述了一次尝试,其中12000美元落入了一个复杂的捕食者手中。捕食者非常先进,它可以跟踪以太网交易池中的任何有价值的交易,并通过前端运行获得利润。

《黑暗森林》的故事太恐怖了,一开始很难相信。的确,我们有理由怀疑这个“食肉动物”的存在。在大量机器人严密监控的套利平台Uniswap中,资金如何提取?会不会是“常规”套利者?

今年早些时候,我们的深入分析证明并非如此。这不是普通的机器人。它成功地调用了一个约定函数,据我们所知,这个函数以前从未被调用过。虽然交易被代理智能合同搞糊涂了,但资金还是被拿走了。

退一步说,这相当令人担忧。监控交易池中任何交易的能力是一种超级强大的武器。令人担忧的是,一些服务开始公开提供“暗池”交易层。

“暗池”事务层不使用Infura等服务,甚至不使用私有节点,而是直接将事务发送给矿工,并承诺不会将事务扩散到网络的其他部分,从而保证事务的安全性,防止被捕食者窥探。

Samczun和co .在试图从一份脆弱的合同中提取960万美元时使用了类似的方法。不难想象,矿工们开始自己使用Frontrunning机器人,只给额外付费的人提供安全通道。

不像etherceum的其他元素(比如可以在开发环境或者测试网络中测试的智能契约),这些机器人只存在于etherceum主网络中。除了一些最初的实验,他们试图与Frontrunning Test Network交易在财务上是没有意义的。而且,他们也不必跟其他人一样遵循同样的规则,因为他们的逻辑是隐藏的。

我们不知道这些前沿掠食者何时决定攻击。所以,从某种程度上来说,追踪这些食肉动物就像猎杀珍稀动物一样。我们不想针对任何Frontrunning,只针对具体的和概括的。

为了保证我们抓到的领跑者是一个“真正的”普通领跑者,我们需要一个独特的陷阱。这个陷阱是一个新创建的契约,由一个SHA256散列秘密字符串发起,其中有一些资金是可用的。只有提供这个秘密,锁定的资金才能被提取,资金将直接发送给提取交易的发送方。

他们的想法是发送一个提供正确秘密的“诱饵”交易,看看有没有人试图复制,然后自己提供秘密,从而获得可用的资金。如果有人在诱饵交易前拿到钱,说明有人可以在交易还在交易池L的时候进行分析,复制其相关内容,提供自己的秘密。

有趣的是,他们会提供一个他们以前不知道的秘密,一个他们以前从未见过的合同,来获取资金。

普通的Frontrunning是怎么工作的?

这个实验的一个重要部分就是了解Frontrunning的工作原理。但是如果有人造了赚钱机器,可能就不会在Github上分享了。所以只能根据工程违法者的行为进行观察和逆向分析。

构建一个通用的Frontrunning通常有两个部分。第一个组件是一个Ethereum账户,无论是否有智能钱包代理,修改后的交易都可以发送到这个账户。第二个是“后端”,即操作脑,大多发生在链条下。操作员使用一些技术来检查池中的每个事务,解析它,替换它的参数(例如,tx调用者),并确定它是否有任何利润。

食者”"/>

一个理性的机器人不会尝试去做一笔费用超过潜在收益的交易。交易费用加起来可能会相当多,尤其是在交易费的时候。因此,要吸引机器人上钩,就需要一个最小的利润。

此外,由于需要对交易池中的每个事务(其中有许多事务)进行分析,所以时间也是至关重要的。挖掘一个以太坊区块平均需要12秒。如果这笔交易的交易费足够高,那么必须在下一个区块到来之前足够快地对其进行分析和替换。

这是一个概率过程,有可能在一个事务被广播后立即挖掘一个块,让机器人没有时间成功地分析它并广播一个正在运行的事务。

有了这些考虑和一些想法,我们测试了机器人抓住诱饵需要多少时间。

设置陷阱

我们的合约(授予者)的初始余额为0.035 ETH,当时价值约20美元。任何向合约中存储的Hash提供正确原像的人都可以获得这些资金。为了获得资金并作为掠夺者的触发器,一个单独的账户(获得者)将试图通过提供适当的"逆象"像来提取资金。

第一轮:直接调用合约

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

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

第二轮:给他们时间思考

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

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

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

培养追踪者

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

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

热点丨以太坊黑暗森林中的“捕食者”_币世界+加密谷

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

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

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

这一次更令人印象深刻。机器人不仅能够检测我们的提取事务,而且它从一个内部调用中,从一个完全不同的合约中识别它!以破纪录的速度完成了这一壮举。我们的提取交易在几秒钟内就被挖掘出来了(机器人也一样)。

机器人的身份也很有趣。bot的合约主要是由这个账户来操作的。该账户在Etherescan上发表了评论,将其与黑客试图从一份脆弱的Bancor智能合约中提取用户资金的案件联系起来。

考虑到机器人的相同行为模式(从账户A调用代理并将资金传递到账户B)和事件的临近性,有理由认为机器人在该事件中也在对白人黑客进行普遍的Frontrunning操作。

这个机器人比前一个复杂得多。它不仅关注ETH,还进行各种套利交易。

从收集资金的账户余额来看,它也要成功得多。目前,余额约为300 ETH(撰写本文时约为18万美元)。我们也可以从合约地址中减去所有的资金流入和流出来估算其收益,总计为~900 ETH。这只是一个粗略的估计,因为该账户可能进行了与其前端运行活动无关的交易。(以下是所有有正值的机器人交易列表)。

最后一轮:成功提取

为了让这个挑战更有趣一点,我们又做了一次混淆的尝试,这次使用了一个只有我们可以使用的代理合约,一个OwnedTaker。

设置类似于第三轮。授予合约追加了0.05 ETH。这笔资金也在同一笔交易中转回给我们,而不是保留在合约中。

在第一次尝试中,对OwnedTaker合约的交易花了大约1分钟时间挖掘,我们成功地提取了资金。

实验重复进行,这次用0.06 ETH重新填充了给予者合约,这是我们迄今为止使用的最高的支付,以确保较低的支付不是缺少Frontrunning尝试的原因。

交易费也被故意设定在一个相对较低的水平。交易等待了大约7分钟,但仍然成功提取了资金。

一个只允许所有者转发交易的自有代理的组合,阻止了两家Frontrunning者成功解析数据并为自己赚取利润。

热点丨以太坊黑暗森林中的“捕食者”_币世界+加密谷

ProxyTaker合约

热点丨以太坊黑暗森林中的“捕食者”_币世界+加密谷

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发