臭名昭著的2016年DAO駭客事件仍然是加密貨幣歷史上最重大的事件之一。它重塑了以太坊的發展,並導致了以太坊經典的誕生。這一災難也展示了去中心化區塊鏈系統的風險和韌性。本指南全面介紹了DAO駭客事件的經過、隨後硬分叉和軟分叉的影響,以及它對以太坊生態系統的持久影響。
關鍵要點➤ 2016年DAO駭客事件暴露了以太坊智慧合約程式碼中的關鍵漏洞。➤ 以太坊的硬分叉創造了以太坊(ETH)和以太坊經典(ETC),使社群在不可變性問題上產生分歧。➤ 重入攻擊突出了關鍵的智慧合約缺陷,促使區塊鏈專案優先考慮安全性和程式碼審計。➤ DAO駭客事件使加密資金從DAO轉向ICO,從而減少了監管,增加了風險。
在本指南中:- 解釋DAO駭客事件
- 安全措施和社群的初步反應
- 以太坊硬分叉:分裂區塊鏈
- 以太坊與以太坊經典一瞥
- DAO駭客事件如何改變區塊鏈安全
- 常見問題
解釋DAO駭客事件
➤ DAO的簡單介紹:
DAO是一個建立在以太坊區塊鏈上的去中心化自治組織。它旨在透過讓利益相關者直接投票決定資金提案來實現投資管理的去中心化。
DAO的結構完全依賴於智慧合約來管理決策和交易,沒有傳統的中介。這種方法代表了去中心化治理的一個突破性概念。
簡單地說,DAO希望建立一個民主制度,透過促進去中心化決策來降低成本和減少人為錯誤。它在推出後不久就吸引了大量投資,累計超過1.5億美元的ETH。
注意:當我們提到"DAO"(大寫T)時,我們指的是2016年遭到駭客攻擊的DAO專案,而不是去中心化自治組織。
然而,DAO的快速採用也引起了關注,開發者和安全分析師對其程式碼庫中的潛在漏洞提出了擔憂。
畢竟,考慮到DAO內鎖定的價值,即使是微小的缺陷也可能產生重大後果。任何處理大量資產的智慧合約都是潛在攻擊的主要目標。
➤ 事實上,另一個去中心化系統MakerDAO最近也出現了一個嚴重的漏洞,幸運的是它還在測試階段,沒有被利用。而DAO則已經完全投入運營,這使它成為一個容易被攻擊的目標。
駭客發動攻擊:事件時間線
DAO駭客事件始於2016年6月17日,一名匿名駭客利用DAO智慧合約中的一個漏洞進行了攻擊。他們最終成功地轉移了價值約6000萬美元的ETH(按當時的估值)。
以太坊社群眼睜睜地看著資金從DAO轉移到駭客控制的賬戶。可以想象,這一事件在整個網路範圍內引發了恐慌。
到當天結束時,大約三分之一的DAO資產已轉移到駭客的賬戶。到2016年6月18日結束時,ETH價格從20美元多跌到13美元以下。
事實證明,這次入侵利用了DAO結構中的漏洞,特別是其智慧合約中的一個重入漏洞。
以太坊開發者迅速採取行動,提出了幾種解決方案來阻止駭客並收回被盜資金。他們多次嘗試分割DAO以防止進一步損失,但實施所需的投票無法及時得到保證。
一個關鍵的設計缺陷使情況惡化:DAO意外大量的ETH池資金集中在一個地址上,這使其成為一個有吸引力且容易被攻擊的目標。
攻擊者可能在聽說一項可能逆轉盜竊的硬分叉解決方案後自願暫停了行動。
然而,DAO結構中的漏洞——特別是重入漏洞——仍然是一個重大風險。這突出了徹底稽核和測試智慧合約的重要性。
隨後發生的事件導致以太坊區塊鏈結構發生了根本性變化。
➤ 這次攻擊不僅突出了智慧合約審計的重要性,還導致了以太坊和以太坊經典的分裂,這仍然是加密貨幣歷史上的一個關鍵時刻。
理解重入攻擊:駭客事件的經過
DAO駭客事件依賴於一種非常特定的漏洞,即重入攻擊。這種漏洞允許駭客在合約餘額更新之前反覆提取資金。
以下是重入攻擊的工作原理以及它在DAO入侵中的關鍵作用:
1. 智慧合約機制:DAO中的每一次提款交易都由一個函式處理,該函式先將資金髮送到使用者的錢包,然後在賬本中更新使用者的餘額。
例如:Alice在DAO中有2 ETH。當她提取1 ETH時,合約會將1 ETH傳送到她的錢包,然後將她的餘額更新為1 ETH。這種每次提款後的餘額更新可以防止她超出剩餘的1 ETH進行任何進一步提款。
2. 漏洞:重入漏洞允許外部合約在狀態更新之前反覆與主合約進行互動。這可能導致同一功能(在本例中為提款功能)被意外多次執行。
例如:一個漏洞使得惡意合約能夠在餘額更新之前與主DAO合約進行互動。儘管Alice的餘額顯示為2 ETH,但這個漏洞允許惡意合約以遞迴迴圈的方式觸發多次1 ETH的提款,直到餘額被修正。
3. 利用過程:駭客使用一個惡意合約以遞迴迴圈的方式呼叫DAO的提款功能。每次提款時,合約都會在餘額更新之前重新進入提款功能,不斷抽取資金。
例如:駭客使用一個惡意合約以迴圈的方式呼叫DAO的提款功能。每次傳送1 ETH時,合約都會在更新餘額之前重新進入提款功能。這使得駭客能夠反覆提取1 ETH,即使Alice的賬戶中只有2 ETH。
4. 缺乏狀態更新:由於DAO的餘額沒有隨每次提款而更新,駭客的合約就能夠反覆抽取資金。因此,他們設法清空了DAO的持有量。
例如:由於合約沒有更新每次呼叫的餘額,駭客的合約就能夠一次次提取1 ETH。這個漏洞讓駭客能夠提取遠遠超出Alice原有2 ETH的資金。
簡單地說,重入攻擊利用了智慧合約在每次提款後更新餘額的假設。
這個疏忽成為一個代價高昂的缺陷,突出了在處理大量資金的去中心化自治組織中,精心編碼實踐的重要性。
安全措施和社群的初步反應
隨著攻擊訊息的傳播,以太坊開發者迅速採取行動。他們設法暫時阻止了駭客訪問被盜資金的能力。
原來被盜的以太坊被轉移到一個"子DAO"中,這是原DAO的一個副本。由於DAO中編碼的28天持有期,駭客無法立即訪問這些資金。這給以太坊社群一個時間視窗來決定如何應對。
Buterin提出軟分叉
在6月17日發生攻擊的當天,以太坊聯合創始人Vitalik Buterin確認DAO正遭受攻擊。他提出了一個解決方案,即透過軟體分叉(不需要回滾任何交易或區塊)來阻止進一步的ETH損失。
提議的分叉將使任何試圖從與DAO相關的地址提取ETH的交易無效。這樣,被盜的資金將永遠被凍結。
Buterin解釋說,這個解決方案不會重寫過去的交易,而是在以太坊的程式碼中新增一個"開關"。他補充說,這樣做將阻止任何從DAO及相關地址轉移ETH的行為。
這個"一次性修復"旨在永久鎖定受損的以太。Buterin進一步建議:
"礦工和礦池應該恢復正常允許交易,等待軟分叉程式碼,並準備下載和執行它,如果他們支援這種方法來維護以太坊生態系統。DAO代幣持有者和以太坊使用者應該保持冷靜,而交易所可以安全地恢復ETH交易。"
— Vitalik Buterin,以太坊聯合創始人,釋出於部落格文章
簡而言之,這將在以太坊的程式碼中新增一個黑名單,以防止攻擊者訪問被盜的資金。Buterin的提議旨在保護DAO投資者,但需要大多數以太坊節點採用。這引發了關於干預和區塊鏈原則的激烈辯論。
另一種選擇:硬分叉
另一個更積極的提議敦促礦工完全逆轉駭客攻擊,使所有被盜的ETH返回到DAO。這樣,代幣持有者就能自動贖回他們的資金,從而有效地結束DAO。
這種方法將從根本上改變區塊鏈執行交易的方式,這相當於挑戰不可變性的原則。問題是:以太坊是否應該只打破這一規則一次來恢復專案的完整性?
➤ 總的來說,社群討論了三種應對漏洞的方案:
- 軟分叉:一種臨時解決方案,透過將與攻擊相關的特定地址列入黑名單來凍結駭客的資金。這樣做將阻止資金的進一步轉移。
- 硬分叉:一種永久性解決方案,將有效"逆轉"駭客攻擊,透過改變以太坊賬本來恢復原DAO的資金。
- 不採取行動:一些社群成員反對任何干預,認為即使面臨安全漏洞,區塊鏈也應該保持不可變。
駭客的回應:一個有爭議的宣告
在一個意外的事態發展中,一封據稱來自DAO駭客的公開信於2016年6月18日出現在網上。該信件向DAO和以太坊社群表示,從駭客攻擊中獲得的ETH是"合法的獎勵"。
駭客更進一步威脅要對任何試圖逆轉他的收益的人採取法律行動。然而,幾個人注意到這封信的加密簽名無效,這使其真實性受到質疑。
儘管如此,這封信提出了一些有趣的觀

這一決定實際上"倒帶"了以太坊的歷史到駭客攻擊發生之前的時間點,並刪除了攻擊者的交易記錄。硬分叉的結果引起了爭議,因為它與區塊鏈的核心原則"不可篡改性"相矛盾。
結果,以太坊被分裂成兩條鏈:
- 以太坊(ETH):採用硬分叉以優先考慮安全性和使用者信任的鏈。
- 以太坊經典(ETC):拒絕硬分叉以維護不可篡改性原則的鏈。它保留了原始歷史,包括The DAO駭客攻擊。
最終,硬分叉分裂了以太坊社群,兩條鏈繼續獨立執行。這一里程碑事件自此成為了關於去中心化治理和區塊鏈安全性挑戰的一個鮮明警示。
以太坊與以太坊經典一覽
| 特徵 | 以太坊(ETH) | 以太坊經典(ETC) |
|---|---|---|
| 起源 | 在2016年The DAO駭客攻擊及隨後的硬分叉後建立 | 原始以太坊區塊鏈,在The DAO駭客攻擊後保持不變 |
| 核心理念 | 透過允許進行更改來糾正問題,優先考慮安全性和使用者信心 | 堅持不可篡改性和保留區塊鏈的遺產 |
| 共識機制 | 權益證明(PoS) | 工作量證明(PoW) |
| 開發社群 | 規模大且活躍,擁有大量資金和定期升級 | 相對較小的社群,資源和更新較少 |
| 主要用例 | 去中心化應用(DApps)、DeFi、NFTs、智慧合約 | 智慧合約、DApps |
| 安全重點 | 持續升級和注重安全的改進(如PoS過渡) | 強調程式碼不可篡改性,升級較少 |
| 交易費用 | 在以太坊過渡到PoS後降低 | 由於PoW處理,通常較高 |
| 供應上限 | 沒有固定上限;ETH供應透過協議升級進行管理 | 固定上限為2.1億ETC |
| 受歡迎程度和採用情況 | 高,被開發者、企業和使用者廣泛採用 | 適中,得到純粹主義者和原始區塊鏈支持者的支援 |
| 未來路線圖 | 持續升級(如分片、可擴充套件性改進) | 保守升級,專注於安全性和穩定性 |
經驗教訓
The DAO駭客攻擊標誌著區塊鏈安全的一個轉折點。它突顯了需要全面的智慧合約審計和防止重入攻擊的重要性。
以太坊對這次攻擊的響應包括安全升級和防止類似漏洞的指南。以下是一些關鍵的安全經驗教訓:
- 智慧合約審計:The DAO駭客攻擊突顯了在部署智慧合約之前進行嚴格的程式碼審查和審計過程的重要性。
- 防止重入攻擊:開發者學會實施防範重入攻擊的保護措施,使用檢查-效果-互動模式,確保在外部呼叫之前更新狀態。
- 多重簽名合約:這次駭客攻擊突顯了多重簽名授權的重要性,以增加高價值交易的安全性。
- 社群響應機制:這次駭客攻擊表明,在未來危機事件中需要有社群範圍的共識機制,因為關於不可篡改性和干預的辯論繼續塑造著區塊鏈治理。
簡單地說,這次漏洞促使開發者採用更嚴格的測試實踐。它給以太坊生態系統和更廣泛的區塊鏈行業留下了持久的影響。
The DAO駭客攻擊如何改變了區塊鏈安全
The DAO駭客攻擊最終成為了整個區塊鏈領域的一個重要教訓。它推動了整個加密貨幣行業優先考慮安全性。回顧過去,這一事件使加密貨幣融資模式從集體DAO轉向ICO,從而減少了監管和盡職調查。
儘管ICO使資本更容易獲得,但也導致了欺詐的增加,投資者缺乏保護。儘管出現了這些變化,但推動早期以太坊專案的遠見卓識精神仍然相關,The DAO的遺產仍然激勵人們追求安全、去中心化的應用程式。
常見問題
DAO中的"自治"是什麼意思?
"自治"在DAO中意味著其操作和治理由自執行程式碼管理,沒有人工監督。這使DAO能夠獨立於傳統的管理結構運作。決策根據編碼在智慧合約中的規則自動執行。
DAC和DAO有什麼區別?
DAC(去中心化自治公司)通常作為一個以營利為目的的實體運作。它們通常在結構上類似於公司。相比之下,DAO(去中心化自治組織)可以追求超越利潤的各種目標,並擁有更廣泛的涉及社群輸入的治理模式。而DAC強調利潤分配,DAO則強調去中心化治理。
The DAO駭客攻擊中損失了多少?
在2016年6月的駭客攻擊中,約價值6000萬美元的ETH被從The DAO中轉走(基於當時的估值)。攻擊者利用智慧合約中的重入漏洞執行了這次入侵。這一事件最終導致以太坊區塊鏈內部發生了重大結構性變化。
第一個DAO怎麼了?
第一個DAO在2016年的駭客攻擊後崩潰,這暴露了其程式碼中的缺陷。以太坊社群選擇進行硬分叉來解決這一漏洞。這一分裂導致了兩個獨立的區塊鏈:以太坊(ETH)和以太坊經典(ETC)。
The DAO駭客攻擊能否被預防?
對The DAO的智慧合約程式碼進行嚴格的測試和審計可能會事先發現這個漏洞。被攻擊者利用的重入漏洞是合約設計中的一個已知風險。因此,很可能全面的審計能夠降低如此大規模利用的可能性。
以太坊和以太坊經典有什麼區別?
以太坊(ETH)透過硬分叉逆轉了The DAO駭客攻擊,並恢復了所有被盜資金。以太坊經典(ETC)保留了原始區塊鏈,優先考慮不可篡改性並保留未經改動的交易歷史。這些不同的理念繼續定義著每個網路在治理和更新方面的方法。
The DAO駭客攻擊有什麼後果?
The DAO駭客攻擊導致了以太坊的硬分叉,這反過來又分裂了社群,並導致了以太坊經典的建立。它還加強了對區塊鏈安全性的關注,特別是針對智慧合約。這一事件重塑了整個區塊鏈行業的安全標準發展。



