黑暗森林之俠客行

買賣虛擬貨幣

有一篇廣為流傳的文章《以太坊:黑暗森林》。這篇文章裡,介紹了一種“泛用型交易機器人”。這種機器人會監聽已經被廣播,但還沒有上鍊的交易。一旦發現原交易是有利可圖的,就以更高的gas傳送相同的交易,搶在原交易之前成交。



(如果你看過火影忍者,這就像複製忍者卡卡西,複製了再不斬的忍術並搶先發動)





以太坊世界就像就像一片黑暗森林,遍佈著這種機器人,你的一舉一動都被暗中觀察著。這聽起來是一個冰冷且無情的故事,但我們接下來要講的事情,充滿了溫暖和俠義。




我們犯了個錯誤


北京時間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。






溫暖的黑暗森林


黑暗森林裡有很多獵手,但他們並沒有像大眾想象地那樣冰冷無情。有一些獵手是溫柔的大型食草動物,他們是黑暗森林裡的俠客,從駭客手中截獲了贓款並歸還給了受害者。
時至今日,仍然有很多人認為數字貨幣世界充滿了騙子和駭客,與非法交易、詐騙、維權這些字眼繫結在一起。但事實上,這片森林裡有很多不同的角色:DeFi專案方、普通使用者、熱心的吃瓜群眾、武藝超群的套利機器人、實時保持警惕和中立的白帽、出手不一定穩準狠的業餘駭客、嫻熟的專業駭客.....
他們共同形成了一個生態,這個生態有自己的公正和道義,每個參與者都或多或少地扮演了執法官的角色。對於誠實的開發者,這是一個溫暖的黑暗森林。





感謝大家


一方有難,八方支援。在被攻擊後我們得到了很多朋友的幫助,我很慶幸以太坊社羣中有如此多的好人,他們在DODO最困難的時候施以援手,我們向以太坊社羣的俠客義士致以最崇高的敬意。其中包括:

  • Peckshield慢霧幣安安全團隊

  • samczsunTina

  • 1inchTokenlonBinanceHuobiEtherscan

還有很多朋友的鼓勵與安慰,即使是競對,在這危急時刻也與我們站在一起。這讓我們感覺冰冷的程式碼下隱藏著許多溫熱的東西,對誠實的褒獎、對公平的嚮往、對信譽的珍視。


番外故事


在羚羊先生歸還vETH前,他的機器人掉進了一個專門為他精心設計的蜜罐陷阱。
https://etherscan.io/tx/0xb081e1aaf4ea7d6b819fc0ffa8230586854130e6b7313fa23a0cc4509b8c3886
這一陷
阱以0.05ETH為誘餌,騙取了324個vETH,價值大約為50w美金。
我們不知道誰設計了這個陷阱,可能是不甘心的河馬先生,也有可能是某個看熱鬧的觀眾。


最終羚羊先生慷慨地和我們共同承擔了這一損失。


另外一方面,有些研究者正在構建黑暗森林中的“傳送門”,如MEV研究機構Flashbots(連結:https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752)的MEV-geth基礎設施、星火礦池的太極等。這些”傳送門“將交易傳送者與礦池直連,基於隱私交易設計及對交易排序規則最佳化,可以避免交易被搶跑。




作者:雷達熊,來源:DODOZoo

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读