合併後的ETH發行
以太坊合併完成了以太坊網絡從工作量證明(proof-of-work)向權益證明(proof-of-stake)的過渡。 ETH的發行方式在過渡時期發生了變化。以前,新的ETH發行有兩個來源:執行層(即主網)和共識層(即信標鏈)。自從以太坊合併之後,執行層上的ETH發行現在為零。
合併之後執行層發行:在升級的共識規則下,工作量證明不再是區塊生產的有效手段。所有的執行層活動都被打包到“信標塊”("beacon blocks")中,即由權益證明驗證者發布和驗證。驗證和發布“信標塊”的獎勵在共識層上分別計算。
合併之後共識層發行:共識層的ETH發行仍在繼續,就像合併之前一樣,對驗證和提議區塊的驗證者提供少量獎勵。驗證者獎勵繼續累積到在共識層內管理的驗證者余額。信標鏈上的驗證者賬戶和我們在以太坊主網上使用的賬戶是相互獨立的,計劃中在上海昇級之前,提取驗證者賬戶的資金是不可能的。在上海昇級之後,如果用戶願意,他們將可以提取他們的獎勵和質押。這也就意味著,儘管新的ETH仍在發行,但在上海昇級發生之前, 100 %仍被鎖定在市場上。
以太坊密鑰
在這裡我們介紹一下以太坊賬戶的“鑰匙”。以太坊使用公私鑰加密技術保護用戶資產。公鑰被用作以太坊地址的基礎——也就是說,它對公眾可見,並用作唯一的標識符。私鑰應該只有賬戶所有者才能訪問。私鑰用於“簽署”交易和數據,這樣密碼學就可以證明持有者批准了特定私鑰的某些行為。隨著以太坊從工作量證明轉換為權益證明,用戶需要一種新的密鑰類型,通過質押ETH並管理驗證者來參與權益證明。原來的以太坊主網密鑰仍然和以前完全一樣,但在信標鏈上希望成為獨立質押者的用戶則需要一個驗證者密鑰(validator key)和取款密鑰(withdrawal key)。上海昇級之後,質押提款需要withdrawal key。
一級標題
一級標題
我們總結了上海昇級即將激活的四個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取款。部署完成後,以太坊信標鏈質押提款功能將被激活。
參考:
參考:
參考:
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