原文標題:《以太坊核心開發者會議更新 001》
撰文:Tim Beiko
歡迎閱讀 AllCoreDevs 系列第一期總結文章。本系列文章旨在總結核心協議開發的進展,以便以太坊社區更好地理解與消化。「AllCoreDevs 更新」 系列可以說是「核心開發者會議視訊 & 文字記錄」 以及我的推特總結的姐妹篇,
希望我的總結可以將核心開發者們正在討論的問題分享給以太坊社區更廣泛的人群中,因此更多人可以了解以太坊社區正在發生什么;并對其進行反饋;甚至貢獻自己的解決方案,
摘要👀
- 柏林硬分叉已在測試網中上線:是時候在測試網上開始應用和錢包的開發了!
- 倫敦硬分叉在準備階段:EIP-1559 實現正在進行中,并且為了趕在 7 月或 8 月的最后期限前完成升級,升級的范圍很窄,
- 上海硬分叉的升級重點仍在討論中:要么就是核心開發者們將他們的精力都集中到 eth1->eth2 合并的工作中,要么就是當合并原型制作之后,部署那些呼聲比較高的 EIP
柏林升級
柏林升級內容已經在所有主要測試網部署,并且將在 4 月 14 日,區塊高度 12,244,000 上線主網,此次升級將提高以太坊的安全性,并為倫敦升級中的 EIP-1559 部署做好準備,如果讀者正在運行一個節點并且還沒更新客戶端版本,盡快去更新!至于客戶端更新的版本,《以太坊柏林升級公告》內有公布。
在安全方面,訪問以太坊狀態的操作碼的 gas 費與其計算成本相比價格過低了,而 EIP-2929 可以解決該問題。利用操作碼 gas 費過低這一點,惡意參與者可以創建重復調用這些操作碼的區塊,而這些區塊的處理速度比普通區塊慢幾個數量級。EIP-2929 通過提供 gas 成本約 3 倍來緩解這一問題。還有客戶端方面,改進了資料庫管理。比如 Geth 客戶端的快照資料庫格式也有助于更有效地處理狀態訪問較多的區塊,
然而為了減輕 EIP-2929 對用戶的負面影響,柏林升級引進了與其配套的 EIP-2930。它允許用戶在提交交易時指定一個「訪問列表」,以使用低于 2929 規定的 gas 費,這其中 gas 費的計算方法有些復雜,但是,從高層次來看,如果客戶端提前知道交易將涉及狀態的哪一部分,他們就可以預加載,對這些訪問收取更少的 gas 費,我鼓勵大家參考這個 EIP 進行精確的計算,
對于想要體驗生成「訪問清單」功能的應用和錢包開發者,Geth 客戶端很快就會上線相關的工具了🔜 可以 點擊這里 查看開發進程。更廣泛地說,如果你是一名應用或錢包開發者,現在是時候在測試網上測試柏林升級的內容了!
關于 EIP-1559,柏林在兩個方面提供幫助,首先,EIP-2929 解決了 EIP-1559 的最大風險:DoS 攻擊會在比現在大兩倍的區塊上進行,這是客戶端開發者們反對 EIP-1559 的首個原因,并且每次在核心開發者會議中討論 1559 時都會討論到這個問題。換句話說,如果沒有 2929,我們就不能穩妥地上線 1559。
第二,柏林通過 EIP-2718 在協議級別引進了對多種交易類型的支持,EIP-2930 引進的「訪問清單」創建功能需要一種新的交易類型,因此 EIP-2718 提供了一個全面的框架以支持多種交易類型,這意味著,在柏林中實現 2718 和 2930 允許客戶端團隊提前做架構基礎工作,為支持 1559 類型的交易做好準備,
最后,大家對柏林升級還有一個憂慮,擔心 EIP-2929 將提高 DeFi 交易的成本,然而 EIP-2930 的引進會抵消掉一部分 (并不會抵消全部)。防止這類型交易 gas 費提高的明顯解決方案就是提高區塊 gas limit,
不過,這樣做總是有好有壞:提高區塊容量會加速狀態增長,這導致節點與網路同步更加困難,另一方面,不提高區塊 gas limit 就會提高網路用戶的交易成本 (支付昂貴的 gas 費),或許這樣是一個比較公正的折大陸案:引入 2929 降低 DoS 的風險,然后緩慢地提高區塊容量,直到 2929 所提高的 gas 費被逐漸抵消。
倫敦升級
隨著柏林硬分叉即將上線主網,核心開發者現正專注于下一個網路升級:倫敦。此次升級有點特殊,由于難度炸彈將發生在 8 月份,因此倫敦升級必須在這之前部署。也就是說,在前一個升級部署之前就要開始下一個升級 (倫敦) 的開發與更新,核心開發者們還是首次遇到這樣的情況。
倫敦升級會于主網部署大家翹盼已久的 EIP-1559,如果讀者對該 EIP 比較陌生,我整理了一個資源列表,并且將過去一年的開發過程文檔化,
譯者注:ECN 歸檔了 1559 更新 的譯文,
光是這個 EIP 對以太坊帶來的改變就比柏林升級所有 EIP 加起來要大,而且實現和測試時間都比以往升級的時間短,因此核心開發者正試圖縮小倫敦升級的范圍,以便按時完成。到目前為止,倫敦升級僅包括 EIP-1559 和 EIP-3238 (提議推遲難度炸彈至 2022 年第二季度)。等到 1559 的實現與測試結束之后,核心開發者們將處于一個更主動的位置,到那時再決定還要加哪些 EIP。
上海升級
由于倫敦的升級范圍被刻意縮小了,核心開發者們已經開始對上海升級進行高層次的規劃,我們有以下兩種主要的可能性:
首先,我們可以實現那些不可能在倫敦部署的 EIP,如 :
- EIP-3074:允許「資助交易」等
- EIP-2537:增加對 BLS-12381 曲線 (被信標鏈使用) 的支持
- EIP-2327:對 Solidity 和 Optimism 團隊有益
- EIP-2935:對輕客戶端和無狀態客戶端有幫助
或者,社區越來越關注共識 (eth2) 與應用 (eth1) 層之間的合并,簡單來說就是合并™️,Eth2 規范庫里已經收錄了「簡化合并規范」提案的 PR,并且非常接近于客戶端團隊應該能夠制作的原型,
盡管合并規范可能比較簡單,但為了能夠讓應用層的客戶端能夠將信標鏈作為它們的共識引擎,仍然有幾個工程問題需要解決。讓兩邊的客戶端開發者關注這些問題是我們發現和解決問題的方式,
客戶端團隊仍需要更好地消化這些規范,并開始構建原型,然后他們才能決定我們是否已經準備好將所有的精力都轉向合并工作上,或者在所有人參與之前是否需要一個小的工作小組來完成更多的工作。為了加速這一進程,來自應用和共識層的客戶端將在 Scaling Ethereum 黑客松期間開發最新規范的原型。
擴容以太坊黑客松活動的結束時間剛好與倫敦和 Altair 升級 (將在 6 月進行) 大部分工作完成的時間相吻合。這意味著原型應及時準備好,以便于我們做出關于上海升級的決定。🎉
以上是本期更新內容!下一期 AllCoreDevs 會議將在臺北時間 4 月 2 日,星期五, 22:00 進行。下次見!