Web3下一場新的敘事?以太坊上海昇級哪些細節值得你關注

以太坊上海昇級,也被眾多媒體稱為Web3下一場新的敘事,這也是目前大家討論最多的一熱點。

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

首先,在以太坊生態中,我們經常聽到一個詞“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)

Total
0
Shares
Related Posts