KeyFrame內部研究專用

Securing DeFi protocols | DSS Monthly [FEBRUARY] with Merlin from Morpho and Mounir from Paraswap

DeFi Security Summit - DSS·2月24日週六·80 min英文

三句話摘要

DeFi協議開發的安全框架與實踐——從Morpho與Paraswap的4年經驗來看,如何通過極簡設計、系統化測試與多層審計建立生產級別的智能合約。 在DeFi產品開發中,安全是從設計哲學開始、貫穿整個生命周期的系統工程,而非事後審計;極簡主義、跨團隊文化、多層次測試與分階段審計的結合,比任何單一工具或措施更能提升協議的韌性與生產級別的可靠性。 1. 極簡主義為安全基石

重點整理

重點
  • 1

    1. 極簡主義為安全基石

  • 2

    構建協議時,每增加一項功能就增加一份攻擊面。Morpho Blue只有600-700行代碼相比Aave和Compound的數千行,這不是削弱而是精準設計。講者強調不該盲目堆砌功能,除非使用者流失才必須保留。

  • 3

    2. 測試須與開發並行,而非事後補救

  • 4

    邊寫邊測能更早發現設計缺陷。集成測試應在主網fork上進行(而非mock環境),因為實世界的邊界情況(如USDT沒有boolean返回值)必須真實驗證。變異測試(mutation testing)如Gambit、Vertical RS等工具可發現測試覆蓋的盲點。

  • 5

    3. 開放文化與多角度檢視

  • 6

    Morpho Lab採用跨團隊分工:protocol team開發,integration team獨立審查;所有部署代碼須全體工程師都理解,避免單點故障。威脅建模(threat modeling)識別所有stakeholder與其影響面,讓團隊在設計早期就辯論與修正。

  • 7

    4. 分層安全架構如同瑞士起司模型

  • 8

    開發前的設計審查 → 內部peer review → 外部security audit(Open Zeppelin、Spearbit等) → 代碼競賽(Code4rena、Sherlock)→ 部署前漏洞賞金 → 部署後監控與invariant檢查。每層獨立可能有漏洞,但疊加後幾乎不可被突破。

實用技巧與重點

乾貨
  • Morpho Blue的安全實踐數據與工具
  • 代碼行數:600-700行(vs Aave 7000行、Compound 5000行)
  • 部署階段:協議設計→build & test→審計前→部署後監控(4個階段)
  • Security audit費用與時間:順序進行審計(Open Zeppelin+Spearbit),預留足夠時間讓安全研究者深入檢視
  • 代碼競賽:Code4rena 200k漏洞賞金池
  • 部署前漏洞賞金計畫
  • 測試工具:Foundry forge coverage、Gambit/Vertical RS(變異測試)
  • 內部文化:protocol team vs integration team分工,所有工程師需理解所有已部署代碼
  • 內部安全活動:hack school(每周或雙周挑選一個歷史漏洞進行深度分析)
  • 部署前:整個團隊參與的bootcamp,嘗試破解代碼
  • Paraswap的架構設計教訓
  • Augustus(trading contract)+ Token Transfer Proxy(approval contract)的雙合約設計原因:防止單一合約同時擁有allowance與任意calldata執行權
  • 歷史安全事件:2023年某聚合器day-1被hacked損失數百萬;2019年發現競爭對手可被利用清空用戶錢包
  • 代碼複雜度:數百個交易所、數萬個流動性池,無法在鏈上計算最優價格
  • DexLib架構:in-memory狀態表示,價格計算時間毫秒級或亞毫秒級
  • 防護檢查點:hardcode合約地址於API、UI各層,地址須匹配否則UI crashes
  • Price impact檢驗:使用USD oracle獨立複核,而非盲信API的USD amount欄位
  • V6設計變更:移除雙合約設計,採用sequential audit
  • Portugu意圖協議設計
  • 四個階段目標:Phase 1相似於現有產品→Phase N完全去中心化
  • Decentralized Layer (DL)目標:取代centralized intent API,由validator網絡選擇solver
  • Relayer層:可選而非強制,用戶可切換relayer(類似RPC provider選擇)
  • 防護機制(工作中):staking、slashing防止spam、game theory設計

結論

結論

在DeFi產品開發中,安全是從設計哲學開始、貫穿整個生命周期的系統工程,而非事後審計;極簡主義、跨團隊文化、多層次測試與分階段審計的結合,比任何單一工具或措施更能提升協議的韌性與生產級別的可靠性。

完整解析

詳細

Morpho Labs的Merlin與Paraswap的Monir都經歷過漫長的DeFi產品迭代,兩人都得出一個關鍵結論:安全不是事後補丁,而是從設計哲學開始的系統性工程。

Merlin首先解釋為何Morpho決定打造完全獨立的Blue協議。他們早期的Morpho Optimizers構建在Aave與Compound之上,擁有近20億美元的存款,但卻發現這種依賴帶來巨大的操作負擔。當Aave或Compound升級、修復漏洞或因rounding問題需要pause時,Morpho也必須跟著操作。更本質的問題是,這些基礎協議代碼庫達數千行,大型代碼庫本質上容易滋生漏洞,進而影響所有構建在其上的協議。這種架構的缺陷在於:用戶以為自己在使用一個最小化的借貸原始層,實際上卻暴露於Aave/Compound的所有特性、風險管理參數與operator的升級決定。這啟蒙了Morpho團隊一個極簡主義的新哲學——協議應該極度精簡,做好一件事而不是堆砌功能,因為每項功能都是潛在的攻擊面。

在具體實踐上,Morpho採用四階段安全框架。設計階段時,團隊不是快速編碼而是進行深度的威脅建模與開放式辯論,識別borrowers、lenders、Risk Managers、oracles等所有stakeholder如何影響協議,進而提前考慮防禦措施。他們建立了一種公司文化,鼓勵任何工程師提出批評與設計質疑,寧可在早期花更多時間辯論也不願後來發現致命漏洞。這種文化看似低效(由幾人決策會更快),但實際上是省時的——避免了大方向錯誤帶來的重返工作。

在build階段,單位測試與集成測試必須與開發並行。關鍵的insight是集成測試應在主網fork上進行,而非mock環境。因為現實中存在許多邊界情況——比如USDT違反ERC20標準、沒有Boolean返回值——只有在真實fork上才能發現。此外,代碼覆蓋率檢查(forge coverage)只是基線;變異測試工具(Gambit、Vertical RS)通過修改代碼行為再跑測試,如果修改後的代碼仍通過測試,就代表該測試沒有真正驗證行為——這種工具能發現傳統覆蓋率無法抓到的漏洞。Morpho內部也採用雙重code review制度:protocol team與integration team分工,互相review,且所有已部署的代碼須全體工程師理解,這樣無論誰離職,知識不會隨人流失。

部署前,Morpho與Open Zeppelin及Spearbit進行了sequential audits——先完成第一輪審計、修復所有findings、再進行第二輪,而非並行多個審計。並行審計看似快,但會導致後輪審計者基於舊代碼工作,浪費資源。他們還舉辦了Code4rena的代碼競賽,投入200k漏洞賞金,讓全球安全研究者以競賽形式尋找bug。這比單一審計公司的深度review更像一場「大型人工fuzzing」,儘管個別參與者可能不如專業審計深入,但集體的眼睛能發現不同維度的漏洞。

部署後,Morpho設置了invariant監控——自動檢查每筆交易後協議的數學不變量是否仍成立。若監控到異常或發現新漏洞,他們有一套pre-planned incident response playbook,包括與security researchers、媒體、相關方的聯繫方式,甚至可以直接notify stablecoin發行者凍結資金。此外,他們定期舉辦「hack school」,由工程師輪流深度分析歷史漏洞(如Curve、Cream等曾經的攻擊),確保團隊對已知風險保持警惕。

相比之下,Paraswap的故事展示了聚合器領域的特殊挑戰。Paraswap運營4年半,處理超600億美元交易量,其大部分流量來自第三方集成商。其早期設計的一個重要教訓是allowance合約的雙層結構。當初他們曾想用單一合約同時處理approval和swap,但這造成了嚴重安全漏洞——該合約可同時執行arbitrary calldata和擁有用戶授權,讓攻擊者有機會清空用戶余額。這不是理論漏洞:2023年某新聚合器正因此design flaw在launch當天被hacked損失數百萬;2019年Paraswap的一個競爭對手也因同樣漏洞被發現可以被利用。由此教訓,Paraswap V5採用了分離設計,將approvals與swaps分開到不同合約,降低了attack surface。即便如此,2019年還是發現某開發者沒讀文檔、直接approve了Augustus合約,導致被monitor區塊鏈的攻擊者盜取了80k。這再次證明developer experience同樣決定性——合約設計再安全,若UI或API容易誘導開發者犯錯,安全也會崩潰。

Paraswap面臨的另一個挑戰是scalability與performance。最初期的Paraswap在鏈上計算價格,但如今有數百個交易所與數萬個流動性池,鏈上計算根本不可行。傳統的RPC調用方案(如為每個pool查詢getPrice)也不夠快。Paraswap因此開發了DexLib——一個offchain library重現鏈上狀態,能在毫秒級甚至亞毫秒級內計算最優價格。但offchain服務也帶來新的安全隱患。用戶給錯合約地址、UI被DNS hijack、API返回錯誤的USD金額都可能導致fund loss。Paraswap的防護做法包括:在API和UI中都hardcode合約地址,且必須匹配,否則UI crashes;獨立使用oracle(如Chainlink)複核USD價格,而非盲信API的USD欄位;監測price impact異常並blocking超過閾值的交易;顯示用戶警告。這些實踐使Paraswap過去三年沒有經歷任何on-site的price impact損失。

最後,Monir介紹了Paraswap最新的Portugu意圖協議。傳統DEX需要用戶自己支付gas並承受價格滑點;意圖協議則讓用戶表達「我想交易token A換token B」,由第三方solver競賽提供最優執行。但現存意圖協議都依賴一個centralized entity(intent API)來運營auction與選擇winner,這違反了DeFi的censorship resistance初衷。Portugu的創新在於引入一個Decentralized Layer,由驗證者網絡取代centralized API的角色。但這會引入鏈上gas成本,重新複雜化UX。因此Portugu另設Relayer層——可選而非強制,用戶可選擇任意relayer(就如現在選擇RPC provider),relayer之間可競爭與fallback。這樣既保留了去中心化原則,又不損害用戶體驗。目前Portugu仍在設計與工作進展中,防護機制如staking與slashing仍在game theory研究中。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web3 安全」的內容

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️
8 min
Web3 安全英文8月14日

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️

Zach Humphries

  • 機構支撐的積極意義:價格操縱常被視為負面,但Ripple掌握大量XRP供應與escrow,在熊市期間提高價格下限,實際上替零售投資者鎖定了低風險的積累區間,這不是剝削而是市場穩定機制。
  • 歷史模式驗證:2024年7月至11月XRP在50美分附近橫盤整理,低點觸及42美分(wick),高點65美分;隨後11月5日至12月5日單月上漲456%,年底到2025年初累計漲幅534%,這個歷史周期正在1美元價位重演。
  • 比特幣聯動邏輯:講者在4-5月就預測「如果比特幣跌至60k以下,XRP會跌至1美元或更低」,此預測精準應驗,反映出熊市中兩者的明確連動關係。
Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady
72 min
Web3 安全英文PODCAST8月5日

Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady

Zero Knowledge

  • 反向 Linux 架構:Commonware 刻意暴露棧各層級控制,讓開發者自訂執行環境、共識機制、密碼學實現,而非像 Cosmos SDK 只允許應用層以上定制。2-3 個月能組裝一條定製鏈,代價是額外深度但回報是長期維護成本降低及效能優化彈性。
  • 容錯假設的典範轉移:Alpine Glow(Solana 2025)實現單輪投票定終的關鍵是將容錯預算分離為獨立的 Byzantine 和 Crash 容限。傳統系統把 33% 當一個整體預算;新模型允許 20% 惡意加 20% 崩潰,打破了 PBFT 理論界線,釋放單輪設計空間。
  • Minimet 與 Multimet 的遞進:Minimet 是 5F+1 設定下的乾淨構造,實現更短視圖延遲;Multimet(剛發布)進一步允許並行 mini-commits 且驗證者可推翻領導者審查,使用者交易在全球分布式網路達到 200-300 毫秒端到端定終。
Private Information Retrieval (PIR) with Alex Hoover
64 min
Web3 安全英文PODCAST7月29日

Private Information Retrieval (PIR) with Alex Hoover

Zero Knowledge

  • PIR 保護的是訪問模式,不是資料本身
  • PIR 與加密不同,它關注的是隱藏「客戶端查詢了什麼」,而非「資料是否加密」。在公開資料庫(如區塊鏈)上,客戶端可以在不洩露查詢對象給伺服器的情況下檢索特定條目,解決了輕量級客戶端的隱私和防審查問題。
  • 客戶端預處理方案是突破瓶頸的關鍵