以太坊的「擴容」不是單一的、具體的問題,它是一系列問題,若是以太坊想要爲全球幾十億用戶提供服務,就必須克服這些阻礙。最廣泛的問題就是交易吞吐量。目前,以太坊每秒能夠處理15筆交易,相較而言,Visa處理速度能夠達到45000筆/秒。在過去一年裏,由於相似Cryptokitties這樣的應用程序太過流行,致使整個網絡運行速度也開始放緩,交易價格增長。安全
相似以太坊這樣的公鏈,要求網絡中每個節點參與處理每一筆交易,這也正是其主要侷限所在。再以太坊上的每一個操做——轉帳,Cryptokitty的誕生,ERC20合約的生成——都必須由網絡中的每一個節點一塊兒執行。這是設計時決定的,也是公鏈權威的保證。節點不須要從外部得知區塊鏈的狀態,它們本身能夠解決。網絡
這意味着以太坊的交易吞吐量存在基本限制:不能高於從單個節點得到的數據的速度。區塊鏈
咱們能夠要求每一個節點作更多的工做。若是咱們將區塊大小加倍(不考慮gas的限制),這將意味着每一個節點所作的工做量大約是如今工做量的兩倍。但這是以犧牲去中心化爲代價的:須要每一個節點完成更多的工做,那麼功能較弱的計算機(如消費者的設備)就可能會退出網絡,而挖礦的權利將集中到強大的運營商手上。spa
所以咱們須要一種方案,既能不增長單個節點的負荷,又能處理更多交易。設計
從概念上講,咱們能夠採起兩種方法來解決這個問題:blog
1) 若是每一個節點沒必要並行處理每一個操做呢?get
第一種方法,改變前提:咱們是否能夠構建一個區塊鏈,鏈內節點都沒必要參與處理每筆交易呢?是否能夠將網絡分紅兩個部分,半獨立地運做呢?it
分開後,A部分能夠處理一批交易,B部分也能夠處理一部分,這樣區塊鏈交易吞吐量就提升一倍,由於咱們如今設定每兩個節點能夠同時工做。若是咱們把區塊鏈分紅許許多多不一樣區域,那吞吐量會提升許多倍。asm
這就是「分片(sharding)」背後的理念,是由以太坊V神和其餘科研人員提出來的。將一個區塊鏈分紅許多不一樣的「片」,每一個「片」均可以獨立處理交易。分片通常是指layer1的擴容方案,由於它是在以太坊的基層協議上實現的。class
2) 若是爲以太坊創建協議層網絡呢?
第二種選擇和第一種偏偏相反:與其增長以太坊自身的處理能力,不如在現有的基礎之上採起措施。在以太坊區塊鏈基本層的吞吐量不變的基礎上,嘗試執行更多操做,好比交易、狀態更新或簡單的計算。
這就是「鏈下」技術背後的原理,具體的技術包括狀態通道,Plasma,Truebit。雖然每一種技術旨在解決不一樣問題,但它們都須要在保證安全性的前提下,進行「鏈下」操做。
這也被稱做layer2,由於它們是創建在以太坊主鏈之上的,不須要在基礎層上進行改變,相反,只是做爲與鏈下軟件交互的智能合約存在的。