这是一个恐怖且真实发生的故事
挑战
像任何正常人一样,我花了很多时间潜伏在UniswapDiscord的支持频道里。
周三下午,有人问是否能够收回意外发送到配对合约的Uniswap流动性代币。
我最初的想法是,这些代币将被永远锁定,但那天深夜,我突然意识到,如果这些代币仍在那里,那任何人都可以去恢复它们。
当任何人调用Uniswap核心合约上的burn函数时,该合约会测量自己的流动性代币余额并将其烧掉,将提取的代币提供给调用者指定的地址。这是Uniswapv2预期行为的核心部分。
我找到了这个合约,这些流动性代币仍然在那里,它们的价值大约为12000美元。
这意味着三件事:
有一个滴答作响的时钟,即使没有其他人注意到这笔免费资金,任何人都可以在任何时候移除自己的流动资金,并意外地从合约中获得这些代币;
Opera推出默认启用AI服务的新浏览器Opera One抢先体验版本:4月25日消息,Web3 浏览器 Opera 推出新浏览器 Opera One 抢先体验版本,计划在今年晚些时候取代适用于 Windows、MacOS 和 Linux 的旗舰 Opera 浏览器。Opera One 中的第一个新功能是 Tab Islands,这是一种新的、更直观的与多个 Tab 交互和管理的方式。Opera One 还默认启用 AI 服务,例如包括 AI Prompts,以及在侧边栏中访问 ChatGPT 和 ChatSonic。[2023/4/25 14:25:50]
我可以戴上我的白帽,试着帮失主找回他的代币,这很简单,我只需要调用池子的burn函数,将我自己的地址传递给它。
只是…我知道这不简单。
黑暗森林
以太坊区块链是一个高度敌对的环境,这一点已经不是什么秘密。如果一个智能合约可以被用来牟利,那它最终就会被利用。黑客攻击的频繁发生表明,一些非常聪明的人花了大量时间来检查合约中的漏洞。但这种无情的环境与Mempool相比显得相形见绌。如果说区块链本身就是一个战场,那么mempool就是更糟糕的东西:一片黑暗的森林。
Doodles联创澄清:当前Doodles持有人无法抢先体验Doodles 2:1月25日消息,NFT项目Doodles联合创始人poopie在社交媒体发文表示,当前Doodles持有人并不能抢先体验Doodles 2,只能通过使用Dooplicator或者GenesisBox才可获得抢先体验权。
据NFTGo.io数据显示,一个0x2B4C72开头的匿名地址在过去24小时内通过Blur以126ETH(约合19.56万美元)购买了83枚Dooplicator,当前Dooplicator地板价已升至1.5ETH,过去24小时涨幅达28.31%。[2023/1/25 11:29:54]
《黑暗森林》是我最喜欢的科幻小说,它引入了“黑暗森林”的概念,在这种环境中,探测意味着某些高级捕食者的死亡。在这种环境下,公开识别别人的位置和直接摧毁他们一样好。
在以太坊Mempool中,这些顶级捕食者会采取“套利机器人”的形式。套利机器人监控等待中的交易,并试图利用它们创造盈利机会。对于这些机器人,没有哪个白帽比PhilDaian更了解这些机器人,他和他的同事一起撰写了《FlashBoys2.0》论文,并创造了术语“矿工可提取价值”。
Immutable X宣布在L2上已集成GameStop抢先体验版钱包:金色财经消息,以太坊NFT二层扩容方案Immutable X宣布在L2上已集成GameStop抢先体验版钱包,用户可以使用GameStop钱包与Immutable X进行存款或取款、签名等操作。
据悉,抢先体验版钱包通过链接来访问Immutable X市场或其他合作伙伴,需要用户在连接时确认GameStop钱包是否出现在钱包选择菜单。[2022/7/29 2:45:04]
Phil曾经告诉了我一个他称之为“广义抢跑者”的宇宙恐怖存在。套利机器人通常在Mempool中寻找特定类型的交易,并尝试按照预先确定的算法进行抢先交易。通用的抢跑者通过复制并用自己的地址替换来寻找任何可使抢跑获利的交易。
这就是为什么这次救援行动不会简单的原因。任何人都可以调用这个burn函数,如果我提交了一笔调用burn函数的交易,它就像一个闪烁的“免费货币”标志,直接指向这个有利可图的机会。如果这些怪物真的在mempool中,它们会看到,复制然后变异,并在我的交易被接受之前抢先完成交易。
声音 | 河北省副省长陈刚:雄安新区在人工智能、区块链、IoT等新领域抢先布局:据财联社消息,第五届世界互联网大会分论坛“中外部长高峰论坛:弥合数字鸿沟”8日在乌镇会议中心举行。河北省副省长,雄安新区管委会主任陈刚在论坛上发言表示,雄安新区肩负疏解北京非首都功能的重大使命,面向未来大势,我们瞄准科技发展前沿,布局高端高新产业,密切跟踪新一代信息技术的最新发展。在人工智能、区块链、IoT等新领域抢先布局。[2018/11/9]
请注意,这种环境比以太坊区块链状态本身更残酷。这些免费的资金已经在区块链上停留了大约8个小时,它们尚未被发现,等待着被任何一个调用burn函数的人从池子中提取出流动性代币。但任何试图捡起它的尝试,都会在飞行过程中立即遭到阻击。
营救行动
为了在不通知机器人的情况下提取到资金,我需要混淆这笔交易,这样机器人就无法检测到它对Uniswap对的调用,这将涉及编写和部署定制合约。尽管我是一个专业的DeFi思想领袖,但我以前从未在以太坊上部署过合约。
71名自治区政协委员联名建议:广西应抢先发力,加快引进和培育区块链产业:71名自治区政协委员的提案提出,广西应确定区块链发展战略,尽快出台关于加快区块链产业发展的决定、产业规划、工作方案等系列文件,做好顶层设计和落实计划的实施;加快引进和研发区块链技术,实现“区块链+”与行业的广泛、深度融合,并力争作为样板工程在全国推广;设立区块链产业发展基金,建立基于区块链和可信网络的创投孵化器;共同发起区块链联合产业基金,为区块链产业落户广西创造良好的营商环境。[2018/3/3]
我需要帮助,而当时已经过了午夜。幸运的是,我认识的一些最好的智能合约工程师生活在欧洲时区。我在Paradigm的同事GeorgiosKonstantopoulos同意帮助部署合约并提交交易。我们另一家投资组合公司Yield的首席工程师AlbertoCuestaCa?ada则自愿执行合约。
一些优秀的以太坊安全工程师帮助我们想出了一个混淆方案。除了将调用隐藏为内部交易外,我们还将交易分为两部分:一笔是激活我们合约的set交易,另一笔是在合约被激活的情况下拯救资金的get交易。具体实施如下:
部署一个Getter合约,当所有者调用它时,它只在激活时发出burn调用,否则将恢复;
部署一个Setter合约,当所有者调用它时,它将激活Getter合约;
在同一个区块中提交set交易和get交易;
图:我们自定义智能合约的代码
如果攻击者只尝试执行get交易,它将在没有调用set交易的情况下恢复。我们希望在攻击者按顺序执行这两笔交易之前,我们的交易能够先被区块纳入。
图:我们的救援脚本
令我们惊讶的是,即使我们手动调高了gas费用,set?交易依旧被Infura拒绝了。在几次失败的尝试和重置之后,时间给了我们压力,然后我们开始变得草率了。我们让第二笔交易溜到了之后的一个区块。
而这成了一个致命错误!
我们的get交易确实被纳入了,但是出现了一个UniswapV2:INSUFFICIENT_LIQUIDITY_BURNED错误,这意味着流动性代币没了。结果是,在我们的get交易进入mempool后的几秒钟内,就有人执行了调用,并扫荡走了资金。
怪物吞噬了我们。
教训
教训1:怪物是真实存在的!
尽管从理智上,我们知道这些抢先交易机器人普遍存在,但在你真正看到它们的行动之前,你很可能低估了它们。
我们抱着一丝侥幸,通过授权合约将救援作为内部调用,我们原本以为它能保护我们,但现实并不是。
如果你发现自己也处于这样的情况,我们建议你联系ScottBigelow,他是一位一直在研究该主题的安全研究人员,而他有一个更好的混淆原型实现。
教训2:别草率
即使在时间紧迫的情况下,我们也应该坚持原计划。如果我们花更多的时间在脚本上,调整合约,或者甚至同步我们自己的节点以避免使用Infura,我们可能就能将两笔交易放入同一个区块中。
教训3:不要依赖一般的基础设施
你所做的事情越奇怪,你就越难通过现有的基础设施,比如Infura。在我们的案例中,我们试图提交一笔基于当前区块链状态看起来会失败的交易,Infura对此有合理的保护措施。而使用我们自己的节点可以避免这个问题。
或者,如果你碰巧认识一个大矿工,你可以让他们直接在一个区块中纳入你要提交的交易,完全跳过mempool和怪物。
教训4:未来只会变得更可怕
这只是发生在我们身上的抢先交易事件的一个例子,而类似的事情每天会发生很多次。今天,抢先交易者只是机器人,而明天,则可能会是矿工。
今天,矿工们并没有抓住这些机会,把钱留在了原地,但谁也不能保证,他们将来是否会重新排序并提交自己的交易,为其自身利益服务。更糟糕的是,他们可能会重构其他矿工开采的区块,试图窃取他们没有认领的MEV,从而导致区块链的不稳定。
我们认为这种未来是可以避免的。Optimism有一个雄心勃勃的愿景,即如何将MEV重新定向以造福于生态系统,以作为其layer2扩展性解决方案optimisticrollup的一部分。
如果你正在思考关于MEV的事,或在这一领域建设些什么,请联系我们!
感谢AlbertoCuestaCa?ada、ScottBigelow、PhilDaian、CharlieNoyes以及SamSun对这篇文章提供的帮助。
End
注:原文作者是Paradigm研究合伙人DanRobinson和GeorgiosKonstantopoulos。
标签:区块链DOOPOOOPERAruff币区块链最新消息DooroPool PartyIndex Cooperative
尊敬的虎符用户: 虎符将于2020年8月31日20:30(UTC8)重磅上线CVP/USDT和CVP/ETH交易对。充值将于8月31日11:00(UTC8)开启,提现将于9月1日15:00(UTC8)开启.
1900/1/1 0:00:00用两个字形容这几天以太坊的表现,那就是精彩!从8月25日的370点开始到现在的470多点,也仅仅只用了一周左右的时间涨幅就高达100个点、涨幅超过百分之27,实在让人目瞪口呆.
1900/1/1 0:00:00尊敬的用户: CoinBene满币将上线UMA,支持UMA/USDT交易对,邀您体验。UMA充值时间:2020年9月1日11:00(GMT8)UMA交易时间:2020年9月1日12:00(GMT8)UMA提币时间:2020年9月1日1.
1900/1/1 0:00:00亲爱的库币用户, 我们很高兴的宣布,库币将上线另一个DeFi项目Aave(LEND)并支持交易对:LEND/USDT及LEND/BTC.
1900/1/1 0:00:00CNBC今天的一份报告显示,据称TikTok的公司选择了一个竞标者来接管其在美国,新西兰和澳大利亚的业务-它将很快透露谁。可以说,这取决于沃尔玛,微软或甲骨文。CNBC报道,TikTok的高管们可能最早在9月1日宣布这笔交易.
1900/1/1 0:00:00亲爱的BithumbGlobal用户:BithumbGlobal将在DeFi板上线TRB,BAI,BAND,CRV,YFV,SUSHI?数字资产服务.
1900/1/1 0:00:00