倫敦升級之後,接下來最重要的是以太坊1.0鍊和2.0鏈的合併及升級。
這會是一個更為艱難的過程,其中包含目前rollup layer2的進程,也包含分片驗證和以太坊2.0客戶端等開發進度關係。
不過相比於其他小的開發,社區用戶不用擔憂,只是上線早晚的問題,而1.0鍊和2.0鏈的合併,是一個代表了鏈取捨的問題,對鏈的參與者尤為重要。
以太坊2.0在2020年12月啟用。啟用後,以太坊節點的代幣質押開始,這些節點搭建的信標鏈,就是未來以太坊主力的驗證網絡,這些驗證節點未來還會分成各個分片執行任務。
這是在大合併後的以太坊,目前還沒有開始合併,經過各類消息推論,合併後,以太坊1.0鏈會慢慢消亡,最終淪為一條廢鏈。但從原來通過礦機支撐的網絡過渡到信標鏈,其實過程會是有風險的。對於以太坊1.0鏈上已經產生的豐富的世界,過渡過程可能無法原封不動的全部遷移過去。
為了合併,4月30日消息,以太坊研究組織中的Protolambda啟動實驗性質的Eth1-Eth2合併測試網Steklo。該網絡有效期只有一天。
網絡上有7個客戶端,4個共識客戶端:Teku、Lighthouse、Prysm和Nimbus;3個執行客戶端:Besu、Geth和Nethermind。
Protolambda表示,此次合併對eth1-eth2組合進行了一些更改。使用Eth1和Eth2客戶端構建測試網,並在其上進行構建分片原型。
不過僅以測試網測試,對於一次龐大的合併過程,有些簡單。測試僅是流程預演。
Mikhail Kalinin在以太坊2.0技術規範中其實已經發表了關於將以太坊1.0合併至2.0的討論稿(WIP),該方案是一個“最小化合併”方案,該方案的基礎思路是構建“可執行信標鏈”,也就是將信標鍊和Eth1.0做出一個耦合狀態,將Eth1.0數據作為信標鏈的“數據分片”之一提供可用數據,涉及到對Eth1.0客戶端的修改設計。
Eth1如果作為分片,假設其通過信標鏈與數據分片通信方式進行通信,但需要將Eth1放在專用分片上(即獨立於信標鏈並經常“交聯”信標鏈),這會給共識層增加了不必要的複雜性,例如增加在分片上發布數據和訪問分片數據之間的延遲。
所以,推出最小化合併的方案裡,採用了一些“提交鏈”數據交互方式,或者一些側鏈的同步方式。
即通過將eth1數據(事務,狀態根等)嵌入信標塊並讓信標提議者有義務生成可執行的eth1數據來擺脫這種複雜性。
也就是將eth1鏈的數據同步在信標鏈,然後讓信標鏈驗證節點通過投票驗證數據。
在這個提案裡最重要的是修改Eth1引擎的部分功能,詳細為如下修改:
當驗證者打算提出一個信標塊時,它要求eth1-engine創建eth1數據。然後,將Eth1數據嵌入正在生成的信標塊中。如果eth1數據無效,它也會使攜帶該數據的信標塊無效。
如果以Eth1 Shard為中心,設計eth1-engine和eth2-client鬆散耦合併通過RPC協議進行通信,Eth1引擎需要不斷維護網絡堆棧的事務池和狀態下載器,並保留eth1塊的存儲。
這個過程裡刪除了eht1塊的概念,可以從信標塊攜帶的eth1數據中綜合創建eth1塊或使交易驗證不需要eth1塊,而是使用eth1數據,調整後,需要使用可執行數據術語來表示eth1狀態根、交易列表(包括收據根和bloom過濾器)、coinbase、時間戳等以及eth1狀態轉換功能所需其他數據位數據。
總體來看,eth1加入eth2還是複雜的,所以讓以太坊2.0的階段1和階段2會慢很多。
不過如果以太坊1.0鏈完全停止,重置後,或許是最簡單的處理方式。
以太坊ledgerwatch的開發者AlexeyAkhunov曾提出的,以COSMOS升級經驗提出了重置以太坊的推論。
Cosmos Hub從版本1到版本2,然後從版本2到版本3的升級是通過重新啟動區塊鏈來完成的。升級後,節點運營商必須關閉其節點,然後生成Cosmos Hub狀態的快照,然後有效地使用該快照作為啟動第一個區塊的新區塊鏈的起源。
任何想要加入新Cosmos的人,需要下載CosmosHub-3的所有塊(而不是CosmosHub-1或CosmosHub-2),然後廣播它們。
不過這樣,首先是直接把以太坊1.0鏈銷毀掉,並且需要把以太坊1.0鏈的所有塊下載。但下載的塊,哈希是顯示的,但其中的狀態其實是隱式的。同步的快照不僅僅是塊,還有狀態。
如果把重置稱為ReGenesis,在每1M個塊(大約6個月)執行一次ReGenesis,則可以在BitTorrent,Swarm,IPFS等上存儲狀態快照以及區塊鏈文件。
按照eth1和eth2信標鏈的同步來看,需要復雜多次的快照同步或更換算法,如果可以重置以太坊1.0鏈升級,可能以太坊的複雜性會下降。
為了帶來以太坊2.0的PoS,以太坊社區可算是想過了很多辦法,不過從技術論壇裡的討論來看,eth1和eth2的同步,在過渡階段一定會發生。已經有較為明確的方案。當過渡執行開始後,社區內重視的重點其實會是算力處置、獎勵以及eth1鏈的最終處置問題。其中大問題需要等待執行過程來最終確認,就讓我們拭目以待吧。