合併後的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以外的其他付費方式,如ERC20,但ETH才是以太坊交易的主要付費手段。 EIP-3651有利於讓礦工節省gas費,加快礦工交易的速度。

EIP-3855, PUSH0 (0x5f)指令

引入一條新指令,將常量值0壓入堆棧

概述:引入PUSH0 (0x5f)指令,它將常量值0壓入堆棧。

動機:許多指令期望將偏移量作為輸入,在許多情況下偏移量為0。一個很好的例子是call的返回數據參數,如果合約更喜歡使用RETURNDATA*,則將其設置為零。這只是一個例子,但是還有許多其他原因導致合約需要推入0值。他們現在可以通過PUSH1 0實現這一點,它在運行時消耗3個gas,並被編碼為兩個字節,這意味著2 * 200的gas部署成本。有了PUSH0 指令後,就不需要消耗這額外的gas 部署成本。此外,從“浪費”的角度來看,在現有的帳戶中,在push1 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的大小線性擴展。基於EIP170 是限制了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