為什麼 The DAO 事件會被視為整個智能合約安全產業的起點,而不只是一起普通的駭客事件?
因為它是第一起讓整個產業意識到「智能合約一旦部署,程式碼裡的任何錯誤都可能無法挽回」這個特性有多危險的公開事件,而且損失規模與影響範圍都大到無法被忽視——它不只造成資金損失,更直接導致了以太坊社群前所未有的治理危機與鏈分裂。在這之前,智能合約安全更像是理論上的討論;這起事件之後,程式碼審計、形式化驗證、標準安全函式庫的發展,才真正被整個產業當成剛性需求來投入資源。
「程式碼即法律」跟支持硬分叉的立場,這場辯論到現在還有意義嗎?
有,而且這場辯論的框架至今仍然被套用在許多新的爭議上——每當有大型駭客事件發生、社群討論是否該凍結資產或協助追回資金時,本質上都是在重新面對同一個問題:區塊鏈的不可竄改性,是不是一個沒有任何例外的絕對原則?The DAO 事件之所以重要,是因為它第一次把這個哲學問題,從抽象討論變成了一個真實存在、影響數萬使用者的具體決策,而且這個決策沒有標準答案,只有社群用投票與行動做出的選擇。理解這段歷史,能幫助讀者更清楚地看懂,為什麼後續類似事件裡,「該不該介入」永遠是一個充滿爭議、沒有簡單答案的問題。
如果重入攻擊的防範方法已經很成熟、業界也都知道了,為什麼 2026 年還會發生 Solv Protocol 這種案例?
這正是這起案例最值得被拿出來討論的地方——問題往往不是「開發者不知道這個漏洞」,而是「防護措施沒有被完整套用到協議的每一個角落」。多數新協議在開發時會整合大量第三方程式碼庫或繼承既有的基礎合約架構,這些外部程式碼是否已經正確實作了重入防護,不是每個團隊都會在整合當下重新逐一檢查;再加上市場競爭壓力下,協議往往需要在時間限制內上線,審計的深度與涵蓋範圍就可能被壓縮。這反映的不是技術本身的難度問題,而是流程與資源分配上的取捨——知道怎麼防範,跟確保每一處都真的做到位,中間仍然存在執行落差。
了解了重入攻擊的完整歷史,一般使用者具體該怎麼調整自己判斷協議是否安全的方式?
最直接的調整是不要把「這個漏洞很古老、業界應該都懂了」當成降低戒心的理由——正如這篇文章展示的,古老不代表已經被根除,只代表它不再是最主要的威脅來源。具體可以查證的事情包括:協議的審計報告是否明確提到針對重入攻擊做過測試(可搜尋 reentrancy、checks-effects-interactions 等關鍵字)、協議是否採用業界標準的防護函式庫而不是自行實作、以及協議的核心合約是全新開發還是繼承自其他專案的程式碼庫(繼承的部分是否也在這次審計範圍內,是特別值得追問的一點)。理解這段十年歷史的價值,不在於背下攻擊原理的技術細節,而在於建立一個習慣:任何「早就該解決」的問題,都值得多問一句「這次真的解決了嗎」。
如果要選一個事件作為整個智能合約安全產業的起點,多數業內人士會選 2016 年的 The DAO 事件。這不只是因為它的規模(當時價值約 6,000 萬美元的以太幣被盜),更因為它留下了一個至今仍在被重複驗證的結論:讓十年前那場事故發生的程式碼邏輯瑕疵,在 2026 年的今天,依然會讓新協議付出真金白銀的代價。這篇文章想做的,是把這條十年的軌跡完整攤開——事故本身怎麼發生、它怎麼改變了以太坊、以及為什麼同一種漏洞至今沒有被徹底根除。
The DAO 是 2016 年上線的一個去中心化創投基金,募得的資金在當時創下區塊鏈眾籌紀錄。它的提領函式裡有一個邏輯瑕疵:合約在把以太幣轉給提領者的同時,會觸發提領者位址上的程式碼執行,但合約要等到轉帳完成「之後」才更新內部帳本、記錄這筆錢已經領過。攻擊者利用的正是這個時間差——用一個惡意合約接收轉帳,在合約還沒來得及記帳的瞬間,立刻回頭再呼叫一次同一個提領函式,因為帳本這時候仍顯示「還沒領過」,於是這筆錢又被送出一次,如此遞迴數十次,直到資金池被抽乾。整個攻擊發生在一筆交易之內,耗時不過幾分鐘。
事故發生後,以太坊社群陷入了一場至今仍被引用討論的路線之爭:要不要透過硬分叉,把被偷走的資金強制「轉回」給原本的持有人。支持分叉的一方認為,區塊鏈的存在意義不能建立在犧牲所有參與者權益的基礎上;反對分叉的一方則認為,「程式碼即法律」(code is law)是區塊鏈不可退讓的核心原則,一旦因為結果不喜歡就動用集體力量改寫歷史,等於否定了不可竄改性本身。最終,多數礦工與開發者選擇執行硬分叉,催生出我們今天所稱的以太坊(ETH);拒絕分叉、堅持原始鏈歷史的少數社群,延續成為以太坊經典(ETC)。這場分裂至今仍是加密貨幣治理史上最常被引用的案例之一——它證明了一個純技術漏洞,最終演變成了一場關於「不可竄改性有沒有例外」的哲學辯論。
如果只看損失佔比,重入攻擊確實有明顯的長期改善趨勢。區塊鏈安全公司 Immunefi 一份涵蓋六年 DeFi 損失數據的研究指出,生態系層級的攻擊(包含閃電貸價格操縱與重入攻擊),占 DeFi 總損失的比例從 2022 年將近 19%,下降到 2025 年不到 1%。這個下降很大程度上反映了業界防禦手段的成熟——「檢查-效果-互動」模式與重入鎖(reentrancy guard)等標準防護,如今已經是主流開發框架與稽核清單裡的基本項目,靜態分析工具也能相對容易地偵測出這類邏輯瑕疵。
但佔比下降不等於漏洞消失。2026 年 1 月,比特幣收益協議 Solv Protocol 旗下一個金庫,仍然因為重入雙重鑄造漏洞遭到攻擊,攻擊者反覆執行 22 次鑄造操作,把 135 顆合法代幣憑空鑄造成約 5.67 億顆偽造代幣,兌換出約 270 萬美元的資產。研究者普遍指出,這類事故至今仍會發生的原因,往往不是開發者不知道這個漏洞模式,而是協議在時間壓力下繼承了未經充分審計的基礎合約,或是在整合第三方程式碼庫時,沒有重新檢視這些標準防護是否被正確應用。
對一般使用者而言,重入攻擊這段十年歷史帶來的實用啟示,不是「這個漏洞很少見了,可以放心」,而是「這個漏洞的整體佔比下降,反映的是攻擊者的注意力轉移,不是這個攻擊手法本身被淘汰」。近年損失規模最大的事故,例如涉及橋接驗證邏輯或治理權限的攻擊,確實已經超過了單純的重入漏洞;但這不代表重入攻擊已經退場,它更像是從「頭號戰場」退居成「仍然存在、仍然會被觸發,但不再是攻擊者的首選」的背景風險——對一個新推出、審計不夠徹底的協議來說,它依然是隨時可能被引爆的舊式陷阱。判斷一個協議是否值得信任時,除了確認審計報告有沒有涵蓋重入測試,也值得留意這份協議底層繼承的程式碼庫本身是否經過充分驗證,因為十年前的教訓證明,問題往往不在新寫的邏輯裡,而藏在被視為理所當然、沒有人重新檢查過的舊程式碼裡。