撰文:SamSun、AlexWade、ScottBigelow、TinaZhen、少平
2020年9月15日,一個行動小組徹夜合作,從一個脆弱的智能合約中救出960萬美元。下文講述了他們的故事。
SamSunakasamczsun自述
下面我總結一下審閱部分智能合約發生的故事。
當然我沒想到會有什么有趣的事兒。過去的幾周中我看了無數收益耕種克隆項目一模一樣的宣傳模式:把你的代幣放到我們手中,你就可能會成為下一個加密百萬富翁。多數克隆項目只是對經過良好審計的代碼進行分叉,加上些許的調整,而這有時會帶來災難性的結果。
但是在所有的喧囂中,有些代碼我以前從未見過。本文中的主角、這份智能合約持有超過25,000個以太幣Ether,當時價值超過960萬美元,對于那些拼命從邏輯上發現錯誤的人來說,這將是一次收獲滿滿的狩獵。
我迅速看了一下將ETH轉出的代碼,發現了兩個匹配項。其中之一將ETH轉移到了硬編碼的代幣地址,因此可以忽略。第二個是將ETH轉移給發送方的焚毀功能。在跟蹤了此功能的用法之后,我發現任何人可以免費為自己鑄造代幣,然后將其焚毀,換取該智能合約中的所有以太幣都是不費吹灰之力的。我的心跳加速了。突然,問題變得嚴重了。
我那份智能合約是LienFinance協議。不幸的是,他們的團隊是匿名的!唯一的即時訊息支持平臺是Telegram,而我不確定該Telegram頻道的管理員是開發者還僅僅是某些早期支持者。我可萬萬不想將這一漏洞意外透漏給錯誤的人。
在他們的網站又多瀏覽了一段時間,我發現他們曾與ConsenSysDiligence和CertiK合作,接受其代碼審計。這看起來像是很不錯的途徑,ConsenSysDiligence和CertiK在審計期間肯定和開發者進行過互動。我迅速在Telegram上私聊了ConsenSysDiligence的安全工程師JohnMardlin。
CryptoQuant CEO:這次下跌的主要原因是宏觀環境動蕩不安:2月27日消息,CryptoQuant首席執行官Ki Young Ju發推稱:“Coinbase上的BTC在48000美元的位置有大量流出。美國機構投資者仍在購買BTC。我認為這次下跌的主要原因是宏觀環境動蕩不安,例如10年期美國國債,而不是巨鯨的存入、礦工拋售以及缺乏機構需求。”[2021/2/27 17:58:48]
發起聊天等回復是太煎熬的事兒。不幸的是,時間一分分過去,maurelian沒回應。他好像已經睡了。絕望之下,我向ETHSecurityTelegram頻道發了條消息,詢問ConsenSys有沒有哪位沒有睡,請速聯系。
幾分鐘后,我收到了一位過去有過幾次合作的人的回復——AlexWade,ConsenSysDiligence的另一位安全工程師。
AlexWade自述
我的腦袋剛剛沾上枕頭,聽到我室友敲門。「Sam在ETHSecTelegram頻道問有誰認識ConsenSysDiligence的任何人。」
Sam與Alex對話中說今晚可能會是個漫漫長夜,事實確實如此
一聽說是Sam,我就知道這不會是什么好事。我找到了幾個月前建立的與Lien溝通的頻道以及一個電郵地址。他們團隊可是個匿名團隊,有這些總比什么都沒有強。
Compound創始人:希望社區可以利用這次清算事件進一步強化協議:Compound創始人Robert Leshner在推特上表示,此前Coinbase Pro上的DAI價格迅速上升,導致從Compound借入的8520萬美元DAI被清算。225793名用戶中有124人受到影響,沒有抵押不足的賬戶,所有市場都很健康。社區里有很多關于風險、清算和價格的討論。一些人認為該協議執行得完美無缺,積極防范抵押不足的賬戶。另一些人則認為這是一個對借款者不利的體系,由于依賴于一個交易所而設計得很糟糕。Compound Dai達到16億美元,超過全球所有交易所和二級交易場所上的DAI流動性。大規模清算的風險整個夏天都在積聚。希望社區可以利用這次清算事件作為進一步強化協議的催化劑,討論激進或溫和(如MakerDAO)清算系統間的權衡方案,并在必要時增加額外的保障措施。對于那些可能不了解風險、清算機制或市場混亂的尾部風險的用戶我深表同情,并鼓勵社區找到減輕這一事件對其影響的方法。[2020/11/27 22:18:09]
我當時依然半睡半醒。Sam不想在聊天中具體詳談,要求Zoom對話。我一面后悔干嘛要起床,一面評估事態的嚴重性:
五分鐘后,我清楚了解我得喝咖啡提提神開始干活了。
Sam和我一起審閱了代碼。Sam當時已經準備好一個樣品測試,能在其機器上確認這一問題。我們的對話尋找轉移到討論可行性方案:
我們自己動手拯救這筆錢。
聯絡上Lien團隊,讓他們公開身份,敦促用戶撤資。
兩者都不是很讓人滿意的選擇。第一個舉動極為危險,如果您讀過DanRobinson與Paradigm研究合伙人GeorgiosKonstantopoulos所討論的以太坊?DeFi黑暗森林(
聲音 | 火幣七爺:火幣受到AWS這次事故影響 正在協調恢復:TP-LINK安防服務發布公告稱,由于云服務專用光纖線路被外界不當施工挖斷,導致其部分地區相關云服務受到較大影響。火幣全球站CEO七爺針對此事在朋友圈表示:AWS這次事故影響了一大批企業,火幣也在其中,正協調對方盡快恢復[2019/6/2]
鏈聞中文版)一文,我們的交易被搶跑截胡的概率極高。第二種選擇幾乎同樣危險,因為公開聲明會引發外界對該問題的關注,給攻擊者帶來一個機會窗口。我們需要的是第三種方案。
回想起以太坊DeFi黑暗森林一文中的部分內容,Sam聯絡了Amberdata工程副總裁ScottBigelow:「如果你切實陷入了這種困境,我建議你去找Amberdata工程副總裁ScottBigelow,他是一直研究這一課題的安全研究人員,有一套能更好實現瞞天過海目的的原型實施策略。」
ScottBigelow自述
我參加了?以太坊DeFi黑暗森林?一文中的資金拯救行動,最終敗給黑暗森林狙殺者之后,我非常渴望能重賽一場。我花了一些時間監控搶跑截胡行動,設計了一個簡單的系統,似乎能夠騙過一般的搶跑者,至少我個人投入測試的200美元是成功拯救了出來。當Sam深夜聯絡我,誠懇得說「介意占用你大約一個小時左右時間嗎」,我摩拳擦掌準備嘗試了!我已經設想了那個畫面:我如何做幾個技術調整,需要幾個小時,然后成功拯救用戶數千美元的資產,戴著那種成就感,好好地睡上一晚。
當Sam分享給我這個智能合約后,這些計劃瞬間七零八碎:大約25,000個ETH,價值960萬美元。我雖然非常想進行這種重賽,但我那幾行破代碼可不是給960萬美元這種級別資產設計的。
過去幾個月,我一直試圖與礦工們拉上關系,就為了這一目的:進行這類白帽拯救交易。如果有一個時間點需要礦工們幫忙,在其挖礦中寫入一筆交易,以免被搶跑者偷走這筆錢,那就是現在。幸運的是,Tina?Zhen和我過去幾個月聯手尋求建立這種協作關系。當時這一拯救行動的成功希望渺茫,但值得一試:讓Tina參與這一拯救行動,與一個礦池合作挖出一筆私下交易。
聲音 | Ran NeuNer:這次牛市更多是因為基本面:加密貨幣分析師和CNBC主持人Ran NeuNer4分鐘前發推表示:\"這次牛市雖然走的比較謹慎, 但比上一次更振奮人心。上次牛市是建立在炒作和不理性的基礎上的,這次不是炒作, 更多的是因為基本面, 也就是更多區塊鏈被現實應用和正在被應用的區塊鏈的市值正在上升到所有區塊鏈前列。\"[2019/4/23]
TinaZhen自述
我剛剛因為加州代號「山貓」的森林大火從家撤離,當時正在喝著不知名的沙灘飲料,聽著暗淡的太平洋送來的海浪聲,Sam的Telegram私信使我回到了一個更黑暗的現實:「資金有風險,可能被截胡」。過去的幾周中,我一直與Sam和Scott合作開展有關「礦工可提取價值」MEV的研究項目,并且在他們發送請求之前就已經猜到了:一個直接的渠道,可以保護白帽交易在以太坊內存池mempool這一「黑暗森林」中免遭「搶跑者」掠奪。
由于這是一個冒險的舉動,需要將我們的策略暴露給礦工,因此我們決定首先嘗試從匿名的Lien團隊獲得開綠燈批準。當Alex試圖通過ConsenSys內部頻道進行聯系時,我們也嘗試聯系CertiK。
我意識到,Certik在美國的審計人員得過四個小時才會起床,但時間已經刻不容緩。我對CertiK了解不多,只是知道他們曾審計過幾個亞洲項目,于是試圖聯絡CertiK中國團隊。我在「DeFitheWorld」和「YellowHats」兩個微信群里分別留了一條語音留言。我的私聊里30分鐘內接到四條信息,確認了我微信好友中的這個ID是真正的CertiK首席技術官倪兆中ZhaozhongNi。我被拉進由五位CertiK團隊成員組成的一個微信群中,而當時我依然不能透露相關項目或漏洞。為了將暴露風險和潛在責任降至最低,我們只能邀請一位Certik成員加入我們的白帽行動。經過官方郵件最終確認后,CertiK的工程負責人GeorgiosDelkos加入我們的對話。
殺軟件McAfee的創始人:這次加密貨幣下跌都是摩根大通全球市場策略師搞的鬼:了解John McAfee的人都知道,此人不僅是網絡安全領域的傳奇人物——著名殺軟件McAfee的創始人,他還是一位堅定的比特幣信仰者。對于近日比特幣的大跌,McAfee在推特上表示:“放松各位!這次加密貨幣下跌都是摩根大通的Mike Bell(摩根大通全球市場策略師)搞的鬼,他聲稱政府會禁止加密貨幣。好吧…怎么做?摩根大通這家公司就是聲稱比特幣是欺詐的那家公司。他們非常害怕我們正在做的事情。但是他們無法阻止我們。”[2018/1/18]
在Georgios的幫助下,Alex得以迅速聯絡到Lien團隊,并驗證確認其身份。我們讓他們最快速度了解到目前的嚴峻形勢,爭取其同意,直接與一家礦池合作拯救這筆脆弱的資金。在考慮之后,Lien團隊贊同直接拯救資金或發布預警聲明過于危險,同意我們推進這一方案。
現在我們需要找一家基礎設施充分到位、愿意盡快與我們合作的礦池。我們應該找哪家礦池?這家礦池的哪位聯絡人能迅速做出技術決策,幫助我們爭分奪秒執行這一行動?
我們想到了星火礦池SparkPool,我知道了他們一直在打造名為TaichiNetwork的公眾基礎設施,能輕松給予我們所要的支持。我決定私聊星火礦池聯合創始人少平ShaopingZhang,他之前曾幫我調查過mempool安全事件。
半個小時后,少平回復了:「你是說我給交易開白名單?抱歉,我們不能。」好吧,lostintranslation,中文里「白帽」whitehat和「白名單」whitelist看起來有點像。
「現在有1000萬美元危在旦夕。我和Samczsun在線,」我再次試圖在不透露任何具體細節的情況下溝通這一局面。
「你倆在拯救世界?需要礦池幫忙嗎?」有點意外也讓我松了一口氣,少平調侃著表示愿意提供幫助。在經過官方郵件確認后,少平進入我們馬拉松般的Zoom電話會,并由大批星火礦池開發人員給予技術支持。
少平自述
吃過午飯,我正準備小睡一會兒,然后收到了Tina的一條微信:「星火礦池幫忙進行過白帽交易嗎?」我一開始看錯了,當時看成了給交易開白名單。以前沒有人聯系我們進行白帽交易,我們也不熟悉「白帽交易」具體什么情況。Tina更詳細解釋了以后,我意識到他們需要一筆私下交易服務,比如,白帽黑客想發送交易來拯救一個DeFi智能合約,但要防止被別人搶跑截胡,他們需要礦池在不廣播交易的情況下將交易寫入區塊。
我們一直在TaichiNetwork打造私下交易功能,這個功能還在開發中,還沒測試過。我把白帽黑客的請求告訴了我們的開發團隊,并強調了這種緊迫性:我們的私下交易功能需要在幾個小時內順利進入生產階段。我們的開發人員說會盡力完成,然后迅速投入工作。我們在兩個小時內完成了私下交易功能的開發,又花了點時間修復了bug。
我們完成了內部測試后,把hitehat.taichi.network端點發送給ScottBigelow,來完成白帽任務。
ScottBigelow自述
星火礦池加班加點推出了全新的白帽API,Sam和我也完成了腳本編程,生成四個先后銜接的簽名交易。依次處理這些交易本身不會取出25000個ETH,但會把30,000個SBT+LBT代幣轉移給Lien團隊,他們可以將其提交給最終交易,將這些代幣再轉換成ETH。
通過將可以無限鑄造的SBT+LBT代幣轉移給Lien團隊而不是ETH,我們使用了更多交易作為障眼法,迷惑廣義強迫者的攻擊,能夠讓960萬美元的收入一直不會進入我的腰包,片刻也不可以。
我們生成四個簽名交易后,Sam和我花了大量時間、利用各種多方交易模擬工具驗證其連環行動。總數據量不到1.5KB的這四個交易程序,就是拯救960萬美元資產的殺器,保障在星火礦池捕獲這些交易之前不會被任何人先知先覺。
我用一筆無意義的交易測試了星火礦池的白帽端點,其執行過程毫無偏差:該交易不會在mempool中看到,然后突然出現在星火礦池的一個區塊中!就像眼睜睜看著水蒸氣直接變成了冰,中間令人討厭的液化過程完全看不到!
我們調整了交易生成腳本,將交易直接提交給星火礦池的新端點,現在該是行動的時刻了。我猶豫了一會兒,但這絕對是我們能做到的最好的努力。我們可能會損失掉這960萬美元,但不會后悔:我在IntelliJ中點擊了「運行」。我不確定為什么,但我之前預計整個過程會花點時間,就像節點會了解情況的嚴重性,然后在其中消耗一些時間。但實際上它沒有;交易以毫秒為單位發送。
Zoom通話中的每個人都開始瘋狂刷新Etherscan,我懷疑Etherscan團隊是否看到了這3分鐘的流量高峰。由于只有星火礦池有交易,并且星火礦池的哈希率中只有一部分專用于此目的,我們能做的只能冒著冷汗焦急等待。每一個其他礦工挖出的每個區塊都讓我們膽顫心驚。Zoom電話會中會有人伴隨著緊張的笑聲念出挖出區塊的礦工名稱。我們的交易被寫入區塊之前大約會產生15個區塊,我們卻感覺度日如年,像是經歷了幾個小時,但最終,我們完成了完美無缺的交易:依次挖出,沒有回滾。
我們如釋重負地看著越來越多的區塊疊加在我們的區塊之上,對區塊重組的擔憂迅速消失。Lien團隊現在擁有足夠的SBT+LBT代幣來清算整個系統的資金,Sam負責協調救援的最后階段。
SamSun自述
現在我們已經成功地將代幣轉移給了Lien團隊,并沒有發現任何強迫截胡跡象、嘗試或其他跡象,我們很快用私聊告訴了他們這一好消息。他們確認已收到代幣,并立即發送交易,以取出智能合約中鎖定的大部分ETH。幾秒鐘后,Etherscan上出現了這一待處理的交易。
看著進度條轉圈時,我借此機會反思了這一行動。最開始就是看了看智能合約,最終演變成吸引了世界各地專家通力協作的一場「拯救大兵瑞恩」行動。如果沒有Alex和Georgios,我們將無法與Lien開發人員取得聯系。沒有Scott,我們的拯救行動可能早就陷入困境。沒有Tina,我們將無法與CertiK或星火礦池取得聯系。沒有星火礦池,我們注定要重演Dan幾周前文章中寫的悲劇。
然而在周二深夜,我們這個看似完全沒有可能合作的團隊為了同一個目標通力合作,經過不懈努力,最終確保960萬美元物歸原主。我們過去七個小時的努力最終匯成一筆待確認的交易和這個轉圈的進度條。
當進度條最終顯示為綠色對勾,Zoom電話會的緊張氣氛終于煙消云散,大家都長舒了一口氣。
https://etherscan.io/tx/0xe99ccb0b21854b65a2fa283638ab9ef01962b61c3310b596b4597bf22b911a43
我們終于成功殺出黑暗森林。
本文記錄了很多人努力工作的成功。特別感謝拯救危難的AlexWade、ScottBigelow、TinaZhen、GeorgiosDelkos和星火礦池SparkPool,以及審校本文并給予反饋的AlexObadia和DanRobinson。
如果你對這一行動背后的技術細節很感興趣,請?點擊這里?了解更多。如果因為種種原因,你還沒讀過?以太坊DeFi「黑暗森林」?一文,你確實應該讀一下。
本文作者:谷燕西 Uniswap項目方最近發行了它的代幣UNI。鑒于這個代幣的性質,發行方式,發行對象,以及UNI的美國持有用戶不少于2000人,我認為它很有可能成為SEC起訴的對象.
1900/1/1 0:00:00DeFi在2020年的區塊鏈行業內大放異彩,是當之無愧的年度熱點,除了DeFi之外,玩家們也在行業內不斷尋找新的財富密碼,而本文的主角NFT,就是最受期待的種子選手之一.
1900/1/1 0:00:00來源:螞蟻鏈 9月29日,作為2020中國國際區塊鏈技術與應用大會主題論壇之一,由江西省政務服務管理辦公室、江西省信息中心指導.
1900/1/1 0:00:00本文作者:cncoin,原發于“彩云區塊鏈”DeFi的發展引起了市場的熱潮,截止目前大部分幣圈的人都或多或少的參與到DeFi項目或者DeFi挖礦之中,雖然有人認為這個是不可持續的.
1900/1/1 0:00:00剛進入2020年,加密貨幣就迎來了至暗時刻,連比特幣都跌到了3800美元。但恐慌情緒過后,加密貨幣就立即表現出了它的韌性,逆勢反彈。尤其是在被DeFi引爆之后,持續升溫直到現在.
1900/1/1 0:00:00在公歷新年前的兩個月里,波卡將迎來里程碑式進展的集中爆發期。在近期由PolkaWorld、Parity和Web3基金會主辦的波卡中國行活動上,GavinWood通過視頻連線透露了波卡將在近期上線.
1900/1/1 0:00:00