回顧 2018 年以太坊協議發展之路
編者按:本文來自36氪戰略合作區塊鏈媒體 “Odaily星球日報 ”(公眾號ID:o-daily, APP下載 )
本文來自 medium ,原文作者:ConsenSys 公司區塊鏈協議工程師 Ben Edgington。
譯者 | Moni
編輯 | 盧曉明
對於以太坊來說,剛剛過去的 2018 年可以說是“網路擴容之年”,在此不妨讓我們來看看以太坊區塊鏈發生了些什麼,以及在通向“以太坊2.0”的道路上取得了哪些進展。
擴容,擴容,還是要擴容
實際上,從去年年初開始,以太坊社群就已經把全年主題基調定位了“擴容”。
2018 年 1 月 2 日,以太坊基金會宣佈將為致力於提升網路交易處理能力的開發人員和研究人員提供數百萬美元的津貼,希望幫助他們儘快獲得資金撥款,以支援開展相關擴容開發工作。
2018 年 3 月 4 日,在題為《2018 以太坊未來之路》(The Road Ahead for 2018)的以太坊大會上,以太坊創始人、“V神” Vitalik Buterin 在演講中表示,擴容將是以太坊在 2018 年最關注的事情。
那麼,“以太坊擴容之年”裡到底發生了些什麼呢?
根據以太坊基金會對擴容升級的要求描述,他們認為有兩種備選解決方案可以提高系統處理能力。第一層是“鏈上”(on chain)協議層,可以從跟不上增加以太坊區塊鏈的容量;第二層提高了一種“鏈下”(off chain)解決方案,其中大多數交易不會被記錄在區塊鏈上,不過底層區塊鏈卻可以保證第二層的系統安全性。
本文會先介紹一下第一層協議的最新進展,第二層擴容研究和開發情況則會在《 以太坊2.0協議核心Beacon鏈詳解 》一文中做深入闡述。
以太坊亟待解決的一個問題:交易速度太慢
到目前為止,我們還沒有看到哪一個區塊鏈專案能夠在如此短的時間內取得與以太坊相媲美的成就。下圖展示了以太坊自成立以來的平均區塊利用率變化情況,我們發現在經過了最初幾年的低容量執行之後,2018 年的絕大部分時間的區塊利用率都已經超過了 80%,其中有幾天時間的平均區塊利用率一度超過 96%。(注:2016年夏天以太坊遭受網路垃圾郵件攻擊、以及此前的 DAO 黑客事件曾讓以太坊區塊利用率出現過短暫的高峰。)
以太坊的容量問題會導致極差的使用者體驗,比如鏈上交易需要等待很長時間才能得到確認,交易費用(gas 價格)也會變得很不穩定。
以太坊必須大規模擴容,因為使用者需要每秒能夠處理數千筆交易、而不是現在每秒只能處理15筆交易的區塊鏈。當然,擴容也是以太坊長久計劃的一部分,而且還推出了“分片”(sharding)解決方案。現階段,以太坊網路和市場上其他區塊鏈平臺一樣,每筆交易都必須經過所有節點的處理驗證,這種模式顯然給交易速度帶來了巨大限制。而在分片網路中,交易處理、以及和該交易相關的儲存(交易狀態)都會被拆分到獨立的分片(shard)中,因此每個節點只需要處理很小一部分的系統負載,速度也會因此獲得提升。這一切似乎聽上去非常簡單,但其實不然——真正的挑戰在於如何讓整個以太坊網路可以安全、且同時做到這一點,再通俗一點說就是: 如果我們有 1000 個分片,如何能避免網路攻擊變得容易 1000 倍?
2018 年 3 月,中國臺北:建立分片網路
其實早在 2018 年初,一個分片以太坊協議規範就已經出現,而且還穩定運行了一段時間。根據該規範中的約定,2018 年 3 月在中國臺北舉辦了一場研討會,期間匯聚了所有計劃在不同以太坊客戶端中實施分片技術的各方。隨著這場研討會時間的臨近,分片技術的研究步伐也在加快,就在研討會召開前三天,以太坊社群內還推出了一個全新的規範概要,其中不僅有很多分片技術的新想法,而且對其未來發展充滿期待。
這場全球分片技術社群的首次聚會吸引了很多業內大咖,包括來自 PegaSys/ConsenSys 的 Nicolas Liochon 也不遠萬里從歐洲搭乘長途飛機前往臺北。下圖是在臺北舉行的首屆以太坊分片研討會參會者合影:
這場首屆以太坊分片技術全球研討會為期三天,期間打擊探討了非常廣泛的問題,包括分片結構和其他更廣泛的技術創新,主要參會者包括:
-
以太坊基金會的研究團隊,分片技術研究的主導思想其實都來自於“V神” Vitalik Buterin 和 Justin Drake,以及包括 Hsiao-Wei Wang、Karl Floersch 和 Vlad Zamfir 在內的其他研究人員和開發人員;
-
Geth以太坊客戶端開發團隊;
-
Parity 和 Web3 基金會團隊;
-
The Trinity (Py-EVM) 團隊,該團隊大多數成員也都來自以太坊基金會;
-
來自 Status 的 Nim 語言移動客戶端開發團隊;
-
Prysmatic Lab s團隊,他們使用 Go 語言開發分片技術實施;
-
其他獨立開發人員和研究人員,比如:Phil Daian 和 Leonardo Bautista-Gomez。
在正式實施分片之前,這些參會人員對新規範中的概念進行了深入探討。實際上,當前的以太坊網路中的每個節點都需要負責三個不同的功能:
(1)參與排序交易共識;
(2)執行這些交易,並且更新狀態;
(3)確保這些交易和更新後的狀態可用於網路中的其餘部分(資料可用性)。
而在分片網路中,這些功能可以在不同網路參與者之間被分配,以便網路中的各種功能得到優化,具體如下:
(1)提議節點(Proposer nodes)負責將交易封裝進區塊,其中他們的提議將會作為規範歷史;
(2)校對節點(Collator nodes)會檢查提議節點所提供區塊中的資料是否可用,然後再將它們新增到分片區塊鏈中;
(3)執行節點(Executor nodes )負責根據需要更新客戶端的區塊鏈狀態(比如客戶端的賬戶餘額)。執行節點會採取一種所謂的“惰性評估”方法,在這種情況下,只有實際需要的資料計算才會被執行,而且該方法還可能被用於“替代執行引擎”——一種創新的併發執行引擎,能夠使交易並行執行和驗證,同時利用以太坊網路結構優化,即側鏈計算資源的方式來提升網路效能。
分片網路與當前的以太坊主網截然不同,但是如果想要平衡以太坊網路中的效率和安全,優化分片技術是非常有必要的,畢竟不是每個以太坊區塊鏈網路裡的節點都可以成為分片客戶端。為了保持網路效率,提議節點和執行節點可以保持與少量分片同步,但為了保持網路安全,校對節點(也就是實際寫入區塊鏈的節點)可以非常頻繁地在分片之間移動,也避免網路中的一小部分參與者變成分片接收方(shard-takeovers)。
在臺北舉辦的首屆以太坊分片技術全球研討會上,我們還討論了很多其他問題,包括完成所有相關工作所需要的各種基礎架構、分片管理器合約、無狀態客戶端、以及 Peer-to-Peer 網路層,等等。
很明顯,除了致力於構建以太坊擴容基礎架構之外,社群對於以太坊網路創新也存在大量需求,這些需求與擴容無關,但卻因為各種原因被壓抑了。也許,分片的實施會成為以太坊引入其他重大創新的機會。因此在以太坊分片技術全球研討會上,參會者還花了一些時間研究其他主題,既有用 eWasm 替代以太坊虛擬機器(EVM)這種頗受爭議的想法、還有賬戶抽象和儲存租金等其他老生常談的問題。
2018年6月,德國柏林:當分片遇見“權益認證”
在中國臺北舉辦的首屆以太坊分片技術全球研討會上,參會者討論的都是一些全新的概念,因此在會議結束之後,很多概念需要繼續深入評估,而在接下來的幾周時間裡,研究人員和開發人員似乎也發現的確存在問題:
首先,在中國臺北舉辦的首屆以太坊分片技術全球研討會上討論的提案具體細節存在一些缺點(具體缺點可在“ Exploring the proposer/collator split ”這篇文章中檢視);
其次,開發人員和研究人員在其他方面看到了一些非常有趣的新發現,特別是在加密方面,可以在不損失效率和安全的情況下對以太坊分片模型進行大規模重構。
隨著新開發專案的深入,各種問題也需要進一步深入討論,因此以太坊分片社群認為是時候再召開一場分片研討會了。這次,開發人員和研究人員決定將會議時間定在 2018 年 6 月,當時恰逢 Status 正在組織開發者大會,因此以太坊分片研討會決定利用這次契機在柏林召開。
Casper FFG(權益認證)團隊出人意料地參加了這場以太坊分片技術全球研討會,就在這場會議舉辦的前三到四周,社群對分片規範提出了另一個重大改變建議: 為什麼我們不能在同一個平臺上一起構建分片和 Casper?
實際上,根據目前已經放棄的以太坊改進提案 EIP-1011,一些全新的分片設計選擇與計劃中獨立進行的Casper FFG工作具有不少共性,比如:
-
兩者都需要驗證器存款(權益);
-
兩者都依賴於對隨機數的訪問;
-
兩者都具有故障認證和削減機制;
-
兩者都使用聚合簽名。
鑑於這些共性,有人建議分片和 Casper 都可以建立在同一個基礎設施上,即 Beacon 鏈。此外,在同一個平臺上一起構建分片和Casper的另一個優勢,就是將 Casper 和分片脫離現有以太坊主網執行,這樣就不會給網路帶來額外的負載了。
在柏林舉辦的這場以太坊分片技術全球研討會上,開發人員和研究人員最終達成了共識,同意在同一個平臺上構建、實現分片和 Casper 兩個專案,而且認為這將是一個積極且實際的方法。
除了探索專案的未來規劃之外,以太坊分片技術全球研討會還討論了其他各種新想法:
-
討論了新的加密技術,比如zkSTARKs和替代雜湊函式;
-
討論了新的託管認證(proofs-of-custody)演算法;
-
討論研究了演算法,目前業內領跑者是具有可驗證延遲函式(VDF)的RANDAO 。
走向以太坊 2.0
當時間來到了 2018 年 8 月,以太坊擴容這件事又向前邁進了一步。
實際上,雖然某些方面依然存在一些問題,但以太坊區塊鏈擴容的研究在 2018 年上半年得到了巨大進展,而且總體方向也已經非常明確了——分片和“權益認證”將會在一個全新的區塊鏈平臺(也就是以太坊 2.0)上進行,該平臺會與當前的以太坊主鏈(Main Chain)相連,但主鏈仍會繼續按原樣執行。
基於這樣一個全新的平臺,Beacon Chain 可以突破當前以太坊主網的容量限制,繼而無限制地嘗試、並引入更多創新。更重要的是,這種解決方案無需在當前執行的網路上“動刀”,而且實施的時間進度也更容易推測出來:預計Beacon Chain(包括 Casper FFG 在內的協調層)會在 2019 年正式實施,而 Shard Chain(資料層)則會在 2020 年實施,執行層的實施時間可能會在 2021 年。
毫無疑問,未來以太坊區塊鏈會有更多創新,而且開發人員和研究人員也會就這些創新進行更深入地探討。但總的來說,目前對於以太坊 2.0,我們仍在積極尋找新的共識機制、新的加密經濟模型、新的執行引擎(比如 eWASM,甚至潛在的延遲執行)、以及新的加密原語(primitives)。
(注:原語是指作業系統執行過程中不可被打斷的基本操作,你可以理解為一段程式碼,這段程式碼在執行過程中不能被打斷(在多道程式設計裡程序間相互切換,還可能有中斷髮生,經常會被打斷)。像原子一樣具有不可分割的特性, 所以叫原語, 像原子一樣的語句。)
最後,讓我們援引以太坊聯合創始人、“V神”Vitalik Buterin 在中國臺北舉辦的首屆以太坊分片技術全球研討會上說過的一句話作為結尾——
“以太坊 1.0,是一群充滿鬥志的人去嘗試構建一臺‘世界計算機’(World Computer);以太坊 2.0,將會讓這臺‘世界計算機’真正成為現實。”