分歧中前行的以太坊2.0區塊鏈

                  哈希派 2018-09-09 14:49
                  分享到:
                  導讀

                  以太坊邁入2.0時代的關鍵是:信標鏈/分片客戶端 eWASM

                  blob.png

                  去年11月,以太坊創始人Vitalik Buterin曾在臺北的技術交流會上,詳細披露了以太坊未來發展的2.0路線圖——使用zk-Snarks技術、構建新型Python智能合約編程語言“Vyper”、整合分片技術或Plasma項目、部署PoS權益證明機制等等來實現客觀的鏈上交易吞吐量,同時兼容去中心化以及安全性。不過以太坊2.0的路線圖并非一錘定音,隨著更多新想法的加入,它的設計也在不斷變化。

                  根據下一代PoS礦池Rocket Pool開發者Darren Langley近日在Medium上發布的文章描述,為了成為現實世界中價值轉移的關鍵基礎設施、新經濟體系平臺以及全球合作中心,以太坊2.0將要整合的幾大關鍵項目是:

                  權益證明機制(信標鏈,Casper FFG):信標鏈是全新的股權證明區塊鏈,將與當前的以太坊區塊鏈并行運作

                  分片技術:以太坊實現交易網絡高吞吐量的解決方案

                  eWASM(以太坊虛擬機EVM的升級項目): eWASM是基于WASM(WebAssembly)指令集的虛擬機設計方案

                  而就如Vitalik早前在發布的《去中心化的意義》文中所說,“區塊鏈在政治上是去中心化的(沒有人能控制它們),架構上也是去中心化的(沒有基礎設施性的中心故障點),但它在邏輯上是中心化的(有一個共同達成一致的狀態,系統就像一臺計算機”;為此除了以太坊的運行是去中心化的(沒有單一實體負責維持區塊鏈的運行)之外,它的開發也是去中心化的,因為以太坊2.0并不由任何一個企業單獨開發。

                  照這樣說的話,以太坊2.0具體是如何創建的呢?

                  一個完整的開源軟件項目生態 公開的課題討論記錄

                  從某種意義上來說,以太坊是一個龐大的開源項目;相關的協議提案由社區內研究人員及實施者共同提出,經過討論、改進等程序后才會最終實施。雖然以太坊基金會在整個過程中起著較大影響力,且該組織內開發者的受關注度及名聲較高;但以太坊的相關決定都是社區通過共識做出的。

                  基于以上基礎,網絡內運行以太坊的軟件,即客戶端或者說節點有不同版本,分別由不同的軟件開發團隊基于開源代碼編寫。同時以太坊具有完整的開源軟件項目生態系統,開發者可使用以下基礎設施來構建以太坊的各個組成部分:

                  智能合約編程語言:Solidity、Vyper
                  RPC庫:Web3js、ethers、Nethereum
                  開發工具:Truffle、ganache、solc、solium

                  而為了更好地實現以太坊2.0,社區內正在研究的議題,及相關討論記錄和開發進展都會在以太坊研究網站上(https://ethresear.ch/tags)公開展示。根據網站的資料顯示,目前社區內研究人員及開發者正在研究的議題包括:簽名聚合、隨即數生成、分叉選擇、數據可用性、輕客戶端支持、P2P通信、跨分片通信和狀態/執行分離等等。

                  這些議題中有部分已經達到可實施程度;但也有不少還處于早期階段,仍需要更多的時間來確定研究成果。隨著研究課題的逐漸成熟,它們將會合并為以太坊2.0客戶端的規范;讓實施團隊接下來可利用以太坊基金會目前正開發的參考實現客戶端(基于Python建立),進行開發。

                  另一方面,以太坊2.0實施者每兩周還會舉行一次視頻會議,以跟蹤相關開發進度、解答問題,并就常見爭議達成共識;而目前已召開的三次視頻會議都能在GitHub上查找回看(https://github.com/ethresearch/eth2.0-pm)。

                  關鍵項目的具體開發進展

                  信標鏈/分片客戶端

                  作為以太坊2.0的核心,信標鏈/分片客戶端當前由多個團隊開發實施:

                  Prysm:由Prysmatic Labs開發,使用Go編寫。該團隊每兩周都會對他們的進展進行一次更新,上周則就跨分片通信低效問題進行更新;

                  Lighthouse:由Sigma Prime開發,使用Rust編寫;

                  Nimbus:由Status開發,使用Nim編寫;

                  Loderstar:由Chain Safe Systems開發,使用JavaScript編寫;

                  Harmony:由Ether Camp開發,使用Java編寫;

                  Pantheon:由ConsenSys的協議工程小組PegaSys開發,使用Java編寫。該團隊專注于以太坊正面臨的包括公鏈及私鏈的可擴容性和隱私性等等問題;

                  Trinity:由Piper Merriam領導的Trinity團隊開發,使用Python編寫。

                  這些團隊正就信標鏈狀態數據結構和持久性、每個區塊的狀態轉換、分叉選擇實施、驗證器改組、區塊發起者的角色、數據結構序列化、P2P協議等等方面進行研究;不過當前每個團隊在實施以太坊2.0方面的開發進展各不相同。

                  而在各個團隊的開發逐漸成熟之際,他們需要一種對測試用例進行編碼的通用測試語言,使得開發者能夠定義一組具有預期結果的測試,并根據規范驗證器進行實施;這同時也是社區目前正在討論的重要進程之一。

                  eWASM

                  根據以太坊基金會核心開發者Jake Lang昨日在產業發展峰會上的說法,eWASM將會是以太坊智能合約的未來,它能解決當前以太坊虛擬機EVM過于復雜、性能低、僅支持編程語言及開發工具有限等問題。而鑒于WASM指令集本由Mozilla、谷歌、微軟和Apple等工程師開發,eWASM項目開發團隊的首要任務是解決eWASM與當前EVM的兼容性問題。

                  目前eWASM團隊正在評估新虛擬機的影響,但是關于其具體執行方法及實際運行情況方面的研究目前還處于早期階段。其中的一個原因是,新的以太坊2.0分片系統可能會采用延時執行機制,而不是當前EVM區塊鏈正在使用的智能合約代碼與交易處理幾乎同時執行的模式——在新以太坊2.0分片系統中,分片負責交易排序且僅儲存數據,而負責讀取交易、執行代碼及寫回結果的重疊(overlay)執行過程則會在頂部的第二層進程中構建,而不是在區塊鏈內進行。

                  總的來說,以太坊2.0當前由社區內多個團隊共同開發,雖然還沒有到達實現和落地的那一步,但已取得不少進展;至于以太坊能否或者說何時真正邁入2.0時代,就要看信標鏈/分片客戶端和eWASM的開發進度了。

                  開發 團隊 使用 分片 開發者
                  分享到:

                  1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
                  2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
                  3.作者投稿可能會經TMT觀察網編輯修改或補充。