以太坊核心開發者會議:深入探討以太坊合併及其路線演變

原文標題:《以太坊核心開發者會議更新 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 (過渡過程)" 部分。

來源鏈接:hackmd.io

本文鏈接:https://www.8btc.com/article/6681564

轉載請註明文章出處

(0)
上一篇 2021-09-06 09:06
下一篇 2021-09-06 09:34

相关推荐