KeyFrame內部研究專用

Solving State Bloat with State Archival: Risks and Mitigations | Garand Tyson (Stellar)

DeFi Security Summit - DSS·1月21日週二·9 min英文

三句話摘要

Stellar 網路以「狀態歸檔」協議解決區塊鏈狀態膨脹問題,並針對由此引入的三種新型攻擊面提出防禦機制。 狀態歸檔的核心洞見是:用 TTL + 不可變 Merkle Trie 鏈外儲存取代永久在鏈保存,每種新引入的攻擊面都能透過精心設計的證明系統(包含 + 非包含證明)或無授權操作機制加以化解,而非繞過它。 狀態膨脹的根本原因在於 Merkle 結構:更新 Merkle 樹需對隨機狀態發出大量阻塞讀取,即使該狀態與當前交易無關,導致熱資料與冷資料無法有效分層,USDC 與廢棄 meme 幣佔用相同等級的資源。

重點整理

重點
  • 1

    狀態膨脹的根本原因在於 Merkle 結構:更新 Merkle 樹需對隨機狀態發出大量阻塞讀取,即使該狀態與當前交易無關,導致熱資料與冷資料無法有效分層,USDC 與廢棄 meme 幣佔用相同等級的資源。

  • 2

    TTL + 租金制度將一次性費用轉換為持續性成本:每筆狀態有 TTL,持有者須定期繳納租金延長;到期後狀態被刪除以釋放節點資源,費用模型因而與實際儲存成本對齊。

  • 3

    雙重恢復攻擊透過「非包含證明鏈」防禦:歸檔採不可變 Trie,舊葉節點無法刪除,攻擊者可能用過時餘額重複領取。解法是恢復某 Trie N 中的條目時,必須同時提供所有更新 Trie 的非包含證明,確保只有最新版本可被恢復。

  • 4

    雙重 Nonce 攻擊透過 Binary Fuse Filter 高效防禦:攻擊者可在歸檔狀態尚未恢復時,用相同 key 建立新值以遮蔽舊值。要求建立新 key 時提供全部 Trie 的非包含證明成本過高,因此改用 Binary Fuse Filter(優化版 Bloom Filter)作機率性快速篩查,偽陽性時可改提交完整非包含證明補救。

實用技巧與重點

乾貨
  • Stellar 是現存最古老的 Layer 1 區塊鏈之一,運營超過 10 年
  • 狀態歸檔核心機制:TTL(存活時間)+ 租金續費 + 鏈外不可變 Merkle Trie 儲存
  • 驗證節點只保存歸檔 Trie 的 Merkle Root,不保存完整歸檔資料
  • 恢復歸檔條目需提供:Trie N 的包含證明 + 所有更新 Trie 的非包含證明
  • 歸檔需同時記錄:歸檔條目本身 + 已刪除 key(供非包含證明使用)
  • TTL 延長與狀態恢復不需要私鑰或所有權授權,任意第三方皆可操作(防止惡意歸檔攻擊)
  • Binary Fuse Filter 特性:假陽性只影響活躍性(liveness),不影響安全性(safety);偽陽性時可提交完整非包含證明覆蓋
  • 工具/結構:Hot Archive(驗證節點本地 Merkle Trie)、Off-chain Archive、Binary Fuse Filter
  • 智能合約介面:2025 年 2 月上 mainnet
  • 完整證明系統含條目刪除功能:code complete,預計 2025 年晚些時候上 mainnet

結論

結論

狀態歸檔的核心洞見是:用 TTL + 不可變 Merkle Trie 鏈外儲存取代永久在鏈保存,每種新引入的攻擊面都能透過精心設計的證明系統(包含 + 非包含證明)或無授權操作機制加以化解,而非繞過它。

完整解析

詳細

區塊鏈的狀態膨脹問題長久以來缺乏有效解法。根本原因在於:公鏈所有狀態必須無限期保存,而交易只在提交時支付一次性費用,卻對網路造成持續性的儲存成本。Stellar 已運行超過十年,累積了大量廢棄的 meme 幣、NFT 等冷資料。更棘手的是,傳統資料庫的快取分層策略完全失效——Merkle 結構的更新需要對完全隨機的狀態發出大量阻塞讀取,導致熱資料與冷資料在系統層面無法區分,資料庫只能無限膨脹。

Stellar 提出的解法是狀態歸檔。每筆鏈上狀態被賦予 TTL 值,持有者可透過支付租金延長 TTL;到期未續費的條目將被「歸檔」——從驗證節點的線上資料庫中刪除,轉存至鏈外的不可變 Merkle Trie 中。驗證節點只保留每個 Trie 的 Merkle Root,不儲存完整歸檔內容。當用戶需要重新使用已歸檔的狀態,只需向驗證節點提交一個 Merkle 存在性證明,即可原子性地將條目恢復至鏈上。這套設計讓費用模型與實際儲存成本對齊,也讓驗證節點得以釋放資源。

然而,這套機制引入了三種新型攻擊面。第一種是雙重恢復攻擊:由於歸檔 Trie 是不可變的,舊版本的葉節點即使已過時也無法從中刪除。攻擊者可以先讓舊餘額(例如 10 USDC)歸檔,恢復後花掉部分(剩 5 USDC),再讓新餘額歸檔至較新的 Trie,但轉而提交舊 Trie 的包含證明恢復 10 USDC,達到雙重花費。防禦方案是要求恢復任何條目時,除了提供目標 Trie 的包含證明,還必須提供所有更新 Trie 中該 key 的非包含證明,確保只有最新版本可被恢復。副作用是歸檔時也必須記錄已刪除的 key,以供非包含證明使用。第二種是惡意歸檔攻擊:借款人刻意讓抵押品的 TTL 過期歸檔並違約,貸款方因沒有私鑰而無法恢復抵押品。解法簡潔——TTL 延長與狀態恢復不需要私鑰或擁有權驗證,任何第三方(如清算人)均可代為恢復他人的狀態,且此設計無任何安全副作用。第三種是雙重 Nonce 攻擊:攻擊者趁某個 key 處於歸檔狀態時,在鏈上以相同 key 建立新值,「遮蔽」掉歸檔中的合法舊值。要求建立新 key 時提供所有 Trie 的非包含證明在效能上代價過高,因此改採 Binary Fuse Filter(優化版 Bloom Filter)作機率性篩查;其設計偏向安全性——偽陽性只會暫時阻止合法恢復,但絕不會放行非法操作,且偽陽性時用戶可提交完整的非包含證明予以覆蓋。

目前,智能合約的歸檔介面已於 2025 年 2 月在 Stellar mainnet 上線,完整的證明系統(含條目刪除功能)已完成程式碼實現,預計於 2025 年稍晚正式部署至 mainnet。

關鍵時刻

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