← 回到 DEVCON 8

EIP-7923:以稀疏分頁調整 EVM 記憶體配置與計費

EIP-7923: A Sparse-Page-Based Memory Model for the EVM

場次摘要

EIP-7923 提議讓以太坊虛擬機(EVM)只配置實際存取的記憶體頁面,不再為未使用的位址空隙付費。QuarkChain 的 Jamie 說明,現行模型將記憶體視為從位址 0 開始的連續區間,擴張可能產生二次方成本,以限制阻斷服務風險;新提案則借鏡硬體的稀疏分頁,支援更彈性的合約記憶體布局。 依講者所述硬體量測及每 gas 20 奈秒的換算,新頁配置費估為每頁 100 gas,既有頁面的 MLOAD 讀取基本費擬維持 3 gas。提案另設每筆交易 64 MB 上限,避免大量同時呼叫累積過高的記憶體需求。多數既有合約預期仍可相容;利用 Linux 頁面保護省去應用程式追蹤表,則仍是實驗方向,並非定案機制。

值得記下的 5 件事

  1. [1:46]
    稀疏分頁只配置實際存取的頁面,不為未使用的空隙擴張整段記憶體

    現行模型依最高存取位址擴張連續區間,再收取新舊記憶體成本的差額;提案改為檢查本次存取碰觸的頁面,已有頁面就沿用,否則才收費並配置。目標是支援更彈性的記憶體布局,免除空隙帶來的配置負擔。

  2. [3:04]
    新頁配置費估為每頁 100 gas,跨頁讀取可能一次觸發 2 頁配置

    講者以每 gas 20 奈秒換算,搭配新頁配置耗時上緣 2,000 奈秒,推得每頁 100 gas 的估值。這項估算依據所述硬體量測;MLOAD 讀取若跨越頁面邊界,可能需要配置 2 個新頁,費用也須隨之計算。

  3. [3:40]
    既有頁面的 MLOAD 讀取基本費擬維持 3 gas

    講者依所述量測,將存取與頁面追蹤耗時估為 25 奈秒;以每 gas 20 奈秒換算,3 gas 對應的時間預算為 60 奈秒,足以涵蓋這項估值。因此,提案認為可沿用現行基本費,判斷仍以這組量測與換算為基礎。

  4. [4:04]
    Linux 頁面保護仍是後續實驗方向,尚非定案機制

    構想是讓受保護頁面的存取觸發 SIGSEGV 訊號,再由應用程式的處理機制按需配置頁面。這條路徑的目標,是省去應用程式用來追蹤頁面的雜湊表,作為現有稀疏配置構想之外,可能進一步改善的方向。

  5. [4:42]
    每筆交易擬設 64 MB 上限,也須考量大量同時呼叫的總需求

    講者以 100 個同時達到上限的呼叫請求為例,估算記憶體需求會累積至 6.4 GB,藉此說明限制單筆用量的重要性。這是各請求都用滿額度時的容量情境,而非每次呼叫的固定用量或節點實測結果。

下載摘要 下載 Word 摘要(.docx)

更多來自 DEVCON 8

訂閱