以太坊核心開發者最新會議:探討以太坊合并及路線演變

原文標題:《以太坊核心開發者會議更新 006》

撰文:Tim Beiko

翻譯:ETH 中文站

這次更新與以往的有點不同。首先,我決定轉移到 Mirror 發布更新。使用這個用于 1559 NFT 項目的平臺是很不錯的體驗,而且我一直在找機會再次使用它。我會在 HackMD 保留更新列表,這樣便于在一個地方輕松找到它們。

第二,由于我們現在的工作重點在合并 (The Merge) 上,本文其實不算是一篇「更新」,而是對走到當前架構選擇的路線圖演變的深入探討,幾周后,會有一篇類似的文章,詳細介紹以太坊網路在合并后將如何運作。

合并史前史📜

合并將把以太坊目前的工作量證明 (PoW) 共識算法轉為在信標鏈上運行的權益證明 (PoS) 機制。這個設計是「以太坊 2.0」路線圖多次迭代的結果,讓我們回顧一下過去幾年路線圖的變化吧。

階段 0️⃣, 1️⃣, 2️⃣

幾年來,權益證明和分片的研發是彼此獨立的,在 2018 年臺北的一次研討會上,大家決定將這兩項研究計劃統一起來,形成一個分三個階段的「以太坊 2.0」路線圖,Ben Edginton 在這篇文章里對當時的研討會和總的理念作了非常好的總結,正是在這次活動中,Hsiao-Wei 展示了這張現在廣為人知的「以太坊 2.0」簡圖:

來源:https://docs.google.com/presentation/d/1G5UZdEL71XAkU5B2v-TC3lmGaRIu2P6QSeF8m3wg6MU/edit#slide=id.g3c326bb661_0_298

這張圖展示了當時新路線圖的每個階段將交付的內容:

  • 階段 0 將帶來信標鏈
  • 在階段 1,會加入數據分片
  • 在階段 2,在每個分片加入虛擬機,以在系統里實現計算,

分片的數量最初定為 100,然后提高到 1024,最近又調低到 64,

提早合并 🌅

隨著信標鏈的工作在 2018 年開啟,很明顯,這個分三個階段的以太坊 2.0 路線圖將需要幾年時間才能完全交付,伴隨著使用以太坊人數的快速增長帶來的成長陣痛,這帶來了工作量證明區塊鏈研究計劃的復蘇。在 2018 年的 Devcon IV 上,「Ethereum 1.x」這個術語被提出,用于涵蓋這些研究計劃。其中最重大的一項是無狀態以太坊 (Stateless Ethereum),這個范式會把未被訪問的狀態從網路中移除,以限制狀態的膨脹速度。

一方面有越來越多的關注放在讓 PoW 鏈變得長期可持續上,另一方面開發者們意識到信標鏈可以比以太坊 2.0 路線圖的其他部分更早實現,結合兩者后出現了一個「提早合并」的提案。這份提案把現有的 EVM 鏈作為以太坊 2.0 系統的「分片 0 」來啟動,這樣不僅會加快搬到權益證明的速度,還會使應用層的過渡更順滑,因為搬到權益證明不需要在應用層上做遷移,

這提案出來不久,Danny Ryan 在他的《Eth1+Eth2 客戶端關系 (Eth1+Eth2 client relationship)》的文章里探索了 我們可以如何通過利用現有 Eth1 客戶端實現提早合并。這將大大減少交付一個合并后系統和利用客戶端的開發工作,因為 Eth1 客戶端已經在主網上久經沙場了,按這條路走下去還可以給研究者更多時間解決階段 1 和 2 的開放性問題 (請看這里),和無狀態以太坊 (這仍然是非常活躍的研究領域),

以 Rollup 為中心的路線圖 🎯

很快到了 2020 年末:階段 0 此時的進度已經達到 99%,信標鏈很快就要啟動了,盡管在階段 1 的工作進展順利,但將在階段 1 引入的分片上實現計算功能的階段 2 仍然有很多未解決的問題:

  • 如何從當前的 EVM 鏈順滑過渡到分片的虛擬機?
  • 從性能上看,有哪些替代虛擬機能被部署?
  • 我們要如何確保各種虛擬機是真的安全?
  • 如何協調所有虛擬機上的狀態和余額?
  • ……

同時,rollup (例如二層的擴容方案) 方面正發生非常快速的進展,多個團隊公布要上測試網,且取得令人鼓舞的早期成果,

大約在這個時候,Vitalik 在 Ethereum Magicians 論壇上發表了長文,論述我們應該把短期和中期的擴容工作集中在 rollup 上。它們不僅會在階段 2 完成前上主網,還會是階段 1 的最大受益者,Rollup 會生成大量數據,而分片可以為它提供比 EVM 鏈消耗更低的存儲。下面是文章的截圖:

這種方法將對階段 0-2 路線圖產生幾方面的影響。具體如下:

  • 階段 0 (信標鏈) 當時正處于部署主網前在測試網上運行的階段,一旦 PoW 鏈準備好,信標鏈就可以成為共識層引擎,而不需要等到階段 2 以后;
  • 階段 1 (數據分片) 的實現還需要幾年時間,它從擴容的關鍵障礙變成一項增量改進,它會減少已經開發出來的擴容方案 (例如 rollup) 的開銷;
  • 階段 2 (分片執行) 是有最多開放性研究問題且更復雜的功能,它可以在幾年后推出,或完全取消,對擴容路線圖沒有任何影響,

研究社區快速就這個提案聚集起來,并在一個月內發表了一篇 ethresear.ch 文章,詳細介紹了當前這個合并計劃!

當前 & 未來的路線圖 🗺

可執行信標鏈⛓

當前的合并架構在首次于 2020 年 11 月由 Mikhail Kalinin 發表的《可執行信標鏈 (Executable Beacon Chain)》上得到詳細說明。簡言之,它結合了多次迭代的以太坊 2.0 路線圖的洞見:

  • 信標鏈已經啟動了,現在可以作為共識引擎來使用;
  • Rollup 是擴展計算的最佳短期解決方案;
  • 當前的 Eth1 客戶端是作為合并后執行層的最佳基礎;
  • 搬到權益證明可以通過對當前運行的應用影響最小的方式實現

Mikhail 提議中的一個重大變更是,與其讓當前的 EVM 鏈成為」分片 0」,不如直接與信標鏈連接,

這是一個簡單但重要的見解——Eth1 執行層客戶端已經是以共識算法可換的方式構建的。主網使用工作量證明,而測試網和私人以太坊網路使用的是權威證明 (proof of authority) 共識算法 (clique、IBFT 等)。

在文章里,Mikhail 提議直接把權益證明作為客戶端使用的新共識算法,換句話說,就是把當前的工作量證明鏈與信標鏈合并,下面由 Trent Van Epps 制作的這張圖很好地說明這個變化:

來源:https://twitter.com/trent_vanepps/status/1415741658067517441/photo/1

這種方法將最大程度地減少 PoW 鏈上客戶端團隊要做的工作,同時仍然帶來「提前合并」和「以 Rollup 為中心路線」的所有好處 [1]。

Rayonism 項目☀️

為了驗證可執行信標鏈架構的可行性,在名為 Rayonism 的長達一個月的黑客松里,客戶端進行了原型設計,

在幾周內,Eth1 和 Eth2 客戶端的各種混合組合作為合并后的客戶端在 EVM 上運行交易,通過信標鏈達成共識。

高度概括來說,現在的 Eth2 節點變成作為網路的共識層,而現在的 Eth1 節點則作為其執行層。共識層的功能擴展為把最新的鏈頭資訊發送給執行層,并向執行層請求區塊。執行層仍然負責處理區塊、廣播交易、存儲和管理狀態,和處理 JSON RPC 請求。

這個實驗驗證了可執行信標鏈的架構是合理的,且可以用作過渡到權益證明的基礎,現在這個過程被稱為合并,

PoW -> PoS 的過渡 ⛏

Rayonsim 項目里沒有測試的是從真正的 PoW 網路過渡到運行中的 Pos 網路,經過幾次迭代后,現在已經大致敲定了一份規范。

為了實現從工作量證明到權益證明的過渡,在客戶端里需要設置一個 TERMINAL TOTAL DIFFICULTY (終結總難度),當發現區塊上的難度超過了工作量證明鏈的難度時,客戶端會進入過渡模式,它們會開始監聽權益證明層的資訊來達成共識,一旦共識層最終敲定的一個區塊的難度超過了 TERMINAL TOTAL DIFFICULTY,執行層將完全停止監聽和廣播 PoW 區塊資訊。這樣,合并就完成了🎉!

對于應用,這不會對合約和用戶造成任何影響。有一些操作碼需要更新,但就僅此而已。對于信標鏈節點的運行者,在合并中需要選擇一個執行引擎,同樣地,如果你在工作量證明網路運行一個節點,在合并中需要選擇一個共識客戶端,隨著合并工作的開展,你可以預期會有多個開發者測試網、教程和會議來討論這些問題,

接下來的工作🛠

盡管合并的總體方案已經確定了,客戶端團隊還有一長串的事情需要在未來幾個月內完成,大部分要做的事都可以在 這里 追蹤到,值得關注的包括確定合并后的同步協議、為整個過程設置創建集成測試、上線開發者測試網并在不利條件下運行它們,以及為過渡期間的各種意外情況做計劃。

如果你想深入了解實際的規范,EIP-3675 詳細列出執行層客戶端需要的變化,而共識規范中的 merge folder 詳細列出了共識層的變化,

當事情稍微穩定下來,請期待另一篇深入以太坊客戶端在合并后將如何工作的文章,謝謝你的閱讀,下次再見👋🏻!

感謝 Danny Ryan、Trent Van Epps 和 Mikhail Kalinin 對本文草稿的反饋。

[1] 一個值得注意的變更是「無狀態以太坊」不再是過渡到權益證明的先決條件,

[2] 在過渡階段根據總難度而不是區塊或 slot 號可以更好處理重組情況,想了解更多,請參見 EIP-3675 里的 “Transition process (過渡過程)” 部分。

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧