最近關于EOS和以太坊的話題非常熱門。尤其是隨著EOS主網上線日期越來近。這種爭論只會愈演愈烈。難道ETH就此束手就擒?顯然不太可能。事實上,關于以太坊的擴展性問題早就已經納入了研發團隊的議題當中。
本文會嘗試著用通俗易懂的語言來解釋以太坊的兩層擴容方案。
這里需要注意的一點是,以太坊的兩層擴容方案不是以犧牲去中心化為代價,而是采取讓區塊鏈在不增加單個節點工作量的情況下做更多有用的事情。
第一層擴容方案:分片
簡單來說,分片的就是將一個大任務拆分為多個可以并行處理的小任務,從而提升性能。
聽起來可能還是有點糊涂,沒關系,我們繼續往下詳細的來說明。
以太坊最近在研究的分片技術舉例說明。這里為了方便理解,老馬自己簡單的畫了一張圖來描述一下。
我們把以太坊的網絡分為兩部分,左邊一部分L1為現有的以太坊主鏈,右邊一部分L2為各個分片,他們各自是一個獨立的賬戶空間。
每個分片有專門的節點來維護,就相當于數個獨立的區塊鏈,每個分片將自己的記錄匯總(這里指摘要)發給主鏈。主鏈收集各個分片的摘要,然后生成主鏈區塊(N+1)。但是主鏈收集的是摘要而不是具體的交易細節。
這樣做的好處有兩點,一是通過引入獨立分片來分擔主鏈的壓力,分片可以提高并行處理能力,以此來提升整個系統的吞吐能力。二是由于主鏈只需要保存摘要,無需保存所有的交易細節,這樣可以減輕每個區塊的存儲空間壓力。
其實仔細看一下,以太坊的分片技術實際上是集成了側鏈和比特幣隔離見證的思路。每個分片相當于側鏈(只是思路一致,并非真正側鏈),只不過分片是在鏈上來完成。主鏈只收集摘要而不是全部交易細節,實際上也是借鑒了隔離見證的思路。
第二層擴容方案,狀態通道、plasma和Truebit
1:狀態通道:一種進行鏈下交易和其他狀態更新的技術。類似于我們平常了解的閃電網絡和雷電網絡。打個比方,A和B下象棋,誰贏了將會獎勵一個ETH。傳統的鏈上進行的話,A跟B的每一步操作都需要在智能合約做好記錄,最終贏家將會得到一個ETH。但是在狀態通道中,A和B的每一步操作只需要發送到鏈下的法官合約上,他們只需保存各自的副本。如果游戲結束了,他們可以向法官合約提交最終的的狀態來關閉這個通道。最終的獎勵在鏈上進行交易。在這個過程中,所有的操作都是在鏈下,只有最終的獎勵交易是在鏈上。這就大大提高了擴展性,也降低了手續費。是不是很熟悉,因為AE也在做這個東西。當然,因為是鏈下操作,這里面還有一個安全性的問題需要解決。
2:plasma:同樣是鏈下交互,只不過plasma引入了一個子鏈的概念(你想叫側鏈我也沒意見)。用戶在以太坊主鏈和子鏈之間轉移資產。但這些資產需要首先在以太坊主鏈上創建。然后,在子鏈上部署實際游戲應用的智能合約。當用戶想玩游戲時,他們只與子鏈交互。因為只有非常少的節點必須處理交易,所以交易費會很低并且操作會很快。
3:Truebit:Truebit是鏈下一種幫助以太坊進行繁重、復雜計算的技術。比如說,你需要有一個很復雜的證明放在應用程序上,在以太坊上直接進行這種證明的計算代價是非常高的。基于Truebit,你只需要支付一筆小費用,把計算放在鏈外,讓求解者來計算結果。通過Truebit雖然不會提高交易吞吐量,但它能讓基于以太坊的應用程序仍然以在主鏈上驗證的方式,做更復雜的事情。