KeyFrame內部研究專用

Transient storage, a transient trend? | Valerian Callens (Quantstamp)

DeFi Security Summit - DSS·12月22日週日·8 min英文

三句話摘要

EIP-1153 引入的 Transient Storage(T 存儲)並非短暫趨勢,而是 EVM 生態系統正在健康早期採用的持久性機制。 Transient Storage 不是曇花一現,它有堅實的標準基礎、主流工具支援與頭部協議背書,掌握其槽管理的安全模式才是立即可落地的核心競爭力。 T 存儲有雙重作用域:合約層(只有自身合約可存取,對外需專用 view 函數)與交易層(交易結束後自動重置為零),這兩個特性共同決定了它的適用場景。

重點整理

重點
  • 1

    T 存儲有雙重作用域:合約層(只有自身合約可存取,對外需專用 view 函數)與交易層(交易結束後自動重置為零),這兩個特性共同決定了它的適用場景。

  • 2

    實際採用集中在兩類用途:大多數項目先從瞬態重入保護切入,進階用法則是以「Transient Context」模式管理一組瞬態變量,Uniswap V4 與 Balancer V3 的 Flash Accounting 是最具代表性的案例。

  • 3

    安全風險核心在槽管理:混合使用 `delegatecall` 時容易發生槽衝突;若同一個槽被多個用例或多個 Actor 共用,可能引發意外行為或 DoS——账戶抽象(Account Abstraction)場景尤需警惕。

  • 4

    可組合性是雙面刃:交易級計數器雖能防止重複調用,但也可能限制協議在同一交易中的可組合性,批次交易工具有可能被濫用。

實用技巧與重點

乾貨
  • 標準:EIP-1153,Dencun 升級引入 EVM
  • 操作碼:`TLOAD` / `TSTORE`;Solidity/Viper 使用 `transient` 關鍵字
  • 槽大小:32-bit 標識符
  • 成本:比持久存儲(SLOAD/SSTORE)更便宜
  • 採用項目:Uniswap V4(Flash Accounting)、Balancer V3
  • EIP 原始六大用例:瞬態重入保護、具持久餘額的代幣、瞬態授權、可支付費用的代幣、解鎖代幣轉移至交易結束
  • 工具:EVM diff 工具(用於驗證 T 存儲實作正確性)
  • 採用延遲案例:部分代碼庫因尚未準備好升級 Solidity 編譯器至 0.8.24 而推遲採用
  • 設計模式三種:Transient Read-Return 保護、Transient Context 生命週期管理、Transaction-Level Counter
  • Transient Context 鎖定步驟:確認未被鎖定 → 鎖定 → 清理槽 → 初始化 → 使用 → 清除 → 解鎖

結論

結論

Transient Storage 不是曇花一現,它有堅實的標準基礎、主流工具支援與頭部協議背書,掌握其槽管理的安全模式才是立即可落地的核心競爭力。

完整解析

詳細

Transient Storage 的故事始於六年前的 EIP-1153 提案,直到今年的 Dencun 升級才正式並入 EVM。它的核心特性只有兩點:便宜,以及交易結束即清零。開發者可以在 Solidity 與 Viper 中透過 `transient` 關鍵字直接使用,也可透過底層操作碼 `TLOAD`/`TSTORE` 操作,每個槽以 32-bit 標識符定址。EIP 最初預設了六種應用場景,從重入保護到代幣授權均有涵蓋,為這項技術描繪了一張相當完整的用途地圖。

在實際採用上,透過 GitHub 搜尋可以發現,早期結果多為客戶端與開發工具在跟進 Dencun 支援,但真正具代表性的生產用例已經出現:Uniswap V4 與 Balancer V3 以 T 存儲實作 Flash Accounting(閃存記帳),利用交易結束自動清零的特性省去了手動重置的成本。多數項目的採用路徑相似——先以最簡單的瞬態重入保護切入,再視需求升級為「Transient Context」模式,即將一組相關的瞬態變量統一管理,並搭配專用庫(如 Transient Slot Doo 庫)處理槽的分配與清理。少數項目的採用被推遲,原因通常是代碼庫其餘部分尚未準備好升級至 Solidity 0.8.24。

安全方面,講者歸納出四個值得關注的風險點。首先,重入檢查邏輯不能只看持久存儲,必須同時考慮 T 存儲的狀態。其次,面向多條 EVM 相容鏈部署時,需用 EVM diff 工具確認各鏈對 T 存儲的實作是否一致。第三,混合使用 `staticcall`(靜態調用)與 `delegatecall` 時,不同槽之間可能發生衝突或偏移。第四,也是最需要設計層面應對的:若同一個槽可被多個用例或多個 Actor 並發存取,Account Abstraction 與批次交易工具有可能觸發意外行為甚至 DoS 攻擊。

針對這些風險,講者提出三個設計模式。「Transient Read-Return 保護」用來防止只讀區域被濫用,透過為 view 函數指定 ID(如 42)並以修飾符在暴露區域前後鎖定/解鎖來實作。「Transient Context 生命週期管理」是其中最重要的模式:核心原則是單用途槽(一槽一用途),以及避免多個 Actor 並行操作同一槽,具體流程為「確認未鎖定 → 鎖定 → 清理 → 初始化 → 使用 → 清除 → 解鎖」。「交易級計數器」則允許對函數在單一交易內的調用次數設限,優點是比持久存儲便宜且能阻止重複重入,缺點是可能限制協議的可組合性。

關鍵時刻

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