KeyFrame內部研究專用

DeFi security Summit 2023 - Session 3: Network & VM - Hari Mulackal

DeFi Security Summit - DSS·7月15日週六·21 min英文

三句話摘要

以太坊EVM中的設計怪癖與權衡:從信標鏈存款合約、返回數據複製指令到瞬態存儲的深度分析。 EVM的每個怪癖都源自真實的權衡考量,設計新功能時必須謹慎權衡效率、安全與一致性。 RETURNDATACOPY因Nick Johnson提議允許越界訪問返回獎勵,導致Solidity編譯器優化步驟產生漏洞,因為需額外檢查自動退出情況,此例示設計例外如何造成生態工具鏈的問題。

重點整理

重點
  • 1

    RETURNDATACOPY因Nick Johnson提議允許越界訪問返回獎勵,導致Solidity編譯器優化步驟產生漏洞,因為需額外檢查自動退出情況,此例示設計例外如何造成生態工具鏈的問題。

  • 2

    瞬態存儲在交易層級設計引入內交易死鎖風險——若開發者為省gas跳過解鎖,同交易內再次調用時會被阻止,呼應「安全vs混亂」的設計權衡。

  • 3

    EVM移位指令刻意設置X shifted by Y而非Y shifted by X,源自gas優化(避免額外堆棧交換),但與除法等指令的直觀順序不一致,成為工具開發與調試的長期痛點。

  • 4

    EVM設計服務編譯器建造者、應用開發者、節點運營者多方使用者,需在效率、安全性、一致性間做出複雜取捨,且歷史遺留決策難以全面修正。

實用技巧與重點

乾貨
  • 信標鏈存款合約:500億美元,8個前導零,以tornado cash錢包部署
  • RETURNDATACOPY:EIP-211提案,Nick Johnson (ENS)建議實現越界獎勵語義
  • 瞬態存儲:解鎖操作成本100 gas,初始化為1以優化gas退款
  • 重入鎖實現:標準做法在存儲中切換布林值 0→1→0,需防止合約卡死
  • 移位指令:設計目的是避免額外的SWAP操作以節省gas成本
  • EIP-1459:首次在協議層面正式燒毀ETH(通過基礎費用),區別於發送到黑洞地址

結論

結論

EVM的每個怪癖都源自真實的權衡考量,設計新功能時必須謹慎權衡效率、安全與一致性。

完整解析

詳細

講者以一個看似不可能的「無限金錢漏洞」開場——以太坊信標鏈的存款合約允許用戶存入ETH、運行驗證者、再提出ETH,但合約餘額卻始終只增不減。實際上這不是漏洞,而是設計的基本事實:提款在信標鏈上處理,執行層的存款合約從不真正減少,造成計算以太坊總供應量異常困難。

這個觀察引出核心議題——EVM充滿歷史累積的設計決策,許多看似不合理的規則都有其時代背景。RETURNDATACOPY指令便是典範。此指令對於Solidity的動態數據類型至關重要,但在越界訪問時表現異常:它返回獎勵值而非零值,違反EVM中其他指令的慣例。這個例外源自EIP-211提案時,ENS的Nick Johnson建議認為「越界不應該發生」,因此應直接獎勵而非返回零。看似一個小建議,卻導致Solidity編譯器的優化步驟產生漏洞——優化器在移除「不被讀取的內存寫入」時,必須額外檢查RETURNDATACOPY是否可能觸發越界獎勵,增加複雜性,且Go Ethereum實現中也因此指令產生多個EVM漏洞。

瞬態存儲(Transient Storage)EIP提案揭示另一類設計權衡。它類似普通存儲但僅在交易內生效,交易結束後自動清零,主要用於實現重入鎖。傳統做法用存儲變數記錄鎖狀態(初始化為1以優化gas退款),但若開發者忘記解鎖會造成永久死鎖。瞬態存儲看似更安全——即使忘記解鎖也因交易結束自動清理——但實際上引入了新問題:若為節省100 gas的解鎖成本而跳過解鎖,同一交易內再次調用合約時會產生「瞬態死鎖」,破壞開發者對交易原子性的心智模型。此例示「安全vs混亂」的兩難。

移位指令的操作數順序問題更具體。EVM中除法寫作X÷Y符合直覺,但移位卻反過來——Y shifted by X(而非X shifted by Y)。這個設計純粹為節省gas:避免額外的STACK交換指令。但這成為工具開發者的長期陷阱——多數人曾因此調試數小時才發現順序反轉。

講者強調,EVM必須服務編譯器建造者、應用開發者、節點運營者多方使用者,每方都有不同的優化目標(gas成本、安全性、性能)。設計任何新提案時,應深思熟慮其對整體生態的影響,因為一旦實現就難以更正。

關鍵時刻

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