盜走360萬枚ETH、改變以太坊歷史,回顧這場史上最大鏈上攻擊始末

2 月 22 日,《Unchained》主理人 Laura Shin 在 Forbes 上發文表示,據其發現的相關證據顯示,以太坊 2016 年 The DAO 事件中黑客的身份疑似為 TenX 聯合創始人兼首席執行官、奧地利程序員 Toby Hoenisch。Laura Shin 表示,根據其對嫌疑人的數據追蹤以及區塊鏈分析公司 Chainalysis 的鏈上分析,她鎖定了 TenX 位於新加坡的節點地址。這起 6 年前的史上最大黑客攻擊事件,又勾起了很多人的會議。

「當時我看到以太坊創始人 Vitalik 突然發了一句話,說 The DAO 被黑客攻擊了,錢正在被黑客拿走,我還以為是玩笑,然後我就懵了。」加密貨幣錢包 ImToken 的聯合創始人 Daniel 說。

360 萬 ETH,當時超過 6000 萬美金,這是這場影響深遠的黑客攻擊事件的被盜金額。如果按照 ETH 的歷史最高價格計算,360 萬 ETH,價值接近 175 億美金。

價值 6000 萬美金的兩行代碼

直到現在,很多人在想起 6 年前加密行業這起黑客攻擊事件時,估計還會心有餘悸。

大家都知道比特幣是一個安全地記錄了所有轉賬記錄的全球賬本,可以實現無障礙的點對點轉賬,以太坊可以看做比特幣的 2.0 版本,可以把它看做是一台「全球計算機」,開發者基於以太坊,可以高效、快速地開發出很多上層應用。

在這樣一個系統之上,很多致力於解決現實痛點的項目開始出現。當時,這種通過代碼自行運作、不依賴個人主觀意志的運作方式被很多人追捧,也是在這樣的背景下,The DAO 誕生了。

它其實是由一家名為德國初創公司 Slock.it 發起的項目,這家公司當時做的是實體資產的上鏈業務,但因為很難在傳統行業中融資,他們就萌生了一個大膽的想法:既然沒人投自己,為什麼不造出一個投資機構?

分佈式自治組織的理念被他們引入,通過利用合約把一群利益相關者(投資人)把錢放到一起,如果有人拿着商業計劃書來尋求融資,所有人投票決定是不是要投資,如果成功了,大家共享收益。

它整個過程,其實是這樣運作的:用戶向它提起希望獲得投資的 proposal,在提案公示后,如果被超過半數以上的用戶投票同意,那麼這個虛擬「VC」就會拿出一筆錢,投給項目。被投項目需要保證將來其業務會通過這個合約連本帶利,持續回饋給這個機構,而「VC」里的每個 LP 都能分到相應的收益。

The DAO 這種完全憑藉智能合約運行的方式得到了社區追捧。項目在 2016 年 4 月底開啟募資,不到一個月時間,就吸引了 11000 名投資者參與,最終成功募集了 1150 萬枚以太坊,這麼多數量的 ETH,佔到了當時以太坊全網 15% 的流通量,總價值超 1.5 億美元。也讓 The DAO 成為了加密史上募集到以太坊數量最多項目。

但危險的種子,在項目融資大獲成功的消息傳出時,就悄悄埋下了。

當時,連團隊都沒想到,項目能融到那麼多錢,自信的他們,把所有的 ETH 都放在一個地址里。這是一件非常可怕的事情,稍微有點常識的人都知道,如果你手上有巨額 Token,最好是把 Token 分散存到多個地址,即便丟失了一部分,也不至於蕩然無存。

木秀於林風必摧之。The DAO 成了別有用心的黑客攻擊的「靶子」。

事實上,早在 2016 年 5 月份,以太坊團隊成員就曾呼籲過,這類 DAO 項目可能存在安全問題,並給出了幾種可能的攻擊方案。6 月 11 日,以太坊另一個項目也發現合約就存在這樣的問題,所幸處置及時,沒造成損失。

不過,即使團隊也收到同樣的安全報告后,他們還是沒引起重視,以為漏洞不會產生威脅。另外,當時已經有數十個提案等着投票,如果合約暫停進行查驗,估計社區也不能接受。

就在所有人自以為萬事大吉的時候,危險降臨了。

黑客非常聰明,他先在 6 月 15 日悄無聲息地寫了一個攻擊合約,安靜地埋伏兩天,直到 6 月 17 日才開始行動。利用合約的漏洞,黑客從主合約中成功轉出了超 360 萬枚 ETH,轉入了一個 child DAO 中,這是一種遞歸式分割的方式,最終將收集到的幣單次轉走了。

出現問題的是下面兩行代碼:代碼沒錯,就是順序反了。

盜走360萬枚ETH、改變以太坊歷史,回顧這場史上最大鏈上攻擊始末

有人分析,如果程序員把兩行代碼的順序上下換個位置,各個功能沒有變化,但卻能避免漏洞產生,沒準 The DAO 就成功了。

當然,這也只是美好的幻想,黑客就是利用了這個漏洞,成功轉移了 3 百多萬枚 ETH,引起了加密社區的軒然大波。

這次攻擊,讓項目丟失了 360 萬枚 ETH,按照當時的價格,總價值超過 6000 萬美金,如果按 ETH 歷史最高價計算,這筆丟失的資產近 175 億美金。這個消息很快影響到二級市場,以太坊價格從 20 美金,跌破 13 美元,下跌幅度超 30%。

不過,狡猾的黑客沒想到,因為 child DAO 的合約還處在創建階段,有 27 天的鎖定期,所以,他在短時間內也轉不走這筆錢。

留給所有人的時間只有短短二十幾天,大家必須在這筆錢被轉走之前作出決策。

攻擊發生后,Vitalik 發了文章,還原了 The DAO 被攻擊細節,同時也給出了解決方案。他提議社區對以太坊區塊鏈進行一次軟分叉,把與之相關的交易認做無效交易,避免攻擊者提走被盜的 ETH。之後,再發起一場硬分叉投票,再將這筆 ETH 找回來。

幣還沒轉走,以太坊社區就放出了這麼一個大招,黑客坐不住了。

6 月 18 日,這位自稱主導了這場攻擊的黑客現身,堂而皇之地發了一封致 The DAO 和以太坊社區的公開信,他表示,自己對社區定義他的行為是「盜竊」非常失望,聲稱他獲得的 ETH 是合法並正當的,「我的律師事務所表示這樣的行為完全符合法律」。

盜走360萬枚ETH、改變以太坊歷史,回顧這場史上最大鏈上攻擊始末

不過有人發現,他留下的簽名是假的,所以這封公開信可能是有人偽造。

6 月 19 日,一位名為「daoattacker」的用戶還在討論該事件的 slack channel 出沒,在一場匿名對話中,他表示會採取措施暫停有組織地對他財產的「盜竊」行為,「很快我們就會制定一個智能合約獎勵那些不支持軟分叉的礦工,共計 100 萬枚以太幣和 100 枚比特幣。」試圖慫恿礦工不支持分叉。有意思的是,他還給討論區留下地址的人發了幾枚 btc。

「黑客」的意思很清楚:不認可以太坊分叉。不過,對於他的辯護,社區大多數人可不會理睬。

很快,以太坊社區發起了一項是否支持硬分叉的投票,近 97% 的 ETH 持有者投出了贊成票,只有少數人不同意分叉,最終硬分叉方案一致通過。

盜走360萬枚ETH、改變以太坊歷史,回顧這場史上最大鏈上攻擊始末

2016 年 7 月 15 日,具體硬分叉方案公布,退幣合約開始建立,由於 7 月 21 日是最終期限,硬分叉執行的最終期限確定,超過 85% 的算力支持硬分叉,以太坊硬分叉成功。

如今,我們在回顧這起加密世界的黑客攻擊事件時,會發現這場攻擊,不僅擊垮了 The DAO,還有另一個更糟糕「副作用」:很多人開始懷疑,去中心化自治組織是不是空想,「Code is Law」到底是不是空中樓閣?以太坊社區確實是出於挽回大多數投資者損失的目前,發起了硬分叉投票,並終止了一場攻擊的發生。

但從某個角度來看,「黑客」說的不無道理:The DAO 本身就是個智能合約,它的仲裁人是自己,任何其他外部節點都不能改變已經制定好的規則。而以太坊官方的做法則推翻了這種規則。

很多時候,引發黑客攻擊的事件可以在開發者編寫代碼的過程中盡量避免,但加密世界的黑客,能利用的可不僅是一行行代碼,還有人為治理中的漏洞。

本文鏈接:https://www.8btc.com/article/6730954

轉載請註明文章出處

(0)
上一篇 2022-02-23 11:50
下一篇 2022-02-23 12:46

相关推荐