這種靠推高低流動性代幣價格來借出高價值資產的手法,跟傳統的「閃電貸攻擊」是同一種東西嗎?
兩者確實有重疊,但不完全相同。閃電貸攻擊的核心是「借一大筆錢、在同一筆交易裡操縱價格、再把借的錢還掉」,整個過程在單一區塊內完成,攻擊者不需要自己準備大量本金。這次 Moonwell 事件的攻擊者是透過分批買進 MAMO、在三個多小時的時間跨度內逐步推高價格,屬於現貨市場操縱,不是單一交易內完成的閃電貸模式。
兩者的共通點在於,都是利用「協議相信的價格」跟「真實市場價格」之間的落差來套利,差別在於操縱價格的手法跟時間跨度不同。這也是為什麼這篇文章把它歸類在預言機操縱這個更大的類別底下——閃電貸只是達成價格操縱的其中一種工具,不是唯一途徑,只要目標代幣流動性夠稀薄,就算不靠閃電貸、靠持續買盤同樣可以達到類似效果。
Moonwell 過去十個月已經發生三次跟價格有關的損失事件,為什麼協議方沒有在更早之前就針對這個弱點做出調整?
這個問題目前沒有官方明確的公開解釋,但從三次事件的性質可以看出一個結構性難題:前兩次事件(wrsETH 跟 cbETH)屬於預言機本身的計算錯誤或設定失誤,性質上比較接近工程實作缺陷,修補方式通常是針對那一個特定資料來源做校正;而這次的 MAMO 事件,預言機本身的運作邏輯並沒有錯,它忠實地回報了 MAMO 在公開市場上的實際交易價格——問題出在「允許一個流動性這麼稀薄的代幣進入借貸市場作為抵押品」這個更早的產品決策上。
換句話說,前兩次修的是「預言機讀錯了價格」,這次面對的是「預言機讀對了價格,但這個價格本身可以被輕易操縱」,這是完全不同層級的問題,需要協議重新檢視整個抵押品上架的風險評估標準,而不只是修正單一資料來源的技術錯誤,這也是為什麼即使有過前兩次教訓,這次還是沒能提前防範。
如果一個借貸協議完全不接受任何低流動性代幣作為抵押品,是不是就能完全避免這類攻擊?
這樣做可以大幅降低風險,但無法做到「完全避免」,原因在於「流動性夠不夠」本身是一個會隨時間變動的狀態,不是一次性判斷就能永遠成立的條件。一個代幣在協議把它加入白名單、允許作為抵押品的當下,可能確實擁有足夠的交易深度,但市場熱度消退、交易量萎縮之後,同一個代幣可能在幾個月後就變成流動性稀薄的狀態——如果協議沒有針對已經上架的抵押品做持續性的流動性監控跟動態調整,today安全的抵押品,可能在未來某個時間點變成攻擊者的下一個目標。
更務實的防禦思路,是搭配多重價格來源(而不是只依賴單一市場的即時價格)、設定借貸額度上限與價格變動速度的熔斷機制,並針對流動性走弱的既有抵押品,動態調降其可借貸額度,而不是仰賴一次性的上架審核就一勞永逸。這也是為什麼文章提到,資安機構正在推動類似「抵押品風險評分」的機制,用意就是把這種持續性監控標準化,而不是每個協議各自摸索。
如果我目前資產放在 Moonwell 以外的其他 DeFi 借貸協議,有沒有辦法自己先大致判斷這個協議是不是也存在類似風險?
有一個相對容易上手的檢查方式:找到你使用的協議公開的「可接受抵押品清單」,然後逐一查詢清單上每個代幣目前的市場交易量與流動性深度(大多數代幣可以直接在區塊鏈瀏覽器或主流行情網站查到 24 小時交易量)。如果清單裡有某個代幣的日交易量明顯偏低,或者主要交易對只集中在一兩個規模不大的交易所,這代表該代幣的價格相對容易被人為推動,這類抵押品在協議裡的存在,本身就是一個你可以留意的風險訊號。
進一步可以查詢的是,這個協議的預言機機制是只依賴單一市場的即時價格,還是有結合多個來源、或加上時間加權平均這類抗操縱設計——多數成熟協議的文件或治理論壇會公開說明預言機的技術細節。如果你發現自己存放資產的協議,同時符合「有低流動性代幣作為抵押品」跟「預言機防護機制不明確」這兩個條件,這會是一個值得進一步關注、甚至考慮降低曝險的具體訊號,而不需要等到協議真的出事才後知後覺。
2026 年 8 月 27 日,運作在 Coinbase 旗下 Layer 2 網路 Base 上的借貸協議 Moonwell,在短短三個多小時內損失約 870 萬美元——而且整起事件裡,攻擊者沒有找到任何一行有漏洞的合約程式碼,也沒有繞過任何一道智能合約的存取控制。這起事件之所以值得寫進 預言機操縱 的教材,是因為它精準示範了一件事:對借貸協議而言,「合約程式碼本身沒有漏洞」跟「這個協議是安全的」,完全是兩回事。
根據協議事後報告與 PeckShield、CertiK、Blockaid 等資安公司的追蹤,攻擊發生在協定時間 8 月 27 日 06:09 至 09:30 之間。攻擊者鎖定的是 MAMO——一個流動性極低、交易量稀薄的代幣,任何中等規模的買賣單都足以讓價格出現明顯波動。攻擊者透過連續買進,把 MAMO 的價格從約 0.0106 美元推高到最高約 0.4313 美元,漲幅約四十倍;Moonwell 系統實際接受作為有效價格的最高點則是約 0.4025 美元。攻擊者接著把手上持有的 MAMO 存入 Moonwell 作為抵押品——由於系統認定的價格是被人為推高後的價格,這些 MAMO 因此展現出遠超過其真實市值的借貸能力,攻擊者依此借出總值約 1,103 萬美元的 cbBTC(Coinbase 包裝比特幣)、WETH、USDC 與 wstETH 等資產,價格崩落後,這些借款自然無法透過清算機制追回。
預言機是協議取得代幣即時價格的機制——沒有預言機,鏈上合約無法判斷一筆抵押品目前值多少錢,也就無法計算借貸額度是否合理。這次攻擊的槓桿點正是這裡:只要能夠讓預言機回報一個被扭曲的價格,合約本身完全不需要存在程式漏洞,因為合約只是忠實地根據它「相信」的價格數字去執行運算,而這個數字從一開始就是錯的。這也是為什麼多篇報導特別強調「沒有找到程式碼漏洞」這件事——它不是說協議比較安全,而是說明了風險的來源本來就不在程式碼審計通常聚焦的地方。
根據追蹤報導,Moonwell 過去十個月裡,光是價格相關的問題就已經造成超過 1,400 萬美元的損失——2025 年 11 月一次 wrsETH 預言機故障造成約 370 萬美元壞帳,2026 年 2 月一次 cbETH 價格設定錯誤(把每顆價值約 2,200 美元的資產誤算成約 1.12 美元)又造成約 178 萬美元壞帳。這次 MAMO 事件把累積損失推得更高,也讓一個模式變得清晰:讓這個協議反覆付出代價的,從來不是程式碼本身被攻破,而是價格資料本身出了問題,三次事件的根因都指向同一個類別。
Moonwell 在事發後把 Base 網路上所有核心市場的借款上限調降至 1 wei——這是以太坊系統裡最小的計價單位,等同於直接封鎖任何新增借款,但不影響既有存款的提領;MAMO 與 Moonwell 自家治理代幣 WELL 的供應上限同樣調降至 1 wei。這個處置阻止了損失進一步擴大,但沒有解決已經產生的壞帳——協議隔天公布的數字顯示,MAMO 市場裡仍有約 913 萬美元的未償還借款部位,找不到有償債能力的借款人對應,這筆缺口最終由誰承擔,目前尚未有定論。
如果你的資產正存放在任何一個 DeFi 借貸協議裡,這起事件提出了一個具體、可以直接拿去檢查你正在使用的協議的問題:這個協議的借貸市場,接受哪些代幣作為抵押品?這些代幣的價格資料來源是什麼?如果某個市場允許用流動性稀薄、交易量小的代幣作為抵押品,那麼不管合約程式碼本身審計得多嚴謹,攻擊者永遠有辦法透過操縱這個代幣的市場價格,讓合約「相信」一個錯誤的抵押品價值。這跟合約有沒有漏洞無關,而是一個更根本的問題:這個借貸市場的風險,從協議設計之初,就已經取決於它選擇相信哪一個價格來源。