header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

以太坊核心開發者會議更新:對當前架構選擇路線圖演變的深入探討

閱讀本文需 16 分鐘
回顧以太坊Eth1<->Eth2合併演進之路,介紹合併後將如何運作。
原文標題:《以太坊核心開發者會議更新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」簡圖:


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

來源


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


·階段 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 cpent relationship)》的文章裏探索了 我們可以如何通過利用現有 Eth1 客戶端實現提早合併。這將大大減少交付一個合併後系統和利用客戶端的開發工作,因爲 Eth1 客戶端已經在主網上久經沙場了。按這條路走下去還可以給研究者更多時間解決階段 1 和 2 的開放性問題 (請看這裏),和無狀態以太坊 (這仍然是非常活躍的研究領域)。


以 Rollup 爲中心的路線圖


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


·如何從當前的 EVM 鏈順滑過渡到分片的虛擬機?


·從性能上看,有哪些替代虛擬機能被部署?


·我們要如何確保各種虛擬機是真的安全?


·如何協調所有虛擬機上的狀態和餘額?


......



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


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


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


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


·階段 0 (信標鏈) 當時正處於部署主網前在測試網上運行的階段,一旦 PoW 鏈準備好,信標鏈就可以成爲共識層引擎,而不需要等到階段 2 以後;


·階段 1 (數據分片) 的實現還需要幾年時間,它從擴容的關鍵障礙變成一項增量改進,它會減少已經開發出來的擴容方案 (例如 rollup) 的開銷;


·階段 2 (分片執行) 是有最多開放性研究問題且更復雜的功能,它可以在幾年後推出,或完全取消,對擴容路線圖沒有任何影響。



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


當前 & 未來的路線圖


可執行信標鏈⛓


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


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


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


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


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



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


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


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


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

來源


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


Rayonism 項目☀️


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


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


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


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


PoW -> PoS 的過渡 ⛏


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


爲了實現從工作量證明到權益證明的過渡,在客戶端裏需要設置一個

TERMINAL TOTAL DIFFICpTY

(終結總難度)。當發現區塊上的難度超過了工作量證明鏈的難度時,客戶端會進入過渡模式,它們會開始監聽權益證明層的信息來達成共識。一旦共識層最終敲定的一個區塊的難度超過了 T

ERMINAL TOTAL DIFFICpTY

,執行層將完全停止監聽和廣播 PoW 區塊信息。這樣,合併就完成了!


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


接下來的工作


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


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


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


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


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


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


原文鏈接



歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交