6

黑暗森林之侠客行

 3 years ago
source link: https://www.jinse.com/blockchain/1025319.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

有一篇广为流传的文章《以太坊:黑暗森林》。这篇文章里,介绍了一种“泛用型交易机器人”。这种机器人会监听已经被广播,但还没有上链的交易。一旦发现原交易是有利可图的,就以更高的gas发送相同的交易,抢在原交易之前成交。

(如果你看过火影忍者,这就像复制忍者卡卡西,复制了再不斩的忍术并抢先发动)7lSesOUrSAmDWYslwUkEMqTYj76gdc8XLTd8Ipir.png以太坊世界就像就像一片黑暗森林,遍布着这种机器人,你的一举一动都被暗中观察着。这听起来是一个冰冷且无情的故事,但我们接下来要讲的事情,充满了温暖和侠义。

我们犯了个错误 

北京时间3月9日早上8点。我接到了社区经理的电话,说我们的合约在凌晨5点被攻击了。我立刻给技术团队打电话查看具体情况。随后我们发现,资金池的初始化函数存在漏洞,可以被重复调用。攻击者利用闪电贷将真币借出,随即通过重新对合约初始化将资金池代币对替换为攻击者创建的假币,从而绕过闪电贷资金归还检查。这不是负责审计的Peckshield的问题,而是我们在上线前,为了简化代码逻辑,进行了几处修改,漏掉了一处权限控制。我们犯了个巨大的错误。好在这一问题只影响了我们V2资金池的部分业务,交易模块不受影响。而且只有项目方受影响,普通用户没有损失。我们立刻开始补救。技术团队在15分钟内把所有还存在漏洞的资金都救了回来(大约8w美元)。随后产品上封闭建池入口,运营端发公告,通知用户和项目方事情的进展。与此同时,我们统计了损失,大概380w美元价值的USDT、ETH和项目代币。之后我们立即开始追查。

来自samczsun的好消息 

北京时间3月9日早上8点半。事发后半小时内,我收到了来自白帽samczsun的一条的私信,说有一位不愿透露姓名的神秘人士,我们暂且称之为猎豹先生,“意外地获得”了其中一笔价值189w美金的被盗资金,并委托samczsun告知愿意全额归还给我们。猎豹先生到底是谁,到底如何获得部分被盗资金,是否知晓剩余被盗资金的去向或线索?

 扑朔迷离的事件过程 

我们对攻击事件进行分析后发现,共有两个地址执行了攻击,我们分别称之为河马先生(0x368)羚羊先生(0x355)。河马先生执行了两次攻击。其中20w美金进入了中心化交易所,我们立刻联系交易所冻结了。而另一笔189w美金,正好与猎豹先生要还给我们的金额一致。所以我们推测,河马先生应该就是猎豹先生,他很可能是一个白帽黑客。而羚羊先生,看起来也不是一个坏人,他的攻击是通过”泛用型交易机器人“实现,花费了高达 90,000gWei 的 gasPrice 发送该交易,单笔交易的矿工费高达8ETH。从链上线索来看,很有可能是羚羊先生的机器人自动抢跑了攻击者河马先生的交易,而羚羊先生可能还不知情!
这对于我们来说又是一个好消息,如果能联系到羚羊先生,那么这笔钱也有可能被追回。

 谜团越来越大 

北京时间3月9日晚上21点。在等待了一天后,我们收到了猎豹先生的退款(189w美元),同时收到了一条消息:猎豹先生不承认自己是河马先生。这下谜团变得更大了,在这次攻击中至少存在三方势力!而且,我们不知道猎豹先生如何获得了河马先生的资产。当时,我们唯一有机会能建立联系的是这位熟悉黑暗森林法则的猎豹先生。
虽然猎豹先生希望保持匿名,但我们还是通过samczsun和一些朋友,传达了我们希望与猎豹先生建立直接联系的意图。在等待了数个小时后,我在telegram收到了一条私信。

小小的世界 

北京时间3月10日凌晨1点半我万万没想到,猎豹先生是我认识的老熟人。我在2018年就认识他,那时我还在DDEX做开发工作。我们会一起讨论合约开发方面的问题。自我离开DDEX之后就失去了联系,而他也没有想到我成为了DODO的创始合伙人。猎豹先生告诉我,河马先生是攻击者。他把攻击得来的钱转到了一个合约里,而这个合约写出了漏洞,任何人都可以提币。河马先生在提币时被猎豹先生的机器人抢跑了,从而“意外获得了”这笔资金。那么剩余的被盗资金呢?正在我们商量如何能联系到羚羊先生时,他主动联系了我。

事情的全部 

北京时间3月10日凌晨3点

羚羊先生以匿名的方式向我发了邮件,并表示愿意归还资金(价值约120w美元),我终于松了口气,两个最主要的部分都得到了归还。并且,羚羊先生向我们透露了很多他监听到的事件,让我们终于得以看清事件的全貌。

(这里我们没有列出非常具体的txHash,因为我们的朋友希望保持低调)
  • 真正的攻击者是河马先生。
  • 他执行了两笔攻击,但是都被羚羊先生的机器人抢跑了。
  • 河马先生非常沮丧,花了一点时间写了个合约绕开羚羊先生的交易机器人,这次他成功了。资金落入了河马先生的合约里。
  • 但是河马先生从合约中提币时,又被猎豹先生的交易机器人截胡了!羚羊先生和猎豹先生进行了一场gas大战,最终猎豹先生胜出了。至此,河马先生执行了3次攻击,但一无所获,全部被黑暗森林里的机器人抢跑了!
  • 随后,河马先生执行了两次成功的攻击,但数额都比较小,总共获得了大约20w美元的收益。我们仍在追查这笔钱
最终,在攻击事件发生后的24小时内,我们追回了被盗的380w美元中的310w。jDVqoKy4xYIZexy6XK84KG18bvXyEGOy4EBphVgM.png

 温暖的黑暗森林 

黑暗森林里有很多猎手,但他们并没有像大众想象地那样冰冷无情。有一些猎手是温柔的大型食草动物,他们是黑暗森林里的侠客,从黑客手中截获了赃款并归还给了受害者。时至今日,仍然有很多人认为数字货币世界充满了骗子和黑客,与非法交易、诈骗、维权这些字眼绑定在一起。但事实上,这片森林里有很多不同的角色:DeFi项目方、普通用户、热心的吃瓜群众、武艺超群的套利机器人、实时保持警惕和中立的白帽、出手不一定稳准狠的业余黑客、娴熟的专业黑客.....他们共同形成了一个生态,这个生态有自己的公正和道义,每个参与者都或多或少地扮演了执法官的角色。对于诚实的开发者,这是一个温暖的黑暗森林。ktJGFf8eMX1gP0USGubCqZniPtMDkQif2368do27.png

感谢大家 

一方有难,八方支援。在被攻击后我们得到了很多朋友的帮助,我很庆幸以太坊社区中有如此多的好人,他们在DODO最困难的时候施以援手,我们向以太坊社区的侠客义士致以最崇高的敬意。其中包括:

  • Peckshield、慢雾、币安安全团队

  • samczsun、Tina

  • 1inchTokenlon、Binance、Huobi、Etherscan

还有很多朋友的鼓励与安慰,即使是竞对,在这危急时刻也与我们站在一起。这让我们感觉冰冷的代码下隐藏着许多温热的东西,对诚实的褒奖、对公平的向往、对信誉的珍视。

番外故事 

在羚羊先生归还vETH前,他的机器人掉进了一个专门为他精心设计的蜜罐陷阱。https://etherscan.io/tx/0xb081e1aaf4ea7d6b819fc0ffa8230586854130e6b7313fa23a0cc4509b8c3886这一陷阱以0.05ETH为诱饵,骗取了324个vETH,价值大约为50w美金。我们不知道谁设计了这个陷阱,可能是不甘心的河马先生,也有可能是某个看热闹的观众。最终羚羊先生慷慨地和我们共同承担了这一损失。

另外一方面,有些研究者正在构建黑暗森林中的“传送门”,如MEV研究机构Flashbots(链接:https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752)的MEV-geth基础设施、星火矿池的太极等。这些”传送门“将交易发送者与矿池直连,基于隐私交易设计及对交易排序规则优化,可以避免交易被抢跑。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK