推薦: PANews 跨年派對開啟!參與瓜分2022新年紅包!

更多有關加密世界2021年回顧,2022年展望請關注專題: 回顧Crypto 2021,展望2022

編譯: ETH中文

原標題:以太坊主網2021 年終回顧

以太坊基金會的Tim Beiko 在11 月做了一次主題為《理解轉換到權益證明的過程》的演講。在這次的分享裡,他回顧並整理了以太坊主網在2021 年裡進行的四次硬分叉,分別概述進行了哪些方面的改進;梳理了以太坊2.0路線圖的演變過程,解釋了為什麼目前以rollup 為中心以及採用可執行信標鏈的架構;詳細剖析了合併後的以太坊架構以及過渡的發生過程;最後回顧了2021年客戶端團隊探索合併的實現和進行測試的歷程,並交代了當前的進度以及未來的實現計劃。

這個演講非常適合作為以太坊主網在過去一年的總結,ECN 特此譯製了這個視頻的演講部分,並附上相關的文章資源作為補充和索引,方便讀者重溫與整理。

2021 年以太坊的四次硬分叉

柏林昇級(四月)

納入的EIP:

➤ EIP-2565:模冪運算Gas 開銷(ModExp Gas Cost)

對之前引入模冪運算預編譯模塊的EIP-198 (大數模冪運算) 進行重新重定價,該模塊使我們能引入許多需要模冪運算的密碼學算法,比如RSA 簽名驗證。 EIP - 2565 提議降低了該模塊ModExp (0x00..05) 的gas 開銷,使其與執行其他操作的開銷水平相仿。

➤ EIP-2718:類型化的交易信封(Typed Transaction Envelop)

這份提案引入一種新的交易類型,它是一種交易信封,可以更易於支持多種交易類型。以太坊一開始上主網時只有一種交易類型,帶有字段“To"(指定交易發送的目的地) 和“Data"(在交易中包含任意數據),這使得以太坊客戶端必須步調一致,確保在完全相同的時間做完全相同的變更。後來,隨著交易類型發生變化,在偽龍(Spurious Dragon) 硬分叉時納入了EIP-155 (重放攻擊的簡單防護),允許客戶端對字段有不同的解讀。 EIP-2718 無法解決由 EIP-155 引入的複雜性,但可以防止未來再引入更多的複雜性,使得加入新的交易類型變得更簡單,例如EIP-1559 類型的交易。

➤ EIP-2929:提高狀態訪問操作碼的Gas 開銷(Gas cost increases for state access opcodes)

這份EIP 提高了一筆交易在首次調用SLOAD, CALL, BALANCE, EXT 和SELFEDESTRUCT 時的gas 開銷。但值得注意的是,對每個地址或存儲槽,這樣的高開銷僅發生在第一次觸發,隨後的多次調用每次僅消耗100 gas。提高這些gas 開銷一方面可以化解以太坊協議上仍保有的最大DoS 攻擊向量的影響,另一方面是為以後實現無狀態以太坊限制見證數據的大小。

➤ EIP-2930:可選的訪問列表(Optional access lists)

這份提案的目的是修正EIP-2929 對現有合約帶來的破壞,並緩解gas 開銷增大帶來的問題。此提案新增一個交易類型,它包含一個交易計劃會訪問的訪問列表(內容是地址和存儲項鍵)。通過指定一個訪問列表,客戶端可以更容易處理交易,而gas 消耗量也因此可以安全地降低。

相關閱讀:

柏林硬分叉後的gas 成本

以太坊柏林昇級公告

倫敦升級(八月)

納入的EIP:

➤ EIP-1559: Eth1.0 費用市場變更(Fee market change for ETH1.0 chain)

EIP-1559 是以太坊史上最令期待的變更之一,也是倫敦升級裡帶來最大變更的EIP。這份EIP 將在網絡區塊裡引入“基本費用(basefee)",它會追踪gas 價格,這些價格來自網絡將接受的、基於對區塊空間需求的交易。這意味著錢包和用戶將可以更容易預測他們交易的價格。另外,EIP-1559 新增了一種交易類型,用戶可以指定他們願意支付的最高限額,當他們把這個最高限額費用發送給礦工時,會獲得最高限額費用減去基本費用與礦工小費之和的差值退款。最後,這份EIP 還將導致部分交易費被燒毀,這一點被社區的大部分人認為是以太坊網絡經濟上的一個重要改善舉措。

➤ EIP-3198: BASEFEE 操作碼(BASEFEE opcode)

這份EIP 是與EIP-1559 搭配的。它只是簡單添加了一個BASEFEE 操作碼,它返回的是執行交易所在的區塊的基本費用。這將使得智能合約可以在鏈上訪問這個值,這有助於提交欺詐證明和創建去信任的gas 價格衍生品。

➤ EIP-3529: 減少gas 返還(Reduction in refunds)

在倫敦引入的另一個重大變更是取消了操作碼SELFDESTRUCT 的gas 返還和減少了操作碼SSTORE 的gas 返還。雖然設立返還的初衷是希望激勵開發者在可能的情況下清除狀態,然而現實是,這導致了Gas Token的出現,反而增加了狀態大小。利用這些返還的gas,Gas Token 可以在gas 價格很低的時候填滿狀態,然後在gas 價格上升的時候獲得執行這些交易的返還。此外,gas 返還還會導致區塊執行時間的變化。 EIP-3529 把"執行gas 返還"從50% 下調到最多20%。這一變更將有助於抵消由EIP-1559 引入的額外區塊大小變化,因為EIP-1559 允許區塊使用的gas 是現在gas limit 的兩倍。

➤ EIP-3541: 拒絕以0xEF 字節開頭的新地址(Reject new contracts starting with the 0xEF byte)

這份EIP 將使得倫敦升級後,以0xEF 字節開頭的新合約就無法部署,它們會被保留下來以後作為識別符合EIP-3540 語義的方式。 EIP-3540 提出的EVM 對象格式(EVM Object Format, EOF) 是一種可擴展和版本化的EVM 字節碼容器格式,會在部署時進行一次性驗證。因此,EIP-3541 是為以後更廣泛的EVM 改良奠定基礎。

➤ EIP-3554: 難度炸彈延遲至2021年12月1 日(Difficulty Bomb Delay to December 1st 2021)

EIP-3554 延遲難度炸彈,也以冰河時代為人所知。難度炸彈或冰河時代是以太坊引入的一種機制,在網絡過渡到權益證明時”凍結“挖礦。由於權益證明的過渡還未準備好,我們需要推遲炸彈的”爆炸“時間。這在過去已經進行過三次:在大都會(EIP-649)、君士坦丁堡(EIP-1234) 和穆爾冰川(EIP-2384)。

相關閱讀:

倫敦升級概覽

倫敦主網升級公告及相關代碼變更

為什麼需要1559

為什麼我認為EIP-1559 的區塊容量變化無須擔心

MEV 與EIP-1559

從MEV 視角分析EIP-1559 下的交易打包市場

以太坊倫敦升級完成時(第37 期以太七日談)

EIP-3529:減少GAS 返還

信標鏈Altair 升級(十月)

Altair 是信標鏈的一次升級,它新增的功能包括:

支持輕客戶端的同步委員會

為了減少規範複雜性的激勵計算改革

修改證明獎勵,以提高激勵兼容性

單獨核算每個驗證者的怠工懲罰

懲罰參數更新為原定的懲罰水平

相關閱讀:

Altair 主網升級公告

建模分析Altair 升級的影響

Finalized no.24

Altair 升級講解(第30 期以太七日談)

各期的《共識層進展更新》

Arrow Glacier 升級(十二月)

Arrow Glacier 是另一個類似於Muir Glacier 的網絡升級。它將只包括一份EIP——把難度炸彈推遲到明年夏天,以防區塊鏈凍結,即“冰河時代(ice age)"。

相關閱讀:

以太坊難度炸彈歷史梳理

Arrow Glacier 升級公告

以太坊2.0 路線圖演變過程

在2018 年台北的一次研討會上,以太坊的核心開發者做出了一個分三個階段的以太坊2.0 路線圖,每個階段交付的內容是:

階段0 將帶來信標鏈

在階段1,會加入數據分片

在階段2,在每個分片加入虛擬機,以在系統裡實現計算。

到了2020 年末,在信標鏈快可以啟動之前,儘管階段1 的工作進展順利,但將在階段1 引入的分片上實現計算功能的階段2 仍然有很多未解決的問題。同時,rollup (即二層的擴容方案) 方面正發生非常快速的進展。多個團隊公佈要上測試網,且取得令人鼓舞的早期成果。大約在這個時候,Vitalik 在Ethereum Magicians 論壇上發表了長文,論述我們應該把短期和中期的擴容工作集中在rollup 上。它們不僅會在階段2 完成前上主網,還會是階段1 的最大受益者。

同年11 月,Mikhail Kalinin 發表的《可執行信標鏈(Executable Beacon Chain)》,提出了目前的合併架構,帶出了幾點洞見:

信標鏈已經啟動了,現在可以作為共識引擎來使用;

Rollup 是擴展計算的最佳短期解決方案;

當前的Eth1 客戶端是作為合併後執行層的最佳基礎;

搬到權益證明可以通過對當前運行的應用影響最小的方式實現

在文章裡,Mikhail 提議直接把權益證明作為客戶端使用的新共識算法。

相關閱讀:

詳解以太坊2.0信標鏈

Vitalik:以rollup 為中心的以太坊路線圖

可執行信標鏈

以太坊核心開發者會議更新006

Vitalik:以rollup 為中心的以太坊最終圖景

合併後的架構與合併過程

概括來說,合併後,客戶端將從根據PoW 鏈轉為根據PoS 鏈來決定以太坊的最新有效區塊。此外,客戶端大多數的功能,以及更重要的EVM、它的狀態,和它是如何執行交易的,都保持不變。現在的Eth1 和Eth2 客戶端分別變成以太坊的執行層和共識層(或叫做引擎)。這意味著Eth1 或信標鏈客戶端的節點運行者將需要運行堆棧的“另一半”,以擁有一個完整的驗證節點。

在合併的過程中,信標節點將監測當前的PoW 鏈,當有區塊的Total Difficulty 觸達設定的TERMINAL_TOTAL_DIFFICULTY (終結總難度) 時,該區塊就成為最後的PoW 區塊,隨後的區塊都開始由信標鏈上的驗證者構建和證明。當這個區塊在信標鏈上被最終敲定時,合併就完成了。

相關閱讀:

以太坊核心開發者會議更新007

以太坊The Merge 重點摘要

實現合併的歷程與計劃

實現合併的三次標誌性事件為:四月進行的Rayonism 黑客松、十月進行的Amphora 工作坊,以及十一月開啟的Kintsugi 計劃。

為了驗證可執行信標鏈架構的可行性,在長達一個月的Rayonism 黑客松裡,客戶端團隊進行了原型設計,搭建了測試網Nocturne,證明了可執行信標鍊是一個可行的架構。

到了十月,在Amphora 工作坊活動中,客戶端團隊再次聚集在一起解決規範上懸而未決的問題。活動最後,客戶端團隊搭建了一個開發測試網,它跑完了所有客戶端組合的轉換過程,並對合併後的區塊做了最後敲定。

Amphora 活動後,經歷了四個短暫的開發測試網,開發者推出了Kintsugi 測試網計劃。在十一月到十二月中旬這段期間,每週開發者會上線一個新的開發測試網,並基於上一個進行改進。在聖誕假期期間,已經上線了一個長期的公共測試網,並鼓勵大家參與測試。

目前實現工作已經完成了80%~90%,Arrow Glacier 把難度炸彈推遲到明年六月,也就是說明年六月前更多的是測試工作。

相關閱讀:

Amphora: 一個合併的重要里程碑

Kintsugi 合併測試網公告