以太坊在過去 3 年的發展勢頭可謂是風起雲湧。在以太坊上搭建產品的軟件開發者、創新者和企業家也是如雨後春筍般湧現。

雖說以太坊已經取得一定成功,但它仍是一門新興技術。如果想要支撐起這些已有的或者還未出現的應用程序,以太坊還需要解決一些關鍵的問題。

擴展性

區塊鏈的擴展性問題在這個領域中已是老生常談。當前的以太坊區塊鏈每秒能夠處理的交易只有 15 筆交易,只有當以太坊每秒能夠處理數千筆交易的時候,該技術的潛力纔算發揮了出來。以太坊想要實現的目標是:在鏈上以及無須依賴主節點的前提下實現所有操作(主節點的存在會損害到網絡的去中心化程度以及安全性)。

以太坊 2.0 將解決擴展性問題,同時也會考慮網絡的可持續性(sustainability)、效率(efficiency)和靈活性(flexibility)。爲此,它結合多個工作流程,將在未來幾年內逐步開展。

當然如果以太坊能實現鏈上擴展是最好的,但也沒必要乾等着實現鏈上擴展。當前,許多應用通過鏈下擴展技術(如 Plasma,Plasma Cash 和狀態通道(State Channels)等)即可實現擴展。

全新的設計

以太坊 2.0 的發展路線圖並非是絕對化的,會隨着新想法的出現而處於不斷變化之中–正如我們知道最開始的 Casper 設計(EIP1011:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1011.md)也是在新的設計出現之後就被摒棄了。

我們以迅雷之勢完全接受了新設計,因爲它將能更快地實現以太坊的高擴展性。這個新設計結合了兩個理念(即 Beacon chain 和 Aggregate Signatures),將能夠爲以太坊的擴展性和去中心化程度帶來巨大的提升。從資源的角度來看,新的設計方案同樣是意義非凡。

讓我們瞭解一下實實在在的東西吧!

當前的以太坊區塊鏈

坦白來說,當前的以太坊區塊鏈還是一如往常。它依舊是一條基於工作量證明(PoW)機制的區塊鏈,還是在繼續繁殖着加密貓。

一文概覽以太坊 2.0當前的區塊鏈——載有交易的區塊

新的設計將被開發爲與當前的以太坊區塊鏈分離開來,且與當前的以太坊區塊鏈並行運作。在未來,當前的以太坊區塊鏈將被整合到一個全新的系統中。

權益證明(PoS)

由於很多原因(詳見:https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs),以太坊正在將共識協議從工作量證明(PoW)轉變爲權益證明(PoS)。

共識協議就是一套激勵不受信任的驗證者們去維護區塊鏈的一致性和安全性的規則。共識協議通過提供經濟上的安全(economic security)來保護整個區塊鏈網絡,即如果攻擊者想要篡改存儲在區塊鏈上的賬本,就必須付出巨大的成本代價,這就使得攻擊在經濟上變得不可行。

權益證明(PoS)就是通過要求驗證者在網絡中存儲一定的加密貨幣押金存款(deposits)來保證區塊鏈安全的一整套共識協議(即要成爲驗證者,節點需要在網絡中存入一定數量的加密貨幣(對於以太坊來說就是 eth)作爲權益,可以將這理解爲保證金)。它要求驗證者對新產生的交易區塊進行提議和投票。如果驗證者遵守協議中的規則,就可以獲得一定的押金存款利息作爲獎勵。但如果驗證者採取不誠實的行爲(驗證並通過欺詐性交易),則會受到經濟處罰。

信標鏈(Beacon Chain)

信標鏈是全新的權益證明區塊鏈,它將與當前的以太坊區塊鏈並行運作。

一文概覽以太坊 2.0保證金處理與信標鏈結構

當前,以太坊區塊鏈上的智能合約要求驗證者提交 32 個以太坊(ETH)作爲保證金才能參與到權益證明協議中。

在驗證者將保證金提交到智能合約中之後,就成爲了信標鏈(Beacon Chain)的待定驗證者(pending validators)。最終他們將成爲活躍驗證者(active validators)並參與到權益證明協議中。

信標鏈會即刻產生一個隨機數,該隨機數用於隨機選擇驗證者來完成區塊提議和投票。這個隨機選擇是非常重要的,因爲這樣可以避免驗證者們相互串通而影響整個系統。

之前的設計的一個缺陷是,它要求驗證者每次投票都得提交一筆交易。這些驗證者提交的交易增加了區塊鏈的負荷,因此加重了區塊鏈擴展性問題。如此一來,當前的區塊鏈自然是路遇瓶頸。而在新的設計中,信標鏈控制着權益證明機制,因此各交易之間無需競爭即可被打包進入區塊中。

信標鏈將不會像以太坊虛擬機(EVM)那樣包含一個執行引擎(execution engine),因爲驗證者只能以非常有限的方式與鏈進行互動。無需再通過 EVM 來處理投票就意味着,投票將變得更加高效。同時不存在需要計量的計算(arbitrary computation),因此所有在信標鏈上的交易是不需要消耗 gas 費用的——這就使得整個交易過程更具成本效益。

聚合簽名(Aggregate Signatures)

如果每個投票都代表這一筆交易,那區塊鏈就得在很短的時間內按照順序處理所有投票交易。這就限制了能夠參與到權益證明中的驗證者數量。要知道,越多的驗證者參與就越好,因爲這會提升網絡的安全和去中心化程度。

聚合簽名的運行原理就像請願書一樣——這份請願書會發送給每個驗證者,驗證者再使用簽名以示支持。爲了減少信標鏈的負荷,這些請願書會發送至鏈下(通過一個點對點協議),且只有當請願書獲得足夠多的支持之後,纔會被併入到主區塊鏈之上。

一文概覽以太坊 2.0注:Proposer 「提議者」,Validator 爲「驗證者」

通過聚合簽名的方式,可以讓更多的驗證者參與到權益證明協議中。在之前的設計中,預計最多能夠讓 900 名驗證者參與。新的設計預計能夠使 300,000 名驗證者參與進來,而系統被設計成支持超過 2²²名驗證者。因此,成爲驗證者的最低保證金從 1,500eth 降低至 32eth。

分片技術(Sharding)

分片技術是以太坊將如何實現擴展所需的性能提升。

運行以太坊區塊鏈的每臺機器都必須按順序處理交易。儘管交易會在數千臺計算機上運行,但這些交易無法並行處理。因此,從擴展性角度來看,當前的以太坊區塊鏈就像一個所有交易都被必須通過的單一管道。分片技術就像是額外增加 X 數量的管道,使整個區塊鏈能夠容納更多的交易。

實際上,每個分片都是一條單獨的區塊鏈,具有自己的狀態(賬戶餘額、智能合約)和交易歷史記錄。但分片技術不是一堆區塊鏈的集合,因爲每個分片都與信標鏈共享同一個權益證明共識協議。信標鏈上經註冊的驗證者將包含全球所有的驗證者,他們在信標鏈和各分片上驗證所有的交易區塊。想要攻破單個分片的共識協議,就必須攻破整個協議(這意味着更加安全)。

一文概覽以太坊 2.0

由於每個分片是獨立的,這就需要執行跨分片交流機制(a cross-shard communication mechanism),這樣才能讓某個分片上的智能合約與另一個分片上的另一個智能合約進行交流。這種交流可能是不同步的。

如果你覺得這聽起來有點複雜,那是因爲這項技術本身就很複雜。

當然,作爲以太坊的普通用戶,你無需爲此煩擾。軟件開發者們會完成這些複雜操作的。

要知道,互聯網也是運行在 TCP/IP 協議上,而普通用戶是不會關注這些的。

通過信標鏈和聚合簽名方案,潛在的分片數量可以從 100 增加至 1,024。

我們預計,通過分片技術,以太坊每秒能夠處理的交易量將超過 15,000。

eWASM

智能合約就是以太坊的生命線,它們能夠促成所有有趣的事情發生。當前,以太坊智能合約是通過 Solidity/Vyper 語言來編寫,並編譯成 EVM 代碼,代碼由以太坊節點執行。但以太坊虛擬機(EVM)本身在性能方面存在不足,成爲以太坊區塊鏈的一個性能瓶頸。要知道,執行代碼的效率越高,自然就越好。

eWASM 的開發就是用於代替 EVM。eWASM 基於 WASM (WebAssembly)指令集,該指令集由 W3C (萬維網聯盟)社區成員設計爲一種開放標準,Mozilla,谷歌、微軟和蘋果等公司的工程師正積極對該指令集進行開發。

eWASM 將對以太坊能夠處理的交易量以及打包進入區塊的交易量產生很大的影響——它將進一步增加系統交易吞吐量。

如果 eWASM 能使交易處理速度提升 1 倍,那意味着打包進入某個區塊的交易量也將增加 1 倍。

除了更快,新的指令集將:

  • 更加安全(因爲指令集實現了標準化);
  • 支持更多的編程語言(而不僅僅是 Solidity)
  • 更加便捷(可在任何地方執行)
  • 可以利用 WASM 生態系統工具

以太坊分片將不使用現有的 EVM,而是直接使用 eWASM,同時也將開發出能夠將 Solidity/Vyper 語言編譯成新的 eWASM 指令集的編譯器。

如何獲取更多信息?

由於這些研究正處於進行中,且新的開發也是每天都在出現,我們將持續跟進以太坊 2.0 的開發並及時發佈出來。

以太坊自誕生以來已經走了很長一段路了,但它的潛力還只發揮了冰山一角。能夠進入以太坊領域和以太坊社區,我甚爲激動。

非常感謝 Danny Ryan (以太坊基金會成員)提供了很棒的反饋。

也要感謝 Hsiao-Wei Wang (以太坊基金會成員)——她非常棒的圖表給了我很大的啓示。