2025 年 6 月 26 日,部署在 Ethereum 主網上的 Resupply 穩定幣協議 遭到攻擊,導致約 1,000 萬美元的資產損失。由於相關合約的價格預言機實現存在問題,對於新創建的低流動性市場(Market),攻擊者能夠通過捐贈攻擊(Donation Attack)操縱借貸資產(Resupply 發行的 reUSD)與抵押資產之間的相對價格(即匯率),使其變為 0。這使得攻擊者能夠繞過資產健康檢查,從而借入大量 reUSD 獲利。
在 BlockSec 成為網路中首個公開發布早期預警並提供初步分析的公司(推文 1、推文 2)之後,Resupply 隨後發布了官方公告,但並未詳細說明許多技術細節。本文將提供更詳細的分析。另一方面,攻擊發生後,項目方及其利益相關者之間也出現了激烈的社區爭議。本文將深入探討並討論協議背後複雜的生態關係,供讀者參考。
1. 背景
1.1 關於 Resupply 協議
Resupply 是一個去中心化穩定幣協議,屬於 Curve 生態系統。Resupply 發行的穩定幣稱為 reUSD。這是一種由抵押債務頭寸(CDP)支持的去中心化穩定幣,由外部平台上借貸市場賺取利息的其他穩定幣(包括 crvUSD 和 frxUSD)提供支持。用戶可以提供 crvUSD 和 frxUSD 來借入 reUSD,實現穩定幣資產的再融資。

具體來說,用戶可以在鏈上部署的 Resupply 市場中執行與借貸相關的操作。市場的創建和行為由 DAO 管理。每個市場指定一個 ERC-4626 金庫(Vault)作為抵押資產(collateral),並使用該金庫對應的資產作為底層資產。用戶在市場中存入抵押品(金庫或金庫的資產)以借入 reUSD。
以本次攻擊涉及的市場 0x6e90 和金庫 0x0114 為例,相關資產(代幣)如下:
-
市場
0x6e90- 底層資產(underlying):crvUSD
- 抵押品(collateral):cvcrvUSD(即金庫
0x0114) - 借出資產(borrowed):reUSD
-
金庫
0x0114- 資產(asset):crvUSD(實際存儲在 Curve LlamaLend Controller 中,該 Controller 也是一個市場)
- 抵押品(collateral):wstUSR
- 借出資產(borrowed):crvUSD
- 份額(share):cvcrvUSD(由金庫發行的 ERC-4626 代幣)
換句話說,用戶可以在該市場中抵押一定數量的 cvcrvUSD(或 crvUSD,實踐中會通過金庫轉換為 cvcrvUSD)來借入 reUSD。

1.2 系統如何判斷用戶是否有資格借入資產?
與通用借貸協議類似,Resupply 市場也會對用戶的頭寸進行資產健康檢查(通過修飾符 isSolvent)。

isSolvent 最終調用 _isSolvent 函數,該函數檢查 LTV(貸款價值比),要求借入資產與抵押資產之間的比例不得超過系統設定的最大值(_ltv <= maxLTV)。
可以看出,LTV 的計算依賴於匯率(_exchangeRate),即借入資產相對於抵押資產的價格(兌換比例)。
2. 攻擊分析
2.1 根本原因分析
從合約代碼角度來看,攻擊的關鍵原因是 Resupply 市場的價格預言機實現存在問題。對於新創建的低流動性市場,攻擊者可以通過捐贈攻擊操縱匯率,從而繞過健康檢查並借入大量 reUSD 獲利。
如何計算匯率?

公式如下:

顯然,如果 getPrices 返回的價格大於 1e36,整數除法的向下取整將導致 _exchangeRate = 0。
如何操縱價格?

根據代碼,價格可以按如下方式計算:


由於代碼設定 precision = 1、DEAD_SHARES = 1000 以及 shares = 1e18。

最後,變量代入後,價格計算公式如下:

可以看出,要放大 price 的值,關鍵在於擴大 total_assets 和 totalSupply 之間的差距,使得 total_assets 極大而 totalSupply 保持極小。在 Resupply 協議的實際實現中,公式中的 total_assets 取決於底層資產(crvUSD),而 totalSupply 取決於市場中整體流動性對應的份額(cvcrvUSD)。這正是典型的捐贈攻擊場景。
2.2 攻擊交易分析
根據攻擊交易 [4],可以分析出攻擊者執行了以下核心步驟:
-
通過閃電貸借入 4,000 USDC 並兌換為 3,999 crvUSD。
-
向 Controller
0x8970捐贈 2,000 crvUSD。捐贈前,Controller0x8970持有 0 crvUSD。捐贈後,記錄的 crvUSD 數量變為2000000000000000000000(18 位小數)。 -
向金庫
0x0114存入約 2 crvUSD 並獲得 1 份額(cvcrvUSD)。此時,記錄的 crvUSD 數量為2002000000000000000001(18 位小數)。 -
向市場
0x6e90添加 1 個單位(即金庫0x0114的 1 份額)的抵押品。 -
從市場
0x6e90借入 10,000,000 reUSD。此時,_exchangeRate = 0,導致_ltv = 0,因此_isSolvent檢查通過。

為什麼 _exchangeRate 等於 0?因為通過上述步驟,攻擊者操縱合約達到了以下狀態:

回顧匯率的計算方法:

由於 price > 1e36,_exchangeRate = 0。
- 將借入的 reUSD 兌換獲利。
3. 經驗教訓
Resupply 中被攻擊的市場使用了類似於 Curve 模板合約的價格預言機實現。

然而,Curve 官方文檔早已指出了該實現的適用範圍——遺憾的是,Resupply 在部署時似乎並未考慮到這一適用性警告。
4. 關係與社區爭議
4.1 Curve 生態系統中五大項目的複雜關係網絡
要了解 Resupply 事件的深層影響,我們必須先看看 Curve 生態系統內五個核心協議之間的複雜關係。

Curve Finance 是整個生態系統的核心,提供流動性池、crvUSD 和 LlamaLend 協議,為 Resupply、Prisma、Convex 和 Yearn 的運作提供了基礎。Convex 通過質押和治理優化 Curve 的收益,並為 Prisma 和 Resupply 提供額外的獎勵機制。Prisma 依賴 Curve 的 LP 代幣和 Convex 的收益增強功能,而 Resupply 直接基於 Curve 的 LlamaLend 發行 reUSD,並由 Convex 和 Yearn 共同開發。Yearn 不僅優化了 Curve 池的收益,還通過與 Convex 的合作推動了 Resupply 的發展。
Curve Finance:作為核心平台,Curve 的流動性池(如 crvUSD 池)和 LlamaLend 協議被 Resupply 用於發行 reUSD,被 Prisma 用於質押 LP 代幣,被 Yearn 用於收益優化,並被 Convex 用於治理投票。
Convex:Convex 是 Curve 的收益增強協議。用戶可以質押 Curve LP 代幣以賺取更高的 CRV 獎勵以及 Convex 的 CVX 代幣。Convex 控制著近 50% 的 Curve 治理投票權,並為 Prisma 和 Resupply 提供收益提升機制。
Prisma:Prisma 質押 Curve 的 LP 代幣,用戶通過 Convex 獲得增強獎勵(cvxPRISMA)。Prisma 依賴 Curve 的流動性和 Convex 的收益機制。
Yearn:Yearn 是一個收益聚合器,通過優化 Curve LP 代幣(通過 Convex 增強)的收益,為用戶提供高回報。Yearn 與 Convex 合作開發了 Resupply,並在其收益策略中廣泛使用 Curve 池。
Resupply:由 Convex 和 Yearn 共同開發,允許用戶通過抵押 crvUSD 等穩定幣借入 reUSD,並自動在 Convex 上質押代幣以賺取 CRV 和 CVX 獎勵,形成收益優化循環。
4.2 爭議與影響
然而,當 Resupply 遭到攻擊時,這種複雜的關係網立即成為爭議的焦點。Curve 創始人 Michael Egorov 迅速與 Resupply 保持距離,強調:
“該項目沒有任何來自 Curve 的人參與……請不要一概而論到 Curve。”

這種撇清關係的聲明反映了 DeFi 生態系統內複雜的合作關係在危機時刻是多麼脆弱。
這些相互關聯的項目共同形成了一個高度耦合的生態系統——在這樣的系統中,任何一個環節出現問題都可能引發連鎖反應。因此,Resupply 攻擊事件引發了社區對協議相互依賴性和安全性的廣泛討論,這一點並不令人意外。
5. 進一步思考
5.1 時間線
-
2025 年 5 月 17 日: Resupply 官方地址
0x1f84通過 Curve 的 OneWay Lending Factory 部署了一個新的 LlamaLend 市場。- 該市場使用 crvUSD 作為借貸資產,wstUSR 作為抵押代幣。
- ERC-4626 金庫合約為
0x0114,對應的 Controller 為0x8970。
-
2025 年 5 月 31 日: Resupply 的治理頁面上發布了一項新提案 wstUSR-long LlamaLend 市場。該提案旨在允許用戶通過 LlamaLend 市場鑄造 reUSD。
-
2025 年 6 月 11 日: 該提案發布在鏈上。
-
2025 年 6 月 26 日 00:18:47 (UTC): 提案通過,Resupply 的官方地址
0x0417部署了一個新的 ResupplyPair(即 Resupply crvUSD/wstUSR 市場)0x6e90,綁定了金庫0x0114和 Controller0x8970。- 綁定金庫 0x0114 和 Controller 0x8970。
- 使用金庫的抵押債務頭寸(即以 crvUSD 為底層資產的 cvcrvUSD)作為抵押品。
-
2025 年 6 月 26 日 01:53:59 (UTC): 在市場
0x6e90部署約 1.5 小時後,攻擊者成功執行了該漏洞利用。同時,BlockSec 檢測到了攻擊並嘗試聯繫項目團隊。 -
2025 年 6 月 26 日 02:26 (UTC): 在未能聯繫到團隊並確認沒有進一步損失後,BlockSec 發布了公開警告。
-
2025 年 6 月 26 日 02:53:23 (UTC): 項目團隊暫停了協議。
5.2 如果有 Phalcon,悲劇本可以避免

BlockSec Phalcon Security 代表了 DeFi 安全防護領域的最新突破。通過在內存池(mempool)階段監控交易,Phalcon 能夠在攻擊交易進入內存池的瞬間識別出異常模式。
該系統由智能分析引擎驅動,集成了超過 200 種典型攻擊簽名。在過去六個月中,它保持了低於 0.0001% 的超低誤報率,實現了真正精確的威脅檢測。
該系統利用專有的 Gas 競價策略,確保防禦交易搶先於攻擊交易執行,同時自動觸發協議的緊急暫停功能。
整個響應過程支持多種權限控制模式——包括 EOA 和多簽錢包——為各類協議提供了靈活的安全解決方案。
如果 Resupply 在部署該市場時集成了 Phalcon 系統,此次攻擊本可以完全避免。
在市場 0x6e90 部署後的 1.5 小時內,Phalcon 系統本可以自動檢測到新的市場部署,智能分析其配置參數,並識別出捐贈攻擊的潛在風險。
系統本會立即向項目團隊發送風險警報,建議添加初始流動性保護或調整相關參數。
即使攻擊已經發生,部署 Phalcon 對於 Resupply 和整個 Curve 生態系統仍然具有巨大的價值。
一個透明、實時的監控系統向用戶和社區展示了項目團隊對安全的堅定承諾,而 24/7 持續保護機制確保了此類事件不再發生。公開的安全監控數據增強了項目透明度,是重建社區信任的關鍵手段。對於受影響的項目,主動採用頂級安全解決方案證明了其對用戶資金安全負責的態度,而與 BlockSec 這樣的行業領導者合作也為項目的安全聲譽提供了強有力的背書。
目前,已有多達 500 億美元的資產選擇信賴 Phalcon 的保護。我們已成功阻止了超過 20 次現實中的黑客攻擊,節省了超過 2,000 萬美元的資產損失。在過去六個月中,該系統保持了完美的檢測準確率記錄,並實現了毫秒級的響應速度,始終領先攻擊者一步。Phalcon 目前支持包括 Ethereum、BSC 和 Arbitrum 在內的 20 多個主流區塊鏈網路,為 DeFi 生態系統提供全面、跨鏈的安全保護。
Resupply 1,000 萬美元的損失和無數其他攻擊事件告訴我們,在 DeFi 世界中,安全不是選修課——而是生存的必要條件。
不要等到下一次攻擊發生時才後悔。現在就為您的協議部署最強的安全防護。
BlockSec 專家團隊已準備好為您的項目進行全面的安全評估。
🔗 Phalcon Security APP:
https://blocksec.com/phalcon/security
🔗 預約演示:
https://blocksec.com/book-demo



