Solving State Bloat with State Archival: Risks and Mitigations | Garand Tyson (Stellar)
三句話摘要
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 只會顯示它真正能驗證的內容。

