原文作者:Tokenview

上海升級除了質押 ETH 提款之外,還納入了四項即將啟動的 EIP 。
合併後的 ETH 發行
以太坊合併完成了以太坊網路從工作量證明(proof-of-work)向權益證明(proof-of-stake)的過渡。ETH 的發行方式在過渡時期發生了變化。以前,新的 ETH 發行有兩個來源:執行層(即主網)和共識層(即信標鏈)。自從以太坊合併之後,執行層上的 ETH 發行現在為零。
合併之後執行層發行:在升級的共識規則下,工作量證明不再是區塊生產的有效手段。所有的執行層活動都被打包到「信標塊」(”beacon blocks”)中,即由權益證明驗證者發佈和驗證。驗證和發佈「信標塊」的獎勵在共識層上分別計算。
合併之後共識層發行:共識層的 ETH 發行仍在繼續,就像合併之前一樣,對驗證和提議區塊的驗證者提供少量獎勵。驗證者獎勵繼續累積到在共識層內管理的驗證者餘額。 信標鏈上的驗證者賬戶和我們在以太坊主網上使用的帳戶是相互獨立的,計劃中在上海升級之前,提取驗證者賬戶的資金是不可能的。在上海升級之後,如果用戶願意,他們將可以提取他們的獎勵和質押。這也就意味著,儘管新的 ETH 仍在發行,但在上海升級發生之前, 100% 仍被鎖定在市場上。
以太坊密鑰
在這裡我們介紹一下以太坊帳戶的「鑰匙」。以太坊使用公私鑰加密技術保護用戶資產。公鑰被用作以太坊地址的基礎——也就是說,它對公眾可見,並用作唯一的標識符。私鑰應該只有賬戶所有者才能訪問。私鑰用於「簽署」交易和數據,這樣密碼學就可以證明持有者批准了特定私鑰的某些行為。隨著以太坊從工作量證明轉換為權益證明,用戶需要一種新的密鑰類型,通過質押 ETH 並管理驗證者來參與權益證明。原來的以太坊主網密鑰仍然和以前完全一樣,但在信標鏈上希望成為獨立質押者的用戶則需要一個驗證者密鑰(Validator Key)和取款密鑰(Withdrawal Key)。上海升級之後,質押提款需要 Withdrawal Key。
上海升級
上海升級將是以太坊網路實現合併後的首次重大升級。上海升級除了質押 ETH 提款之外,還納入了四項即將啟動的 EIP 。為什麼要急於開始上海升級呢?主要是當前的以太坊網路,只能存款 ETH 但不能提取。而解鎖以太坊質押提款功能不僅有利於保持以太坊網路活力,還有利於以太坊未來可持續性發展,繼續吸引更多的驗證者進入以太坊網路。那麼以太坊上海升級即將啟動的 EIP 又能帶來什麼?
我們總結了上海升級即將啟動的四個 EIP:
EIP- 3651 : Warm COINBASE
開始 COINBASE 地址預熱
概述:根據讀取帳戶的實際成本,COINBASE 地址在交易開始執行時應是經過預熱的。
解釋一下這裡的 COINBASE 是來自比特幣的概念,即區塊中的第一筆交易是筆特殊交易,稱為 COINBASE 交易,這種交易早期設計用於礦工打包收集挖礦的 GAS 小費收入。交易執行時 COINBASE 地址是預熱過的(已加載至系統),避免每次獲取小費時都需要重新從 0 獲取 COINBASE 地址的資訊。
動機:COINBASE 直接支付正變得越來越受歡迎。COINBASE 付費被採納是因為他們允許有條件付費,這對網路是有益的,例如可防止打包回滾的交易。但是與 COINBASE 交易價格很高,在 EIP- 2929 引入的交互列表框架中 COINBASE 地址被列為「冷地址」,每次交易必須重新獲取 COINBASE 地址的資訊。這種 GAS 成本不匹配雖然可以激勵除 ETH 以外的其他付費方式,如 ERC-20 ,但ETH才是以太坊交易的主要付費手段。EIP- 3651 有利於讓礦工節省 GAS 費,加快礦工交易的速度。
EIP- 3855 ,PUSH 0 ( 0 x 5 f) 指令
引入一條新指令,將常量值 0 壓入堆棧
概述:引入PUSH 0 ( 0 x 5 f)指令,它將常量值 0 壓入堆棧。
動機:許多指令期望將偏移量作為輸入,在許多情況下偏移量為 0 。一個很好的例子是call的返回數據參數,如果合約更喜歡使用 RETURNDATA*,則將其設置為零。這只是一個例子,但是還有許多其他原因導致合約需要推入 0 值。他們現在可以通過 PUSH 1 0 實現這一點,它在運行時消耗 3 個 GAS,並被編碼為兩個字節,這意味著 2 * 200 的 GAS 部署成本。有了 PUSH 0 指令後,就不需要消耗這額外的 GAS 部署成本。此外,從「浪費」的角度來看,在現有的帳戶中,在 PUSH 1 00 指令上浪費了 340 , 557 , 331 個字節,這意味著部署它們需要消耗 68 , 111 , 466 , 200 個 GAS。EIP- 3855 目標就是降低無意義的 GAS 消耗。
EIP- 3860 ,Limit and meter initcode
將 initcode 的最大大小限制為 49152 ,並為每個 32 字節的 initcode chunk 應用 2 個 GAS 成本。
概述:通過引入 initcode 的最大大小限制 (MAX_INITCODE_SIZE = 2 * MAX_CODE_SIZE = 49152),擴展了 EIP- 170 。此外為每 32 字節的 initcode chunk 引入 2 個 GAS 費用,以表示 jumpdest-analysis 的成本。
動機:在合約創建過程中,客戶端必須在執行 initcode 之前對初始化代碼執行 jumpdest-analysis。所執行的工作隨 initcode 的大小線性擴展。基於 EIP 170 是限制了 initcode 大小為 24576 ,而如今則是將 initcode 的最大大小限制提升為 49152 。顯然,更大的代碼容量,就意味合約大小可以擴展一倍,合約開發者可以部署更豐富的功能。簡言之,EIP- 3860 目的是支持更大型的Dapp。
EIP- 4895 信標鏈將提款作為操作指令
支持驗證者通過新的“系統級”操作類型從信標鏈提款到 EVM。
概述:引入一個系統級“操作”來支持從信標鏈“推”到 EVM 取款。部署完成後,以太坊信標鏈質押提款功能將被激活。
動機:這個EIP為信標鏈上的驗證者提款提供了一種進入 EVM 的方法。從結果上講,實現的是質押的 ETH 提款操作,而實現方式是引入了系統級的指令 Withdrawal 基於信標鏈(共識層)的信息,無條件地直接控制指定地址的 ETH 餘額。 EIP- 4895 的目的就是實現質押提款功能。
除了確定包含的 4 個 EIP:EIP- 3651 ,EIP- 3855 ,EIP- 3860 ,EIP- 4895 ,在最近的以太坊核心開發者電話會議上這次電話會議期間,開發者們還討論了其他可能納入上海昇級的 EIP。雖然每個提案確實為以太坊帶來了一些獨特的優點及好處,但開發者們對優先考慮納入哪些 EIP 的問題,仍存在較大的爭議。
參考:
- https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/keys/#withdrawal-key
- https://ethereum.org/en/upgrades/merge/issuance/#cl-issuance-post-merge
- https://eips.ethereum.org/EIPS/eip- 3651
- https://eips.ethereum.org/EIPS/eip- 3855
- https://eips.ethereum.org/EIPS/eip- 3860
- https://eips.ethereum.org/EIPS/eip- 4895