以太坊巴黎升級(合併,共識轉POS)之後又一重大更新即將到來——上海昇級!目前有著上千專業開發者的以太坊核心社區,從15年走來已經歷經15次主網升級,而這一次上海昇級將為鏈上鎖定著的230億美金的POS質押ETH提供解鎖能力,還伴隨有對GAS優化的諸多EIP融入。

隨十四君來深入了解即將主網激活的那些EIP提案的作用、原理、應用方向吧

【解讀】以太坊上海昇級即將激活的四個EIP

1、背景

1.1 主網升級

以太坊在2015年提出4大階段:前沿、宅基地、大都會、寧靜。眾所周知的是”寧靜”階段的標誌也正是2個月前以太坊共識算法從POW算力挖礦全面轉為POS權益質押挖礦,如今的他是即節能又安全且足夠去中心化的首席公鏈

每次主網升級其命名都是柏林、巴黎、上海這樣的地名,歷史上還有多次主網升級帶來巨大變革

1.2 回顧2021年8月5日-倫敦升級

在區塊高度12,965,000,以太坊完成代號為“倫敦”的硬分叉升級,共涉及五項提案

最有影響的是啟動了EIP-1559,他由以太坊創始人Vitalik·Buterin提出,從此以太坊上的每筆交易都將燃燒基本gas費用,這會自動減少ETH的流通供應量,使以太坊代幣從此進入通縮時代

舉個栗子

EIP-1559改變了價高者得的Gas fee計算邏輯,之前用戶為了讓礦工及時打包自己的交易,需要加價支付礦工費,出價越高,被優先打包的概率越大,在一定程度上會造成Gas fee的無限增長

升級後,交易手續費分成了基礎費和小費,小費給礦工激勵競價出塊,基礎費會銷毀。雖然依舊有競價出塊的部分,但礦工收益大約下降20%,而經濟模型也轉為通縮式

本質上,1559的設計發揮了次高價競價模式(second price auction)的優勢,最終會讓同一區塊內所有交易支付的價格基本一致,對用戶更公平(即因為支付base價格的交易總是會打包的,區分了緊急交易需求和常規交易需求)

2、上海昇級

為何如此急迫?

在過往,一兩年才進行一次重大升級是常事,合併共識轉換這樣的重量級升級都會提前測試網穩定運行1-2年後才會真正步入主網升級,那為什麼這次上海昇級如此急迫呢?僅僅2月後就基本定案要囊括的EIP呢?

核心因素是,合併後以太坊網絡上的所有交易將不再由能源密集型的“礦工”驗證,而是由已存入或質押大量ETH的個體和組織“驗證者”進行驗證。那對於驗證者而言,他們質押的ETH可以生成和收集新的ETH,這些所謂的“新ETH”就是他們證明驗證交易和保護網絡的獎勵。

但目前的以太坊,只能存入ETH但不能提取ETH,質押總價值接近235 億美元,都被“被困”在以太坊網絡上。

如果不盡快開放解除質押功能,則質押ETH的吸引力將大打折扣,後續也就不會有那麼多人進入以太坊網絡,這無疑會對以太坊的未來發展和網絡安全產生巨大影響。

3. 詳情解讀

【解讀】以太坊上海昇級即將激活的四個EIP

根據10-28號最新github提交的上海昇級記錄

https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md

3.1EIP-3651:更溫暖的COINBASE

https://eips.ethereum.org/EIPS/eip-3651

他是什麼?

這標題的翻譯確實很讓人迷惑,這裡的COINBASE並不是交易所的那家公司,而是來自比特幣的概念,即區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易,這種交易早期設計用於礦工打包收集挖礦的gas小費收入。

溫暖的和寒冷的,其實指的是此執行此交易時候是否有預先加載,影響礦工打包coinbase交易的gas費

  • 如果無預先加載,是寒冷的,則gas費更高

  • 如果有預先加載,是溫暖的,則gas費更低

有什麼用?

現在礦工打包的交易可能可以用作更多用途,比如ERC-4337中用於收集用戶簽名後,批量實現交易,其次也可以用同類原理來實現多種代幣結合邏輯的元交易支付等。

  • 在EIP-3651之前,更激勵用ETH的支付方式

  • 在EIP-3651之後,更激勵用ERC20的支付方式

    總之,是一個影響激勵的交易類型的提案

3.2EIP-3855:新增PUSH0 指令

https://eips.ethereum.org/EIPS/eip-3855

他是什麼?

對於EVM即以太坊虛擬機(執行合約代碼的系統)中,設計有多種指令,但是之前缺少設計了push0即針對0這個數值的壓入堆棧的操作指令,

而此EIP則新增了PUSH0(0x5f)指令,它將常量值0 壓入堆棧,該指令的需要2 gas

有什麼用?

原先沒有push0時導致的是,有一些依賴於0做偏移量的操作,比如遠程call調用與返回,則有很多參數是0,原先要操作0,只能使用指令PUSH1 0(即壓入一個數字,數字為0),這個操作要消耗3個gas,其次push1和0各佔一個初始化代碼的字節存儲,導致的是部署此合約的成本也高了2*200gas

該EIP還統計了因此的gas損失:在現有賬戶戶中,有340,557,331 字節浪費在PUSH1 00指令上,意味著部署損耗達68,111,466,200 gas

總之,是一個降低無意義的GAS消耗的提案

3.3 EIP-3860:提高初始化的代碼量限制

https://eips.ethereum.org/EIPS/eip-3860

他是什麼?

合約部署時候,有個初始化代碼的大小,基於EIP170是限制了initcode大小為24576,而如今則是將initcode 的最大大小限制提升為49152即翻倍,並為每32 字節的initcode 塊應用2 的額外氣體成本

有什麼用?

顯然,更大的代碼容量,可以讓智能合約系統做更多的事情,目前代碼僅24kb的規模導致很難用一個合約去實現系統,原先的臨時解決方案都是分多個合約部署,然後互相相互調用,但顯然跨合約引用是個高gas成本的事情。

總之,是一個提高智能合約系統上限以及降低gas消耗的提案

3.4EIP-4895:信標鏈將提款作為操作指令

https://eips.ethereum.org/EIPS/eip-4895

他是什麼?

可以說,這是本次上海昇級的核心。從結果上講,實現的是質押的ETH提款操作,而實現方式是引入了系統級的指令withdrawal基於信標鏈(共識層)的信息,無條件地直接控制指定地址的ETH餘額。

執行提現操作的方法有很多種,本次的提現操作的特點如下

  • 本身是由系統來發起,而不是用某個用戶發起,更簡潔易於審查

  • 無gas費消耗,系統發起受到共識層提款限額的控制,無需再用gas來做抗dos防護

  • 直接更新執行層的餘額,無EVM執行過程,採用最簡實現策略。

有什麼用?

別忘了,現在還有1400W個,合計價值235 億美元的ETH被質押“困在”以太坊信標鏈裡。

4 後續以太坊的重心在哪?

下圖是近期以太坊創始人VitalikButerin發布的最新路線圖,圖中綠色部分代表推進的進度,可以看到還有大量圍繞性能、安全隱患、隱私、賬戶體系AA(基於4337)的目標已經找到實現路徑

【解讀】以太坊上海昇級即將激活的四個EIP

歡迎你從後台提交web3行業問題探討

點贊關註十四,用技術視角帶給你價值