延期多時的以太坊柏林升級(Berlin Upgrade)即將上線,這是繼以太坊伊斯坦布爾和穆爾冰川升級之后的最新一次升級。因 Geth 客戶端的過于集中化的問題,本預期 2020 年 7 月上線的柏林硬分叉一路延期至今。
柏林升級計劃在以太坊主網區塊高度 12244000 時上線,具體時間可能會因為出塊時間的波動而提前或推遲。目前預計會在臺北時間 4 月 15 日下午四點左右發生,
為什么是柏林?
柏林 (Berlin) 僅僅是針對此次以太坊網路升級的一個命名。伊斯坦布爾升級之后,以太坊網路升級均將采用舉辦 Devcon 的城市(柏林、倫敦、上海等)和順序命名,
柏林升級意味著什么?
柏林升級意味著以太坊底層協議的一次變更,
以太坊的去中心化本質使得網路升級成為難題,需要社區和以太坊客戶端開發者就某些協議變更達成共識,達成共識的協議變更會被寫入各個以太坊客戶端,例如 Geth、Open Ethereum、Besu 和 Nethermind,在一個特定的區塊高度上啟動網路升級,
此次柏林升級主要優化以太坊的主網性能,優化合約,涵蓋 Gas 效率、以太坊虛擬機 (EVM) 讀取代碼方式的更新,以及防止拒絕服務 (DDOS) 攻擊等。在部署到主網以前,此次升級會先在 Ropsten、Goerli 和 Rinkeby 測試網上運行,
柏林升級包含哪些更新?
此次升級包括至少五個 EIP,分別是 EIP-2565 、EIP-2315 、EIP-2929 、EIP-2718 和 EIP-2930 。但在 3 月 5 日的第 107 次核心開發者會議上,全體通過把 EIP-2315 移出升級列表,
EIP-2565: 降低 ModExp 預編譯合約的成本
該提案是對此前的 EIP-198 的重定價,EIP-198 為求模求冪運算引入了一個預編譯模塊,而 EIP-2565 降低了該模塊的 Gas 開銷,使之與執行其它操作的開銷相持平,
參考閱讀:
https://eips.ethereum.org/EIPS/eip-2565
EIP-2929: 增加狀態訪問操作碼的 GAS 消耗
該 EIP 將首次調用 SLOAD、CALL、BALANCE、EXT 以及 SELFDESTRUCT 時候的 Gas 消耗量(在一筆事物內)增加了約 3 倍,但這種高代價對任意地址或者存儲槽都只觸發一次,
提高這些操作的 Gas 消耗量是為了緩解以太坊協議仍存留的 DoS 攻擊界面。此外,EIP-2929 也有助于在無狀態以太坊實現后的環境中限制見證數據的大小,
參考閱讀:
https://eips.ethereum.org/EIPS/eip-2929
EIP-2930: 可選的訪問列表
為了緩解 EIP-2929 帶來的 Gas 消耗量增大問題,柏林升級配套引入了 EIP-2930。EIP-2930 準許用戶在提交交易時指定一個「訪問列表」讓事物指明自己計劃訪問的狀態,以使用低于 EIP- 2929 規定的 GAS 費,
參考閱讀:
https://eips.ethereum.org/EIPS/eip-2930
EIP-2718: 標準化的事務類型
該 EIP 引入了一種新的事務類型,在協議級別引進了對多種交易類型的支持,以更加便利地啟用對多種事務類型的支持。
以太坊主網上線初期,只有帶有字段 TO 和字段 Data 的一種事務類型。2016 年 11 月,以太坊網路對事物類型的需要發生了變化,偽龍硬分叉為了防止重放攻擊納入了 EIP-155。EIP-2718 雖然無法解決由 EIP-155 帶來的復雜性,但有效防止了引入更多的復雜性,并且也讓 EIP-1599 的實施變得更加容易。
參考閱讀:
https://eips.ethereum.org/EIPS/eip-2718
《The Berlin Upgrade Overiew》
作為用戶,需要做哪些準備?
作為以太坊用戶或 ETH 持有者,不需做任何事情,除非你的交易所或錢包服務商通知你需要額外步驟。
作為節點運行者或礦工,需要下載以太坊客戶端的最新版本,考慮到區塊時間的可變性,建議在預期日期前幾天就升級,柏林升級后,未升級的節點會留在不兼容新鏈的舊鏈上,將無法向升級后的以太坊網路發送 ETH,并且無法操作升級后以太坊網路中的智能合約,
下載地址:
* Go-ethereum (Geth) v1.10.1
* OpenEthereum (f.k.a. Parity) v3.2.0
* Nethermind v1.10.31
* Besu v21.1.2
* EthereumJS VM v5.2.0
參考閱讀:
《Ethereum Berlin Upgrade Announcement》
以太坊升級路線圖:EIP-1559 和 ETH2 合并
除了即將到來的柏林升級,以太坊 2021 還將迎來倫敦升級(預計 7 月)以及上海升級(預計 10 月)。
倫敦升級將會于主網部署社區爭議性較大的 EIP-1559,由于倫敦升級難度較大,而且實現和測試時間都比以往升級的時間短,因此核心開發者正試圖縮小倫敦升級的范圍,以便按時完成。
未進入倫敦升級的 EIP 將可能進入上海升級(可能包含 EIP-3298 或 EIP-3322)。以太坊開發者目前正就上海升級的優先級問題進行討論。其中一種選擇是,上海升級將作為另一項功能分叉進行啟動,其中包括倫敦升級中未包含的 EIP,另一種選擇則是采用 Vitliak Buterin 的快速合并提案,將上海升級作為 Eth1 <> Eth2 的合并,如果采用第一種,將上海升級作為功能分叉啟動,那么可能會在 2021 年 10 月啟動,如果是后者,則會推遲至更遠的時間啟動,