作者| Pooja Ranjan
譯者| 核子可樂
繼繆爾冰川硬分叉(Muir Glacier)之後,面向以太坊1.0 鏈的升級提案柏林(Berlin)硬分叉如約而
至。
2021 年4 月15 日(星期四)下午6:12 分左右,柏林硬分叉在主網的12244000 區塊上正式激活。近一周以太坊全網算力均值為502.37 TH/s,平均出塊時間13秒。目前已有74.6%的客戶端準備就緒。
據悉,因Geth 客戶端的過於集中化的問題,本預期在2020 年7 月上線的柏林硬分叉一路延期至今。與早期以太坊網絡升級略有不同,此輪升級不需要在Meta EIP 中進行跟踪。柏林硬分叉之後,其他升級工作均將在eth1.0-specs repo 當中進行。
柏林硬分叉中包含哪些變更?
此次柏林硬分叉主要優化以太坊的主網性能、優化合約,涵蓋Gas 效率、以太坊虛擬機(EVM) 讀取代碼方式的更新,以及防止拒絕服務(DDOS) 攻擊等。在部署到主網以前,此次升級會先在Ropsten、Goerli 和Rinkeby 測試網上運行。
具體操作中,柏林硬分叉將以下四個EIP 引入以太坊網絡。
EIP-2565:降低ModExp 預編譯合約成本
https://eips.ethereum.org/EIPS/eip-2565
該項提案主要是對先前用於模塊化乘冪的預編譯機制EIP-198 進行重新定價。 EIP-198 是一項專門用於模塊化冪去處的函數,引入了多種加密算法以支持RSA 簽名驗證。 EIP-2565 將降低gas 成本,使其與其他操作的執行成本保持一致。
PEEPanEIP-2565 發布的gas 定價圖表
EIP-2718: 增加交易類型
https://eips.ethereum.org/EIPS/eip-2718
這項提案將引入一種新的交易類型,能夠以“信封”(Envelope)形式輕鬆支持多種交易類型。
當初在以太坊首次登陸主網時,僅支持一種交易類型,其字段為“To”(交易執行的位置)與“Data”(交易中所包含的一切數據)。以太坊客戶端採取同步行動,且必須保證各方在完全相同的時間內執行完全相同的變更。因此,如果“To”字段為0,則所有客戶端就必須將“Data”字段解釋為合約部署並以特定方式立即執行。
一段時間以來,用戶對於交易類型的需求不斷發展。這方面趨勢最早在EIP-155 — 對簡單重播攻擊的保護中有所體現。但客戶當時並不同意引入新的交易類型,而是更傾向於以差異化方式解釋該字段。 EIP-155 中的“偽龍(Spurious Dragon)”硬分叉是一項共識變更硬分叉,要求所有客戶就該字段的解釋達成共識。
此次EIP-2718 的發布無法直接解釋EIP-155 的複雜性問題,但有助於阻止未來更多複雜性因素的引入,同時也讓新型交易類型(例如EIP-1559 式交易)的添加變得更加輕鬆易行。
EIP-2929: 增加狀態訪問操作碼的GAS 消耗
https://eips.ethereum.org/EIPS/eip-2929
這項提案關注的是在交易中首次使用SLOAD,CALL, BALANCE, EXT與SELFDESTRUCT 時,存在的Gas 成本增加問題。
例如,首次執行會令CALL 系列函數的gas 成本由700 大幅增加至2600,SLOAD 系列函數則增加至2100。但對於各個地址或存儲槽位,這種高額費用只會產生一次。這意味著除首次調用之外,交易中任意數量的後續調用都僅耗費100 gas。
之所以上調首次調用的Gas 成本,是為了緩解以太坊中的最大DoS 攻擊向量。這種設計也有助於在無狀態以太坊環境下限制必要的見證人規模。目前,Merkle 證明所需要的見證人數量要遠大於驗證特定區塊鏈的必要數量,以太坊正在尋求新的規模控制方法。
雖然EIP-2929 還無法徹底解決證人數量問題,但至少控制住了過高的Gas 成本。另外,EIP-2929 還能降低預編譯的調用成本,消除預編譯訪問所產生的額外700 gas 開銷。
EIP-2930: 可選訪問列表
https://eips.ethereum.org/EIPS/eip-2930
此項提案的主要目標是修復現有合約中的重大變更並緩解由EIP-2929 所引發的部分Gas 成本增長。此提案將添加一種交易類型,其中包含交易操作打算訪問的目標列表(即地址與存儲鍵列表)。通過指定訪問列表,客戶可以更輕鬆地處理交易,更安全地降低Gas 成本。
EIP 管理與治理方面迎來哪些變更?
“繆爾冰川”是一項獨立的升級提案,也是當初在鏈上發布Ice Age 功能時的必要網絡要求。為了趁早與其他提案一同部署,以太坊團隊在2020 年1 月將“繆爾冰川”部署在了主網之上。
為了設計出更好的網絡升級流程,EIP 編輯、EIP 作者、客戶端開發者、ECH 以及其他社區成員組成了EIP 改進流程(EIPIP)小組。以太坊Cat Herders 還組織了一輪項目關鍵安裝調查,希望了解以太坊客戶群體中的多樣性現狀。
此外,客戶端開發者將持續研究不同建議,不斷改善網絡性能與安全性,並為後續升級打下堅實的基礎。由於升級週期較為平緩,我們可以充分利用這段時間為下一次的“倫敦(London)”升級添加更多新功能。
節點運營者或礦工需要下載以太坊客戶端的最新版本,目前可升級的Eth1.0 客戶端包括:
Geth —Gemini Sigma (v1.10.1)
OpenEthereum —OpenEthereum v3.2.0
Nethermind —v1.10.31
Besu —21.1.2.
注:如果您在以太坊公鏈上使用Besu,則必須升級至21.1.2。此版本包含所有受支持的測試網與以太坊主網Berlin 激活區塊。
相關鏈接:
https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80