SuperVaults 如何使用 Merkle 證明來鎖定哪些代碼可以觸及您的資金 🔐 每個 DeFi 保險庫都需要與外部協議互動 - 存入收益來源、代幣授權、贖回。但您如何確保只有經批准的操作可以執行? SuperVaults 通過 Merkle 證明驗證層來解決這個問題。 核心思想- 每個允許的操作都是 Merkle 樹中的一個葉子:hash(hookAddress + encodedArgs) 想要將 USDC 存入 Yearn?該確切的組合 - 存款鉤地址 + Yearn 保險庫 + USDC - 必須作為樹中的一個葉子存在。 沒有證明 = 交易回滾。 但這還不是全部,SuperVaults 擁有兩層安全模型: 1️⃣ 全局樹(每條鏈) - 任何保險庫都可以執行的通用操作。存款、授權、交換。這裡沒有複雜的東西。 2️⃣ 管理樹(每個保險庫) - 可以移動資金的策略特定操作。贖回、轉移。每個保險庫都有自己的樹,並擁有白名單目的地。 這種分離意味著即使有人妥協了全局配置,他們也無法添加任意的提款目的地。這些存在於特定於保險庫的管理樹中。 驗證的內容- 不是每個參數 - 只有安全關鍵的參數。對於授權鉤,我們驗證 (token, spender) 但不驗證金額。Merkle 參數是信任邊界。 根更新有一個時間鎖。 不能在同一區塊中推送惡意根並排空資金。變更被提議 → 等待 → 執行。給監控系統時間來標記可疑的更新。 為什麼選擇 Merkle 樹- - O(log n) 證明大小 - 一棵擁有 10,000 個批准操作的樹仍然只需要約 13 個哈希來證明成員資格 - 確定性 - 相同的配置始終產生相同的根 - 鏈上驗證成本低 - 只需哈希證明路徑並與存儲的根進行比較 結果:一個可以與數十個協議和數千個代幣/收益來源組合互動的保險庫,但只有配置中經批准的確切組合。其他所有的都會被拒絕。