2023 年 3 月,以太坊將推出預期的上海昇級。

封面: Photo by Shubham's Web3 on Unsplash

2023 年 3 月,以太坊將推出預期的上海昇級,截止發稿前,本次升級主要包括 EIP-3540、EIP-3651、EIP-3670、EIP-3855、EIP-3860、EIP-4895、EIP-4200、EIP-4750 以及 EIP-5450。而備受矚目的 EIP-4844 將推遲到 5 月至 6 月進行更新。

圖片:Shutterstock


首先,在以太坊生態中,我們經常聽到一個詞 “EIP”,這個詞是什麼意思呢?
EIP 全稱是 Ethereum Improvement Proposal。它是一系列以太坊平台上推薦使用的標準和協議的統稱。它所包含的具體標準和協議涉及以太坊的核心協議、客戶端 API、智能合約標準等。每一個 EIP 包含對某個標准或協議的定義。

我們先來了解以太坊上海昇級將涉及的幾個標準。

EIP-3540

該 EIP 主要是針對 EVM 對象格式 (EOF) 合約字節碼進行的更新,為 EVM 引入了一種可擴展和版本控制的容器格式。在合約字節碼中添加了代碼和數據的標記,實現了代碼與數據的分離,這種分離對於鏈上代碼驗證器特別有利,因為驗證器可以區分代碼和數據。(詳細參考:https://eips.ethereum.org/EIPS/eip-3540)

EIP-3651

該 EIP 主要目的是將 “COINBASE” 地址由冷地址變為熱地址。目前,COINBASE 直接交易正變得越來越流行,因為它們允許有條件的支付,這提供瞭如隱式取消交易等好處。但是訪問 COINBASE 的價格過高,原因是最初在 EIP-2929 中引入的訪問列錶框架下 COINBASE 是按冷地址訪問成本來進行 gas 計算的,而冷地址訪問成本相比於熱地址訪問成本相對較高。(詳細參考:https://eips.ethereum.org/EIPS/eip-3651)

EIP-3670

該 EIP 主要是配合上述 EIP-3540 合約創建時引入代碼驗證。拒絕包含截斷 PUSH 數據或未定義指令的合約字節碼。(詳細參考:https://eips.ethereum.org/EIPS/eip-3670)

EIP-3855

該 EIP 主要是增加了 PUSH0 指令,作用是將常量 0 壓入堆棧。目前只有將 1 字節到 32 字節壓入堆棧的 PUSH1-PUSH32 指令,而將常量 0 壓入堆棧,需要使用 PUSH1 0 指令進行操作,而該指令在 runtime 中需要消耗 3 gas,並且額外需要消耗 2 字節的存儲成本費用 2*200 gas。目前大約存在 11.5% 的 PUSH 指令壓入了一個常量 0 到堆棧,而新增 PUSH0 指令後,可以節約一定量的 gas 費用。(詳細參考:https://eips.ethereum.org/EIPS/eip-3855)

EIP-3860

該 EIP 主要是對 initcode 的最大值進行了修改。目前 initcode 的最大值在之前 EIP-170 中設置為 MAX_CODE_SIZE: 24576,在 EIP-3860 中,新的 initcode 的最大值為 MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152。這使得合約大小的最大值擴展了一倍,合約可以擁有更加豐富的功能。但 initcode 每字節將添加 0.0625 gas 的成本,合約部署 gas 成本微微上漲。(詳細參考:https://eips.ethereum.org/EIPS/eip-3860)

EIP-4895

該 EIP 主要是激活以太坊信標鏈質押提款的功能。(詳細參考:https://eips.ethereum.org/EIPS/eip-4895)

EIP-4200

該 EIP 引入了三個新的 EVM 靜態跳轉指令,分別為 RJUMP、RJUMPI 和 RJUMPV,其目的是為了優化網絡以及降低成本。目前 EVM 僅擁有動態跳轉機制,這雖然能讓字節碼非常靈活,但是也同樣增加了代碼分析的複雜程度。這些靜態指令的主要好處是降低了 gas 成本(在部署和執行時)以及擁有更好的分析屬性。(詳細參考:https://eips.ethereum.org/EIPS/eip-4200)

EIP-4750

該 EIP 主要是對代碼的優化。主要是在上述 EOF 格式 (EIP-3540) 的基礎上引入了在字節碼中包含多個代碼段的能力,每個代碼段所代表的是一個單獨的子程序或函數。在字節碼中引入了 CALLF 以及 RETF 兩個新操作碼來負責調用和返回這種子程序或函數。此外,該 EIP 還引入了 JUMPF 指令來執行跳轉到這種子程序或函數的操作。(詳細參考:https://eips.ethereum.org/EIPS/eip-4750)

EIP-5450

該 EIP 主要是改變了代碼的驗證過程,對網絡進行了優化。目前 EVM 對每條執行的指令進行大量的有效性檢查,例如溢出、gas 是否充足等,而該 EIP 將使得合約在部署時便進行相關驗證,從而減少代碼在運行的時候進行的此類驗證次數。(詳細參考:https://eips.ethereum.org/EIPS/eip-5450)

本次上海昇級主要分為以下幾個大的類型

1、EVM 細節優化

主要有兩個細節改進的 EIP,分別是:EIP-3651 以及 EIP-3860。

主要是針對現有的細節問題以及優化體驗方面進行的細節改動,其中 EIP-3860 能夠緩解目前智能合約字節碼長度限制導致部分複雜的合約必須拆分成多個合約才能夠部署到主網的問題,該 EIP 的引入將會顯著增加智能合約功能的豐富性與多樣性。

2、信標鏈提款

主要通過 EIP-4895 進行實現。

目前,信標鏈上的 ETH 質押數量超 1500 萬枚,佔以太坊流通總量的近 13%,本次升級之後,將開放這超 1500 萬枚以太坊的提取功能。

本次提取功能將採用 “推” 的方式將款項從共識層(信標連)推送到執行層(主網),將定義一個分叉時間戳 FORK_TIMESTAMP,從該時間戳開始,執行層便要對提款進行處理。共識層會定義一個負載級對象 withdrawal,該對象會提供包括:index(計數器,記錄提款次數)、validator_index(驗證者數據)、address(提款目標地址)以及 amount(以太坊數量)的關鍵信息,會主動推送到執行層。執行層中也將定義一個新字段 withdrawals,該字段保存的是 withdrawal 對象的列表,執行負載獲取到一個 withdrawal 對像後,添加到 withdrawals 列表。在經過驗證之後,便會對 address 地址增加 amount 數量的以太坊,從而實現以太坊的提取。

3、字節碼改進

主要有六個字節碼相關改進的 EIP,分別是:EIP-3540、EIP-3670、EIP-3855、EIP-4200、EIP-4750 以及 EIP-5450。

這類升級主要是增加部分新字節碼指令,包括:PUSH0、RJUMP、RJUMPI、RJUMPV、CALLF、RETF、JUMPF。還對字節碼進行了分類,添加字節碼的標記用於區分字節碼的類型,並對字節碼每個類型進行了模塊化。另一方面,更新了字節碼的驗證機制,優化了網絡以及使用費用。

這部分升級是本次上海昇級的主要內容,將會對以太坊虛擬機系統產生相對較大的影響。Beosin 會將本次上海昇級中的所有指令同步納入 Beosin-VaaS 智能合約代碼檢測工具中。

以太坊可擴展解決方案是什麼?

另一方面,備受矚目的 EIP-4844 被推遲到了今年 5 月至 6 月進行更新,其功能是引入一種 “攜帶 blob 的交易” 的新交易格式,該格式是為 L2 數據傳輸所專門設計出的數據類型。

Rollups 是一種擴展解決方案, 在短期、中期甚至可能在長期內,該方案是以太坊唯一的去信任擴展解決方案。近期幾個月中,L2 向 L1 傳輸數據的費用一直高居不下,而 Rollups 很明顯的降低了許多以太坊用戶的交易費用,其中 Optimism 和 Arbitrum 擁有比以太坊基礎層本身低 3-8 倍費用的功能,而 ZK rollups 甚至擁有比以太坊基礎層本身低 40-100 倍費用的功能。

然而,即使是這樣的費用,對於許多用戶來說也太貴。長遠看,數據分片是解決 rollups 自身不足的很好的解決方案,可以為使用 rollups 的鏈的每個區塊增加 16MB 的專用數據空間。但是,數據分片功能的實施和部署需要漫長的時間才能實現。

該 EIP 提供了一個解決方案,通過實現 “攜帶 blob 的交易” 這一新的交易類型,該交易類型是為了承載 L2 的原始交易壓縮數據,相當於之前的 calldata。由於 L2 的交易壓縮數據上傳的目的只是為了供其他人下載驗證,所以 calldata 其實並不需要被 L1 執行從而產生 gas 費用。新交易類型 blob 便不會像 calldata 那樣被 EVM 讀取,其會保留在共識層,並在 30 天的延遲之後被刪除。簡單來講,就是將之前的 calldata 數據保留到共識層,而不會像之前那樣發送到執行層,從而產生高昂的 gas 費用,也正是 Rollup 費用能因此降低的原因。(詳細參考:https://eips.ethereum.org/EIPS/eip-4844)

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。