The DAO 攻擊(2016)

The DAO 是 2016 年在以太坊上建立的去中心化創投基金,因智能合約漏洞被駭客盜走 360 萬枚 ETH,最終導致以太坊硬分叉,分裂成 ETH 和 ETC 兩條鏈。


什麼是 The DAO?

DAO 是「Decentralized Autonomous Organization」的縮寫,意思是「去中心化自治組織」。而 The DAO(注意這個「The」)是史上第一個大規模實驗這個概念的項目。

想像一下:如果有一個創投基金,沒有合夥人、沒有經理人,所有投資決策都由代幣持有者投票決定,所有規則都寫在程式碼裡自動執行——這就是 The DAO 想要實現的願景。

2016 年 4 月,The DAO 在以太坊上啟動募資。


瘋狂的眾籌

The DAO 的眾籌創下了當時的紀錄:

指標
數據

募資金額

約 1.5 億美元

募得 ETH

超過 1,200 萬枚

參與人數

約 11,000 人

佔當時 ETH 總量

約 14%

募資時間

28 天

這是當時史上最大的眾籌項目。整個以太坊社群都為之瘋狂,彷彿看到了一個去中心化的美麗新世界。

circle-info

背景知識

當時以太坊才剛誕生一年多,智能合約還是個新鮮玩意。大家都很興奮,但很少人真正理解這些程式碼可能帶來的風險。


災難降臨

2016 年 6 月 17 日,一個駭客發現了 The DAO 智能合約中的漏洞。

什麼漏洞?

這個漏洞叫做「重入攻擊」(Reentrancy Attack)。簡單來說:

  1. 駭客請求從 The DAO 提領資金

  2. 在系統更新餘額之前,駭客的惡意合約又再次呼叫提領功能

  3. 重複這個動作,就能不斷把錢領出來

就像你去銀行領 1000 元,櫃員把錢給你後、還沒來得及在帳本上扣款,你又說「我要再領 1000 元」,櫃員又給你錢......如此循環。

triangle-exclamation

社群的抉擇

錢被偷了,怎麼辦?

這時候,以太坊社群面臨一個艱難的選擇:

選項 A:什麼都不做

「程式碼即法律」(Code is Law)。駭客只是利用了合約的規則,從技術上來說,他沒有「違法」——他只是比別人更會讀程式碼。

選項 B:硬分叉

修改以太坊的歷史紀錄,把被盜的 ETH 還給原本的持有者。但這等於是「竄改帳本」,違背了區塊鏈「不可篡改」的核心精神。

社群激烈辯論。最終,在 Vitalik Buterin 的支持下,大多數人選擇了硬分叉


以太坊的分裂

2016 年 7 月 20 日,以太坊執行硬分叉。

但並不是所有人都同意這個決定。一部分人堅持「程式碼即法律」的理念,拒絕承認硬分叉後的新鏈。於是:

理念
代幣

以太坊(Ethereum)

執行硬分叉,追回被盜資金

ETH

以太坊經典(Ethereum Classic)

堅持原鏈,不改變歷史

ETC

從此,一條鏈變成了兩條。

circle-check

駭客是誰?

多年來,駭客的身份一直是個謎。

2022 年,記者 Laura Shin 在她的書《The Cryptopians》中聲稱,她追蹤到駭客可能是一位名叫 Toby Hoenisch 的奧地利程式設計師。但 Hoenisch 否認了這項指控,且從未有正式的法律追訴。

這些被盜的 ETH 後來怎麼了?由於硬分叉,在 ETH 這條鏈上,資金被追回了。但在 ETC 那條鏈上,駭客理論上仍擁有那些幣(雖然價值遠不如 ETH)。


這件事教會我們什麼?

1. 智能合約需要審計

The DAO 的程式碼在上線前沒有經過嚴格的安全審計。這個教訓催生了整個「智能合約審計」產業。現在,任何認真的 DeFi 項目上線前,都會請專業團隊審計程式碼。

2. 程式碼不等於法律

「Code is Law」聽起來很酷,但當程式碼出錯時,我們真的要讓錯誤永遠無法修正嗎?這是一個至今仍在辯論的哲學問題。

3. 去中心化的代價

這次事件顯示,當危機發生時,「去中心化」的系統可能需要「中心化」的決策。Vitalik 當時的影響力,讓硬分叉得以執行。這是好事還是壞事?見仁見智。


後續影響

The DAO 事件深刻影響了以太坊的發展:

  • EIP(以太坊改進提案)制度 — 更嚴謹的協議升級流程

  • 智能合約審計 — 成為產業標準

  • 形式化驗證 — 用數學方法證明程式碼的正確性

  • 漏洞賞金計畫 — 鼓勵白帽駭客回報問題

circle-info

歷史的韻腳

2020 年開始的 DeFi 熱潮中,重入攻擊仍然不時發生。歷史的教訓,似乎總是需要反覆學習。


延伸閱讀

Last updated