ETH2.0:它會是什麼?(一)

前言:對很多以太坊投資者來說,ETH2.0都是模糊不清的,甚至對於很多開發者來說,它也不夠清晰。那麼,作為未來的以太坊替代品,ETH2.0的發展路線圖包括哪些內容?有哪些值得我們關注的地方?本文有一個簡要的敘述。本文作者James Prestwich,來源於hackernoon,由“藍狐筆記”公眾號社群的“Sien”翻譯。

ETH2.0是什麼

ETH2.0計劃成為以太坊的替代品。在接下來的幾年裡,ETH2.0的設計者試圖把以太坊的共識系統和狀態全部囊括進來。由於涉及的範圍很廣,我們無法精確地說明ETH2.0將包含或不包含那些內容。

我們確實有一些說明,也有不少團隊在努力實施早期工作。在這個時點,ETH2.0設計者暫時計劃包含分片、Casper、state rent以及eWASM VM。初始客戶端測試正在進行中,預計將在三個月內(2019年第一季度)推出輕功能的ETH2.0測試網絡。最初,ETH2.0將從以太坊主網獲取其Ether,但設計者最終計劃改變這種關係:把ETH2.0作為主鏈,以太坊1.x則是在它管理下的分鏈。

這對工程師來說,意味著什麼?

如果你是Solidity或Dapp開發者,希望部署ETH2.0智能合約,那麼,未來會有很多變化。ETH2.0是對以太坊的完全取代,它將改變我們在編寫智能合約時做的很多假設。它計劃多年分階段推出,這跟產品發佈週期更相似,而不像是產品升級週期。

為ETH1.x編寫的工具和合約將來可能需要完全重新設計和編寫。幸運的是,還有好幾年時間來準備生態系統。為了幫助推動這項工作,我想討論當前的路線圖,並介紹其中的一些工程分支。

分階段推出

目前來看,分片路線圖已列出七個階段。只有階段0有詳細的規範說明,它接收定期更新。階段1的規範說明還不精確,且還沒有進入活躍的開發階段。在階段1之後,路線圖變成了一系列的目標,而不是技術文檔。例如,在階段2,路線圖鏈接到ethresear.ch的次數是鏈接到github的三倍。因為所有未來的階段更像是推測而不是工程落地,我們的具體討論主要限於階段0,階段1,或階段2,並且我們討論了幾個後續階段的可能的粗略方向。

ETH2.0:它会是什么?(一)

階段0 —— Beacon鏈

階段0引入“beacon 鏈”。ETH2.0設計者希望beacon鏈成為ETH2.0的生態系統的樞紐,成為所有其他分片的安全和驗證的根源。一旦部署,beacon鏈將使用Casper FFG(Casper the Friendly Finality Gadget)運行PoS。Beacon鏈早期迭代設計儘可能簡單,這也是階段0將不支持智能合約、賬戶、資產轉移,也不包括任何分片的原因。在beacon鏈上的Ether將不會在鏈上轉移,這意味著用戶也無法將其存入交易所。

BETH:新的Ether

Beacon ETH(BETH)是一種新的資產,僅由beacon鏈上的權益者(驗證者)使用。它通過兩種方式創建:1)作為驗證beacon鏈(以及在階段1後的分片)獎勵;2)通過ETH1.X合約,任何ETH1.X的用戶可以購買1ETH的BETH。合約將它視為“存款”。工程師可能會注意到該合約沒有取款功能。這是因為在階段0沒有辦法從beacon鏈中取出BETH。換句話說,一旦在ETH1.X驗證者註冊合約中存入Ether,ETH1.X的Ether會被有效燒燬。

Beacon鏈驗證者觀察該合約並提交存款信息到beacon鏈,它會向存款人發放新的BETH。因此,我們預計新的BETH會在ETH發送到驗證者註冊合約不久後在beacon鏈上發行。對存款的臨時審查是可能的,但在Casper的規則下,永久性的審查不太可能發生。

直到階段2才允許在beacon鏈上進行Ether代幣的轉賬,在1.X完全摺疊進分片生態系統之前,我不認為有任何方法可以將BETH轉回ETH1.X。鑑於階段0是不完整的,並且階段1也還沒有詳細規範說明,所以,可以假定BETH資產至少在兩年內會維持獨立,且不可轉移,這樣的假定似乎是合理的。

一旦階段2完成,BETH將可以轉移到分片;然而,ETH將不會。這不太可能造成重大的經濟困難。在過去,像BETH這樣的預發佈和輕功能代幣,已經通過IOU在交易所進行交易。例如,HitBit和BitMEX 的XTZ期貨市場在Tezos眾籌期間就已經推出。如果市場對BETH有需求,我們應該會看到一個充滿活力的交易所生態系統,它支持監管的BETH交易和權益。然而,對BETH的需求似乎還不明確。BETH投資不佳,因為從ETH到BETH的單向錨定使得BETH的價格上限為1ETH。也就是說,BETH永遠不會比ETH更值錢,但可能會更低。

階段0+—權益

用戶可以在beacon鏈上存入32 個BETH權益以成為驗證者。在階段0,驗證者將只管理beacon鏈。從階段1開始,驗證者將同時管理1024個分片鏈。beacon鏈(以及每個分片鏈)將使用Casper FFG來完成區塊。

FFG是PoS算法,它對一些不良行為,比如鏈的停止和審查等,進行權益削減。聰明的讀者可能已經注意到FFG的表兄弟,Casper CBC,它在分片路線圖的“以太坊3.0”部分——雖然全面討論FFG(還有CBC!)超出了本文的範疇,但我還是建議閱讀Vitalik關於混合PoW/FFG的說明,他提到最小消減條件和FFG文件。

權益者做什麼?

分片旨在跨節點分割(分片)狀態信息,而不需要任何節點具有網絡的全景圖。因此,沒有驗證者會驗證所有分片。相反,beacon鏈將協調所有其他分片的驗證,並且所有驗證者將驗證beacon鏈。

每個週期(64個區塊或大約6.4分鐘),beacon鏈將對驗證者重新洗牌,然後把他們分配到某個分片。分配到一個分片的一組驗證者稱為委員會。委員會的目標是128個成員。在階段0,這意味著每隔6分鐘beacon鏈將選擇可用的驗證者以在接下來的6分鐘內組成委員會。

在階段1,beacon鏈將為1024個分片中的每一個分配驗證者委員會。這個精確的方法很複雜。它涉及多階段隨機數生成過程以及可驗證的延遲功能,以進一步阻止操縱委員會選擇過程的嘗試。

ETH2.0隨機選擇委員會,同時經常輪換委員會,因為他們的工作非常重要。委員會負責保護其分片的安全性、活躍性以及完整性,同時證明beacon鏈上的分片狀態。它們是beacon鏈能夠獲知分片狀態的唯一方式,反之亦然。

從所有驗證者池中隨機選擇他們減少了委員會作為整體撒謊或欺騙的可能性。對他們進行輪換旨在減少惡意委員會可能造成的危害。換言之,惡意節點或試圖最大化利益的節點很難用選擇委員會的方式來攻擊網絡的任何部分。此外,如果他們通過概率獲得對分片委員會的控制,他們的控制權也不會超過64個區塊。

工程師的PoS

儘管ETH1.X的PoW和ETH2.0的PoS的哲學差異的記錄是持續的過程,但值得注意的是,一些PoW和PoS功能差異確實直接影響工程師。例如,雖然PoW鏈支持無狀態的SPV證明和NiPoPow彙總的遠程狀態跟蹤,PoS禁止任何低狀態的通信。主觀性阻止輕狀態證明。換句話說,關於PoS的遠程狀態證明將包括與PoW無狀態SPV證明大致相同的數據量,但要求事先驗證整個PoS歷史。

相比之下,無狀態的SPV證明則不需要其他信息來驗證。這意味著跨分片或跨鏈應用已經在主觀的PoS環境中減少了功能性並增加了開支。

階段1 —— 分片

階段1旨在就分片鏈的內容達成共識,但不是關於它們的含義。換句話說,它是分片結構的試運行,而不是試圖用分片進行擴展。beacon鏈將分片鏈區塊視為沒有結構或含義的簡單比特集合。

分片鏈還沒有賬戶、資產或智能合約。beacon鏈為每個分片每個週期隨機選擇分片驗證者,他們只是就每個區塊的內容達成共識。只要所有委員會達成共識,並定期更新分片上的beacon鏈,至於分片區塊上出現什麼內容並不重要。

分片驗證者通過稱為交聯的過程證明分片的內容和狀態。簡單來說,委員會必須在beacon鏈中包含分片相關的可驗證信息(如Merkle根)。在階段2或更高的階段,交聯將支持跨分片通信。一旦beacon鏈從多個委員會收到給定交聯的準確性證明,beacon鏈就可以相信該交聯是分片的真實代表,而無需驗證整個分片。如果委員會對交聯的有效性持有不同意見,很顯然,其中一個委員會是有錯誤的,應該受到消減的懲罰。這是所有分片的安全之根源:驗證者的惡意行為最終會被發現,且會被beacon鏈懲罰。

階段1沒有任何特別有趣的東西。根本上來說,這是交聯的引入階段,也是分片引用beacon鏈的對稱機制。設計者似乎相信這些機制會起作用。主要的開放性問題圍繞規範說明和實施策略。考慮到階段0花費了大約一年多的時間才完成合理水平的規範說明,我相信階段1會花費差不多同樣長的時間。有趣的是,階段0的實施和規範說明同時進行。

即使在今天,距離測試網發佈不到三個月,階段0的規範說明也會定期更改。這意味著未來ETH2.0階段在開發時間上會有很大的變化。雖然樂觀主義者告訴我6個月,但在階段0進入測試之後,很容易看到階段1需要花費12-18個月的開發時間。

ETH2.0:它会是什么?(一)

階段2 —— 智能合約

階段2最終帶來類似於以太坊的系統,這是我們熟悉的。隨著階段2的發佈,分片鏈從簡單的數據容器轉向結構化的鏈狀態。到了這個時候,BETH能夠轉賬,智能合約也重新引入。每個分片將基於eWASM(所謂的“EVM2”)管理虛擬機。我們期望EVM2支持賬戶、合約、狀態、其他抽象等,這些都是我們在Solidity中熟悉的。

然而,大規模的幕後變化可能會讓大多數現有工具不再有用。幸運的是,eWASM團隊已經為solc、truffle及ganache做了一些基礎工作。在階段2測試網絡發佈之前或期間,我們可以期待看到最常用的工具移植過來,以支持EVM2。

狀態租金(State rent)很可能會被包含在階段2中,這對目前的Solidity工程師來說,會提出一些有意思的挑戰。狀態租金不再是無限期地存儲代碼和數據,而是要求合約開發者和用戶隨時間推移為EVM2存儲付費。通過確保未使用的信息隨時間推移而廢棄,這可以防止狀態膨脹。目的是讓用戶,而不是全節點來為狀態付費。這裡提出了許多不同的模型,且無明顯的最佳模型。

有趣的是,隨著一些以太坊升級計劃和知名的以太坊核心開發者的推薦,狀態租金可能是不同路線圖中的唯一重疊之處。因此,我強烈建議計劃在當前部署的合約上支付狀態租金,並設計模型,用於將來向用戶收取狀態租金。我們不知道狀態租金的精確設計,但我們應該為成本做準備。

此外,我們不知道從階段2中期待什麼。它依然處於非常早期的研究階段,包括了幾個主要的未解決的問題。鑑於非正式的規範說明和開發過程,以及階段2在階段1基礎上的擴展範圍,建議階段2能在2020年前發佈貌似是不合理的。也就是說,儘管ETH2.0可能會在今年推出,但不要期望ETH2.0支持資產轉移或智能合約,至少也得到2020年才能有可能。

階段3 —— 鏈下狀態存儲

現在,為了更多討論智能合約,我們幾乎完全跳過階段3。階段3通過儘可能多地向鏈外轉移,從而最小化鏈上狀態。它不是在鏈上存儲整個狀態,而是存儲一些狀態信息和聚合器(聚合器是表示長數據列表的短數據;Merkle樹是一種聚合器。)

用戶將負責存儲完整的鏈外狀態。當用戶想與狀態交互,他們會在交易中包含當前狀態的證明。這樣,運行驗證節點的資源要求會低很多。有不同特性和性能特徵的若干個聚合器設計方案出來了,但沒有哪個已被選定。

此時,我們停止利用鏈上通信來協調用戶,所以,我們必須計劃通過其他系統來同步狀態。對工程師來說,事件變得不那麼有用,因為鏈不再能保證數據的可用性。在階段3,對DApp來說,保持和檢索鏈外狀態將成為關鍵的設計限制。

—— 未完待續 ——

------

風險警示:藍狐筆記所有文章都不構成投資推薦投資有風險,投資應該考慮個人風險承受能力,建議對項目進行深入考察,慎重做好自己的投資決策。

通往區塊鏈的新世界:關注“藍狐筆記”區塊鏈公眾號:lanhubiji

或加入藍狐筆記的知識星球:https://t.zsxq.com/iaQNnIq


分享到:


相關文章: