火星链 火星链
Ctrl+D收藏火星链
首页 > 中币 > 正文

GAS:捕捉以太坊黑暗森林中的通用型抢跑机器人

作者:

时间:1900/1/1 0:00:00

以太坊黑暗森林里野兽横行,这可不是耸人听闻。这些抢跑机器人可以靠着分析合约的调用发现潜在的获利空间,哪怕这些调用和合约都是他们前所未见、一无所知的东西。

鉴于大部分人对抢跑机器人的认识不足,我们将深入分析这一情况,并了解抢跑机器人的普遍性。我们成功“捕获”了一些通用的抢跑交易机器人,并分析了它们的行为。我们研究了这些机器人的效率以及交易被抢跑的概率。我们还测试了不同的方式来抵御抢跑交易机器人。

什么是抢跑交易?

一般而言,抢跑交易就是在一个已知的未来交易发生前,将另一个交易插入执行队列的第一位。

一个简单的例子是交易所的交易过程。假设有人想要在Uniswap上买入大量ETH,一种牟利方法就是趁价格还未上涨时抢先买入ETH,等到大批量买入交易推动ETH价格上涨后再卖出ETH。

除了这个例子之外,抢跑其它交易也有可能带来巨大利润,如清算、购买稀有NFT,或简单的用户错误。

在以太坊上,要抢跑一笔交易可以通过提供比目标交易略高一点的gas价格、激励矿工在构建区块时把自己的交易排在前面来实现。Gas价格高的交易会优先执行。因此,如果有两个想要从同一个交易合约调用中获利的交易被打包进同一个区块内,只有排在前面的交易能成功套利。

动物行为学

DanRobinson和GeorgiosKonstantopoulos在《以太坊是黑暗森林》中提到了一次价值抽取,有1.2万美元落入了“捕食者”的魔爪。这个捕食者非常强大,能够追踪以太坊交易池中的套利交易,并通过抢跑该交易来牟利。

黑暗森林故事听起来如此“恐怖”,乍读之下令人难以置信。我们确实有理由怀疑这种捕食者的存在。像Uniswap这样受到大量机器人监视的平台,如何能从中取出资金?Uniswap是否已经变成了一个“常规”套利者?

报告:5月莱特币每日活跃地址数已翻倍:5月14日消息,根据Santiment发布的报告,数据显示,5月每日活跃莱特币(LTC)地址数已翻倍,增长了40万。

对于这种情况,一种可能的解释是莱特币上引入了NFT的实验标准LTC20。在检查LTC供应分布时可以看到,持有0到0.001 LTC的最小钱包群体随着活动地址的增加而快速增长。这种相关性表明,LTC20确实可能是莱特币网络活跃地址异常背后的驱动力。[2023/5/14 15:02:02]

今年早些时候,我们的深度分析文章证明了事实并非如此。这不是普通的机器人。据我们所知,它成功调用了此前从未被调用过的合约函数,而且还是在原始交易被代理智能合约混淆的情况下成功抽取了资金。

这至少应该引起我们的警觉。能够监视交易池中交易就等于拥有了一个大杀器。因此,令人不安的是,一些服务商开始公开提供“暗池”交易层。

此类排他性的交易服务不会使用Infura之类的服务,甚至不需要运行私有节点,它会直接将交易直接发送给矿工,并承诺不会将交易传播给网络中的其它节点,从而保护该交易不被捕食者发现。

samczun等人也采用了同样的方法,成功从一个有漏洞的合约中抽取了960万美元。不难想象,矿工也会开始运行抢跑交易机器人,同时只为那些支付额外费用的用户提供安全通道。

与以太坊的其它部分不同,这些机器人只在以太坊主网上运行。对于这些机器人来说,除了进行初期实验之外,抢跑测试网交易赚不了钱,没什么意思。此外,它们不需要像其他人那样遵守规则,因为它们的逻辑是隐藏的。

我们不知道在什么情况下,这些抢跑交易捕食者才会罢手。因此,从某种程度上来说,追踪这些捕食者就像是在寻找稀有动物。我们不想找出所有抢跑交易机器人,这里只针对某几类通用的机器人。

Web3初创公司Virtualness将与菲律宾篮协合作推出NFT平台:1月4日消息,Web3初创公司Virtualness宣布将与菲律宾篮协合作在2023上半年推出NFT平台,旨在打造一个围绕数字藏品的球迷社区并为当地篮球迷提供更好的Web3数字体验和奖励。

此前消息,Virtualness去年11月完成超800万美元种子轮融资,Blockchange Ventures领投,Polygon Ventures等参投。[2023/1/4 9:52:35]

为了确保我们捕获的抢跑者是“真正的”通用型抢跑者,我们需要设下一个特殊的陷阱。这个陷阱就是,使用一个秘密字符串的SHA256哈希值创建一个新的合约,并在合约内存入一些资金。只有提供秘密字符串的人才能取出锁定在合约内的资金。一旦有人发送取款交易,这些资金会直接发送给交易发送方。

我们的设想是,发送一个提供正确秘密字符串的“诱饵”交易,看看是否有人会复制这个字符串,并自己发送提供一个包含该字符串的交易来取走合约内的资金。如果有人能在诱饵交易之前取走这笔资金,则表明有人能分析交易池中的诱饵交易,复制其相关内容,并自己发送提供该内容的交易。

有趣的是,它们会向一个之前从未见过的合约提供一个它们之前从未见过的秘密字符串,来取走资金——这就是真正的通用型抢跑者。

通用型抢跑者是如何运作的?

这个实验最重要的一部分是,理解通用型抢跑者是如何运作的。然而,如果有人造了一台赚钱机器,是不可能将它分享到Github上的。因此,我们只能观察捕食者的行为并进行逆向工程。

构建一个通用型抢跑者通常需要两个组件。第一个组件是带有或不带有智能钱包代理的以太坊账户,可以发送修改过的交易。第二个组件是“后端”,也就是整个操作的大脑,通常发生在链下。运营者可以采用某种技术检查交易池中的每个交易,并解析交易,替换交易的参数,判断交易是否有利可图。

数据:以太坊链上NFT交易总额过去7日增长32.55%:金色财经报道,最新数据显示,当前以太坊链上NFT交易额为305.9亿美元,过去7日增长了32.55%。此外,Immutablex、Polygon链上NFT交易额分别为4.16亿美元、3.03亿美元,过去7日均跌超过60%。(CryptoSlam)[2022/12/12 21:37:50]

-抢跑交易机器人的处理流程-

一个理性的机器人不会试图抢跑一个交易费超过潜在收益的交易。交易手续费可能会很高,尤其是在gas价格很高的情况下。因此,我们预计至少需要一定的利润才能引诱机器人上钩。

此外,交易池中有很多交易,要想分析每个交易,时间也至关重要。挖出一个以太坊区块平均需要12秒。如果一个交易支付的gas价格足够高,抢跑者必须赶在下一个区块挖出前迅速分析并替换该交易。

这个过程有一定的概率性。有可能一个交易被广播后,包含该交易的区块就立即被挖出,机器人根本来不及分析该交易并广播抢跑交易。

考虑到种种因素,我们测试了能让机器人上钩的方法。

设下陷阱

我们的合约的初始余额为0.035ETH,当时价值约20美元。只要有人能提供该合约中存储的哈希值的正确原像,就可以获得这笔钱。为了取走这笔资金并引诱捕食者,另一个账户会尝试通过提供正确的原像来获取这笔钱。

第一回合:直接调用合约

为了确保我们的陷阱正常运作,我们首先使用取款者的账户调用诱饵合约。在第一次尝试时,gas价格相对较高,我们成功取回了诱饵合约中的资金。

这可能是因为利润太低,不足以引诱捕食者,或是因为交易很快就被挖出,捕食者来不及反应。显然,这不是理想结果,因为让捕食者上钩才是我们的目标。

Bithumb截至第三季度的今年累计销售额同比下降63.7%:11月14日消息,韩国加密交易所Bithumb今日公布第三季度业绩,该季度销售额为690亿韩元(约合5223万美元)。与上一季度约800亿韩元(约合6056万美元)的销售额相比,下降了13.7%。第三季度营业利润为288亿韩元(2180万美元),净利润为326亿韩元约合(2468万美元)。截至第三季度的今年累计销售额为2737亿韩元(约合2.07亿美元)。与去年同期的7537亿韩元(约合5.71亿美元)相比,下降了63.7%。(Etnews)[2022/11/14 13:02:44]

第二回合:给机器人足够的时间

在这一回合中,我们解决了之前遇到的问题。我们提高了潜在利益,并降低了gas价格,因此交易没有很快就被挖出,让机器人有足够的时间发现它。我们还把合约内的资金增加到了0.04ETH。

这次,我们成功了。这个交易在被挖出之前等待了大约3分钟,最终没能取回诱饵合约中的资金。查看该合约的内部交易后,我们发现这笔资金被其他人取走了。

这个抢跑交易使用了25.000001111Gwei,而且和我们的交易被打包进了同一个区块。

蛛丝马迹

既然我们已经成功捕获了一个机器人,我们可以发现了一些有趣之处。第一,这个抢跑交易显示,这个机器人并没有直接调用合约。它没有复制取款者的交易并通过自己所拥有的账户发送交易,而是将交易发送给代理智能合约,由后者充当智能钱包来执行交易。

现在,我们可以追踪这个机器人之前和之后的交易地址,看看它到底成功抢跑了多少交易以及它是如何运作的。

Block.one旗下Bullish和Far Peak业务合并上市交易终止时间再次延期:7月12日消息,Block.one旗下加密货币交易平台Bullish和特殊目的收购公司Far Peak Acquisition Corporation于6月底宣布,双方已同意将业务合并协议下的外部终止日期延长至2022年12月31日。Bullish向Far Peak支付了250万美元的延期费,协议未作其他更改。

此前在2021年7月,Bullish宣布与Far Peak Acquisition合并,计划以90亿美元的价格在纽约证券交易所上市,合并预计于2021年底完成。但今年3月,Bullish宣布将终止日期从2022年3月8日延长至2022年5月9日。[2022/7/12 2:08:36]

-机器人正在使用它自己的代理合约-

对这个代理合约进行反编译后,我们发现它主要有两个函数:

一个是“取款”函数:就是将合约中的所有资金发送给该合约的运营者。另一个函数负责接收参数:需调用的合约、一个参数列表和一个传递值参数。

有了取款函数,代理合约就可以充当运营者的智能钱包。除了能够执行对外部函数的调用外,代理合约还能确保交易开始时的余额不低于交易结束时的余额,否则就会还原,从而避免因调用未知合约而造成潜在损失。

使用DuneAnalytics,我们发现这个机器人自开始运行以来可谓“战功赫赫”。

如果这个机器人始终使用同一个代理合约并发送地址来进行交易,我们估计这个机器人共赚取17ETH左右。

-该机器人自运行以来抽取的所有收益-

第三回合:抢跑交易机器人有多智能?

既然我们已经确信机器人是存在的,我们想要测试是否可以通过第二个合约来混淆我们的调用,从而成功取回诱饵合约内的资金。第二个合约是一个代理合约,将调用函数取走诱饵合约内的资金。

我们部署了一个ProxyTaker?合约,并调用函数来试图取走我们的资金。由于使用代理合约取走资金的成本较高,我们又将诱饵合约中的资金增加到了0.055ETH。果不其然,我们的交易马上就被另一个机器人抢跑了。

这次抢跑给我们留下了更深刻的印象。这个机器人不仅能够检测到我们的取款交易,居然还能识别出这个交易来自另一个完全不同的合约的内部调用!而且在超短时间内做到了这点。我们的交易仅在几秒内就成功挖出。

这个机器人的身份也相当有趣。这个机器人的合约主要由下图所示的账户控制。该账户在Etherscan上发表了一条评论,使人联想到白帽子黑客尝试从有漏洞的Bancor智能合约中取走用户资金的活动。

-机器人运营者账户的评论-

鉴于这个机器人的行为模式与上一个机器人相同而且两次抢跑事件情况相似,我们有理由怀疑这个机器人在白帽黑客的营救活动中,也对白帽黑客发起了抢跑。

这个机器人比上个机器人复杂得多。它不只聚焦于ETH,还执行其它不同的套利交易。

根据取走资金的账户的余额来判断,这个机器人成功得多。目前,其账户余额持有约300ETH。我们还可以通过所有流入和流出代理合约地址的资金来估算这个机器人的收益,总计大约900ETH。这还只是粗略估算,因为该账户可能进行过与抢跑交易无关的交易。

最终回合:成功取回资金

为了让这场挑战变得更加有趣,我们再一次尝试了混淆调用的做法,这次使用的是只有我们能使用的代理合约OwnedTaker。

这次的设置与第三回合差不多。我们往诱饵合约中充入0.05ETH。这笔资金同样会通过交易返回给我们,而不是留在合约中。

在第一次尝试中,发送至OwnedTaker合约的交易在大约1分钟后才被挖出,我们成功取回了诱饵合约中的资金。

我们又重复实验了一次。这次,我们往诱饵合约中重新充入0.06ETH,这是历次实验中最大的一只诱饵,来排除抢跑机器人因诱饵太小而不上钩的可能性。

我们还故意将gas价格设为较低值。这个交易等待了大约7分钟,但是依然成功取回了诱饵。

使用只能由所有者用来转发交易的Owned代理合约有效防止了机器人解析数据并抢跑交易。

-成功取回资金-

或许是因为只有合约所有者能执行调用,或资金被发送至与调用合约不同的地址这一事实,使得我们成功躲避了抢跑交易机器人。

这些机器人很可能被设置成了以自我保护为首位。毕竟,当它们调用未知合约时,该合约有可能执行任意代码。因此,我们可以合理地假设,在不能保证利润的情况下,它们会选择避免不必要的风险或交易费损失。

那么,我们赢了吗?

这就取决于你怎么看了。我们使用了一个新的合约,而且只有我们知道用来控制合约的秘密字符串。显然,我们捕获的两个抢跑机器人会检测交易池中的所有交易。从它们所获得的利润来看,它们确实精于此道。

为什么我们在最后一次实验中成功抵御了抢跑机器人的攻击?

这很难说。可能是因为机器人不愿意冒险与带有身份认证的合约通信,或是因为它们没有料到资金会被转移到另一个地址。这并不意味着,这个方法可以抵御所有抢跑机器人。更有可能是因为交易池中潜伏着更加复杂的机器人,它们不屑为这点蝇头小利而冒险。

结论

通过这次实验,我们已经证明了通用型抢跑机器人不仅存在,而且智能程度很高。

当然了,我们知道这个实验并不完整,也无法得出权威结论。很多其它类型的机器人有着截然不同的触发机制和运行方式。潜在利润、通信模式和最低复杂性等因素也会影响这些机器人的运行方式。

然而,我们相信我们的工作提供了概念证明,并且进一步揭露了这些通用型抢跑机器人的运行方式。

可怕的是,如果有人调用一个能够产生收益且任何人都能调用的合约,即使这个合约非常复杂,也很有可能会被机器人捷足先登。

因此,了解这些机器人以及它们的运行方式至关重要,这样我们才能构建更加安全的系统。Flashbots等项目试图通过实现MEV提取民主化并使其成为一种公共资源来实现该目标。我们希望这一研究能够有所帮助。

如果你遇到过这类机器人,或是正在研究更复杂的混淆技术,请随时联系我们。你的经历可以帮助我们更好地了解这类机器人,并构建一个更安全的加密货币社区。

感谢?TalBe’ery、OmerShlomovitz、OdedLeiba、DanRobinson等人对本文的审阅。

原文链接:

https://zengo.com/ethology-a-safari-tour-in-ethereums-dark-forest/

作者:?AlexManuskin

翻译&校对:?闵敏?&阿剑

标签:ETH以太坊GASNFTETH Shiba怎么得到以太坊币交易0XGAS币dogenft

中币热门资讯
BER:比特币首破4万美元,续创历史新高

北京时间1月8日凌晨2点左右,比特币价格一度突破了4万美元关口,再度刷新历史纪录,而根据NVT比率等数据分析显示,这轮牛市尚未结束.

1900/1/1 0:00:00
区块链:未来五年数字经济九大技术趋势,区块链是时代所需!

数字经济分为数字化、互联网、数字孪生3个阶段,当前正处于第二个阶段。不同国家、不同地区、不同行业、不同企业数字经济发展的进程不同,当前我国正处于数字经济的中期,技术进步对于社会发展的影响越来越大.

1900/1/1 0:00:00
ARK:冯楚昊:BTC、ETH修正后继续看涨

凌晨比特币在完美触及40000大关后突遇砸盘回撤,盘中短线急速下跌近4000点,最低触及36540一线,虽然尾端反弹一度收复40000关口,但伴随着日内盘出的再次回调.

1900/1/1 0:00:00
LED:1.09 大饼千点回调你把握到了吗

上午建议反弹先看一波空头,给出的操作建议40000-40200附近分批空,目标39000-38800,止损40500,15:00大饼跌破目标第二止盈点位38800,完美把握1200点利润.

1900/1/1 0:00:00
LAMBO:炒币教父 1.9: 5万美元或是比特币的下一站?

消息面:1、兰博基尼授权经销商LamborghiniNewportBeach脸书信息显示,兰博基尼目前已经支持用户在购车时使用加密货币进行支付.

1900/1/1 0:00:00
稳定币:这轮加密货币牛市何时卖出套现?

在熊市中,投资者遇到的最大挑战是怎么克服心理上的恐惧坚持定投;而在牛市中,投资者遇到的最大挑战则是如何既能保证收益最大化、又能避开牛市崩盘,选择一个合适的时机开始卖出.

1900/1/1 0:00:00