原文作者:Beosin
原文作者:Beosin
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-3540
首先,在以太坊生態中,我們經常聽到一個詞“EIP”,這個詞是什麼意思呢?
EIP-3651
EIP 全稱是Ethereum Improvement Proposal。它是一系列以太坊平台上推薦使用的標準和協議的統稱。它所包含的具體標準和協議涉及以太坊的核心協議、客戶端API、智能合約標準等。每一個EIP 包含對某個標准或協議的定義。
EIP-3670
我們先來了解以太坊上海昇級將涉及的幾個標準。
EIP-3855
該EIP 主要是針對EVM 對象格式(EOF) 合約字節碼進行的更新,為EVM 引入了一種可擴展和版本控制的容器格式。在合約字節碼中添加了代碼和數據的標記,實現了代碼與數據的分離,這種分離對於鏈上代碼驗證器特別有利,因為驗證器可以區分代碼和數據。 (詳細參考:https://eips.ethereum.org/EIPS/eip-3540 )
EIP-3860
該EIP 主要目的是將「COINBASE」地址由冷地址變為熱地址。目前,COINBASE 直接交易正變得越來越流行,因為它們允許有條件的支付,這提供瞭如隱式取消交易等好處。但是訪問COINBASE 的價格過高,原因是最初在EIP-2929 中引入的訪問列錶框架下COINBASE 是按冷地址訪問成本來進行gas 計算的,而冷地址訪問成本相比於熱地址訪問成本相對較高。 (詳細參考:https://eips.ethereum.org/EIPS/eip-3651 )
EIP-4895
該EIP 主要是配合上述EIP-3540 合約創建時引入代碼驗證。拒絕包含截斷PUSH 數據或未定義指令的合約字節碼。 (詳細參考:https://eips.ethereum.org/EIPS/eip-3670 )
EIP-4200
該EIP 主要是增加了PUSH 0 指令,作用是將常量0 壓入堆棧。目前只有將1 字節到32 字節壓入堆棧的PUSH 1-PUSH 32 指令,而將常量0 壓入堆棧,需要使用PUSH 1 0 指令進行操作,而該指令在runtime 中需要消耗3 gas,並且額外需要消耗2 字節的存儲成本費用2* 200 gas。目前大約存在11.5% 的PUSH 指令壓入了一個常量0 到堆棧,而新增PUSH 0 指令後,可以節約一定量的gas 費用。 (詳細參考:https://eips.ethereum.org/EIPS/eip-3855 )
EIP-4750
該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-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 數量的以太坊,從而實現以太坊的提取。
這部分升級是本次上海昇級的主要內容,將會對以太坊虛擬機系統產生相對較大的影響。 Beosin 會將本次上海昇級中的所有指令同步納入Beosin-VaaS 智能合約代碼檢測工具中。
二級標題
二級標題
二級標題
以太坊可擴展解決方案是什麼?
另一方面,備受矚目的EIP-4844 被推遲到了今年5 月至6 月進行更新,其功能是引入一種“攜帶blob 的交易”的新交易格式,該格式是為L2 數據傳輸所專門設計出的數據類型。