2025年是智能合約漏洞攻擊頻發的一年。那些通過多次審計的協議、經過多年實戰考驗的協議、由具備深厚安全專業知識的團隊構建的協議,全都成為了攻擊的受害者,揭示了一個令人不安的事實:我們在發現傳統漏洞方面越來越擅長,但在協議如何思考經濟學、數學和系統設計方面,我們仍然遺漏了根本性缺陷。
本回顧分析了這一年中技術上最有趣的事件,按照它們對智能合約安全的啟示進行排序。我們將探討經濟不變量違規如何讓攻擊者鑄造無限代幣、AMM數學中的精度錯誤如何將微小的舍入錯誤轉化為數百萬美元的漏洞,以及系統邊界失效如何暴露出任何單一組件審計都無法發現的漏洞。
這些駭客攻擊揭示了協議設計中的根本問題,這些失效超越了簡單的錯誤,觸及了關於DeFi系統應該如何運作的核心假設。
2025年12月
Yearn Finance在2025年12月遭受了兩次相關的漏洞攻擊,兩次攻擊都針對協議升級後仍保留在鏈上的舊版基礎設施。
第一次攻擊:經濟不變量違規(900萬美元)——12月1日
Yearn Finance的舊版yETH穩定幣兌換池在單筆交易中被清空。攻擊者發現了份額計算邏輯中的缺陷,允許鑄造近乎無限數量的yETH代幣。約1,000 ETH(價值約300萬美元)被發送到Tornado Cash。
攻擊者在穩定幣兌換公式中發現了一個邊緣案例,可以操縱份額計算。漏洞存在於會計邏輯本身。當協議計算存款或取款的份額時,數學運算可以被操縱憑空創造份額。
第二次攻擊:舊版合約風險(30萬美元)——12月17日
在第一次攻擊之後,Yearn的V1合約成為攻擊目標。當協議升級時,舊合約並不會消失。它們保留在鏈上,可能持有價值。在Yearn的案例中,V1合約中仍然鎖定著資金,在第一次攻擊引起對Yearn舊版基礎設施的關注後,這些資金成為了目標。
為何重要(審計師和組織視角):
第一次攻擊顯示了審計方法論中的重要缺口。靜態分析工具無法驗證經濟不變量。模糊測試器測試代碼路徑,而非經濟模型。審計流程需要明確驗證會計邏輯在所有操作序列中維持預期的不變量。
第二次攻擊突顯了舊版合約代表持續風險。第一次攻擊可能引起了對Yearn舊版基礎設施的關注,導致了第二次攻擊。協議需要明確的計劃來淘汰舊合約、遷移剩餘價值,並監控意外交互。
緩解措施:實施不變量測試,斷言份額與價值的關係在所有操作中保持不變。使用差異模糊測試將會計計算與參考實現進行比較。對舊版合約制定明確的棄用策略並持續監控。
漏洞類別:經濟不變量違規和舊版合約風險。
深入分析:Yearn Finance DeFi項目遭駭客攻擊損失900萬美元 | PeckShield警報 | Yearn Finance V1漏洞攻擊
2025年11月3日
Balancer穩定池計算中的微小舍入錯誤通過高頻批量交換被放大,導致跨多條鏈7,000萬至1.28億美元的資金流失。攻擊者執行了數百或數千次交換,每次交換都放大了前一次的舍入錯誤,直到這些微小錯誤累積成巨額價值提取。
運作方式:
Balancer的穩定池使用複雜的公式來維持價格穩定性。這些公式涉及多個步驟的舍入。在正常操作中,舍入錯誤很小。但攻擊者找到了一種方法來構建批量交換,始終從舍入方向中獲益,通過重複操作提取價值。
為何重要(協議設計師視角):
AMM數學需要在對抗性條件下保持正確。當處理大量資本並能夠快速執行許多交易時,每個舍入決策都成為潛在的攻擊向量。設計師需要以對抗性思維思考:如果攻擊者執行此操作一千次會發生什麼?
審計遺漏:標準審計流程測試單個交換,而非數百或數千次的序列。舍入錯誤被測量為每次交換少於1 wei,被視為可忽略。沒有對N次重複操作斷言不變量。沒有狀態序列建模的模糊測試器無法發現這一點。
緩解措施:斷言在重複操作中保持的不變量。使用對抗性批量大小進行測試。使用形式驗證來證明舍入錯誤界限在任何操作序列下保持可接受。
漏洞類別:AMM公式中的數學精度錯誤。
深入分析:Balancer DeFi協議遭受大規模漏洞攻擊 | Balancer駭客攻擊多鏈詳解
2025年7月9日
GMX,一個處理數十億交易量的永續交易協議,遭受了4,200萬美元的漏洞攻擊。該漏洞並非來自核心交易邏輯中的錯誤,而是出現在組件之間的邊界:預言機與保證金計算相遇的地方,清算邏輯與橋接基礎設施交互的地方。
運作方式:
漏洞存在於這些組件如何交互,而非任何單個組件中。當預言機更新價格時,保證金要求會改變,清算邏輯會響應。攻擊者可能找到了一種方法來操縱這些交互,也許是通過將預言機更新與保證金計算同步。約960萬美元在漏洞攻擊後立即橋接到Ethereum,表明經過精心策劃。
為何重要(系統架構視角):
經過良好審計的單個組件在整合時仍可能失效。漏洞不存在於任何單個合約中,而存在於組件之間的空間中,存在於它們如何通信和交互中。隨著協議變得更加複雜和可組合,攻擊面在組件邊界處增長。
審計遺漏:傳統審計流程通常重點關注單獨的組件。整合測試存在,但可能不涵蓋攻擊者可以在組件邊界上對操作進行時間控制的對抗性場景。
緩解措施:實施模擬完整系統行為的整合測試。使用可以模擬組件間交互的對抗性模擬框架。測試操作被排序以利用組件交互的時序攻擊。
漏洞類別:系統整合失效。
深入分析:GMX漏洞攻擊報導
2025年5月28日
Cork Protocol損失了約3,761 wstETH(價值約1,200萬美元),原因是其處理流動性質押衍生品的方式存在漏洞。像stETH、wstETH和osETH這樣的流動性質押衍生品引入了隱藏的狀態變化。隨著質押獎勵累積,wstETH與ETH之間的兌換率會隨時間變化。
運作方式:
該漏洞涉及Cork Protocol如何建模wstETH的價值累積與其實際運作方式之間的不匹配。協議可能假設了一個不成立的靜態1:1關係。攻擊者可以在兌換率有利時存入wstETH,等待其累積價值,然後提取超過他們應得的數額。
為何重要(組織視角):
這突顯了組織知識缺口。許多開發團隊以相同方式對待所有ERC-20代幣,但流動性質押衍生品的運作方式不同。這不僅僅是代碼問題,而是知識管理問題。團隊需要流程來識別和記錄整合前代幣特定的行為。
緩解措施:始終使用代幣的兌換率函數(例如,wstETH.getStETHByWstETH())。絕不假設1:1關係。在涉及LSDs的任何計算中考慮價值隨時間的累積。
漏洞類別:代幣機制誤解。
深入分析:Cork Protocol遭駭客攻擊損失1,200萬美元,智能合約暫停
這些駭客攻擊揭示了關於特定漏洞類別更窄但仍具啟發性的經驗。
2025年9月2日
Bunni,一個集中流動性協議,通過其LP會計系統中的精度/舍入錯誤遭受漏洞攻擊。確切損失因來源而異(最初報告為240萬美元,後來分析表明高達830萬美元)。
運作方式:
攻擊者找到了一種方法進行重複存款和取款,利用對其有利的舍入。每次操作提取少量,但經過許多操作,這些微小數額累積成數百萬。
為何重要(測試方法論視角):
大多數測試套件建模單個操作,而非操作序列。測試可能驗證單個存款正確計算份額,但不會捕捉僅在數十次操作後出現的精度錯誤。不建模狀態序列的模糊測試器會遺漏這些問題。
緩解措施:使用已建立的數學庫(例如,PRBMath、ABDKMath)。測試操作序列,而非僅測試單個操作。考慮在內部使用更高精度,即使外部接口使用標準精度。
漏洞類別:LP會計中的精度/舍入錯誤。
深入分析:Bunni V2漏洞攻擊:830萬美元被盜
2025年10月30日
Garden Finance在多條鏈上遭受了超過550萬美元的漏洞攻擊。攻擊者在一條鏈上進行漏洞攻擊,然後使用跨鏈橋將被盜資產轉移到其他鏈,通過不同的DEX進行兌換以掩蓋痕跡。
為何重要(威脅建模視角):
多鏈部署創造了新的攻擊面。威脅模型需要考慮跨鏈攻擊向量。攻擊者可能在一條鏈上利用您的協議,然後使用跨鏈基礎設施逃逸或掩蓋其痕跡。
緩解措施:設計包含跨鏈攻擊向量的威脅模型。了解橋接如何工作及其安全假設。考慮實施跨鏈監控和警報。
漏洞類別:多鏈攻擊模式。
深入分析:Garden Finance安全事件報導
2025年9月8日
Sui上的Nemo Protocol遭受了240萬美元的漏洞攻擊。攻擊者通過Circle將被盜的USDC從Arbitrum橋接到Ethereum。儘管有Move的安全特性,漏洞攻擊仍然發生。
為何重要(工具視角):
Move的類型系統可以防止某些錯誤,但它無法解決整類協議級漏洞。如果您的協議的經濟邏輯有缺陷,如果您的訪問控制薄弱,如果您的預言機整合存在漏洞,Move的類型系統無濟於事。
漏洞類別:非EVM生態系統中的經濟邏輯錯誤。
深入分析:Nemo Protocol漏洞攻擊詳情
2025年的其他幾次駭客攻擊代表了直接的操作失效,而非新穎的技術漏洞:
這些事件遵循眾所周知的模式:管理員密鑰被洩露、過度的代幣批准和訪問控制失效。解決方案是已知的:對管理功能使用多重簽名,實施適當的訪問控制,監控過度批准。
縱觀2025年的駭客攻擊,出現了幾個模式。經濟正確性與代碼安全同樣重要。Yearn的無限鑄造和Balancer的舍入錯誤表明,協議需要對其經濟模型進行形式驗證,而不僅僅是代碼審計。系統邊界隱藏了複雜性。GMX的漏洞攻擊表明,經過良好審計的組件在整合時仍可能失效。整合測試和對抗性模擬至關重要。
精度和舍入仍然危險。Bunni的漏洞攻擊提醒我們,定點運算漏洞持續存在。測試操作序列,而非僅測試單個操作。跨鏈創造了新的攻擊面。Garden Finance和Nemo Protocol表明,多鏈部署需要考慮跨鏈攻擊向量的安全模型。語言安全性不能消除經濟錯誤。Nemo Protocol表明,類型安全語言可以防止某些錯誤,但無法解決經濟邏輯錯誤。舊版合約是持續風險。Yearn的12月漏洞攻擊表明,棄用的合約仍然脆弱,一次漏洞攻擊可以引起對舊版基礎設施的關注。制定明確的棄用策略和持續監控。
已審計、已測試,仍然崩潰:2025年的智能合約駭客攻擊 最初發表於Medium上的Coinmonks,人們通過突出顯示和回應這個故事來繼續討論。


