【鑑輕塵】「V神」的以太坊究竟有沒有想象中的那麼好?

對以太坊來講,2018年是專一於基礎設施的一年。這一年裏,你們對網絡侷限性進行了測試,從新把精力集中到擴容技術上。安全

以太坊還處於嬰兒時期。今天,它還不夠健全,也不具有可擴展性。任何瞭解這項技術的人,都清楚知道這一點。但在過去的一年裏,由投機驅動的炒做,過度誇大了區塊鏈的能力。以太坊距離Web 3.0(一個安全、易於使用的分佈式網絡,受一套共識機制約束,併爲數十億人使用)仍高不可攀,在關鍵基礎設施完善以前,都不會實現。

構建這一基礎設施、擴展以太坊功能的項目,都被稱做擴容方案。
複製代碼

它們有許多不一樣的形式,並且每每都是相互兼容或互補的。網絡

本文中,我將深刻探討其中一種擴容方案:「鏈下」或者「Layer2」擴容,但願能讓你對Layer 2的工做原理有個全面而詳細的理解。
複製代碼

1:公有鏈的擴容挑戰分佈式

「擴容」不是單一的、具體的問題,它是以太坊在服務全球幾十億用戶以前,必需要解決的問題。

首先,是交易吞吐量方面。目前,以太坊每秒能夠處理15筆交易,相比之下,Visa處理速度能夠達到45000筆/秒。

像以太坊這樣的公有鏈,要求網絡中每個節點參與處理每一筆交易,其主要侷限也正在於此。以太坊上的每一個操做都必須由網絡中的每一個節點一塊兒執行,保證了公有鏈的足夠權威。

這就限制了以太坊的交易吞吐量:它不能高於單個節點處理數據的速度。

若是咱們將區塊大小加倍,這將意味着在相同出塊時間內,每一個節點的工做量大約是如今工做量的兩倍。但這是以犧牲去中心化爲代價的:須要節點作更多的工做,那麼較弱的節點可能會退出網絡,挖礦權利將集中到強大的礦場手中。
複製代碼

2:解決方案區塊鏈

咱們須要一種方案:既能不增長單個節點的負荷,又能處理更多交易。

從理論上講,咱們能夠採起兩種方法來解決這個問題:
複製代碼

一、若是每一個節點沒必要並行處理每一個操做呢?測試

若是咱們能夠構建一個區塊鏈,鏈內節點沒必要參與處理每筆交易,網絡被分紅兩個部分,能夠半獨立地運做呢?

被分開後,A區能夠處理一批交易,B區也能夠處理一部分,這能夠把區塊鏈交易吞吐量提升一倍。若是咱們把區塊鏈分紅許許多多不一樣區域,那吞吐量會提升許多倍。

這就是「分片(Sharding)」背後的理念,由以太坊V神和其餘科研人員提出。一個區塊鏈被分紅許多不一樣的「片」,每一個「片」均可以獨立處理交易。分片通常是指「Layer 1」的擴容方案,由於它是在以太坊的基層協議上實現的。
複製代碼

二、若是爲以太坊創建協議層網絡呢?spa

第二種選擇和第一種偏偏相反:與其增長以太坊自身的能力,不如在其基礎之上採起措施。在以太坊區塊鏈基本層的吞吐量不變的狀況下,能執行更多的操做,好比交易、狀態更新或簡單的計算。

這就是「鏈下」技術背後的原理,包括狀態通道、Plasma、Truebit等。雖然每一種技術旨在解決不一樣問題,但它們都須要在保證安全性的前提下,進行「鏈下」操做。

這也被稱做「Layer 2」,由於它創建在以太坊主鏈之上,不須要在基礎層上進行改變,相反,它只做爲與鏈下軟件交互的智能合約存在。
複製代碼

3:Layer 2是數字經濟解決方案設計

在細說Layer 2的解決方案以前,咱們先來了解一下其背後的原理。

公有鏈的權威來源於共識。經過激勵措施,並將其與密碼學結合,從系統內部達成共識。

數字經濟共識給了咱們肯定性——除非像51%攻擊這樣極端事件,不然全部的操做(包括支付、智能合約)都將按以前設計好的程序執行。

Layer 2背後的原理是,咱們能夠將這個肯定性做爲一個錨,在此基礎之上附加其餘機制。Layer 2能夠將公有鏈的效用擴展到鏈外,讓咱們在鏈外交互成爲可能,這些交互在須要的時候仍然能夠返回到主鏈。

由於這些層創建在以太坊主鏈之上,因此它並不能像主鏈上操做同樣安全,但仍然能夠確保它們安全實用,特別是只須要犧牲一點操做權限,就能夠提升運做效率,下降手續費用。



下面是正在嘗試應用的技術介紹:
複製代碼

一、狀態通道(State Channels)code

狀態通道,指的是「鏈下」處理交易和其餘操做的一種技術,有很高的安全性:若是出了什麼問題,咱們仍然能夠選擇回到鏈上交易。

不少讀者都知道支付通道,這個已經出現許多年了,最近也在經過閃電網絡(Lightning Network)在比特幣上實施。狀態通道是比支付通道更爲廣泛的形式——不只能夠處理支付,也能夠處理區塊鏈的「狀態更新」,好比智能合約的更改。

2015年,Jeff Coleman首先提出了狀態通道。咱們先來看一個例子,以便更好地解釋狀態通道的工做方法。

想象一下,張三和李四玩三連棋遊戲,贏家能夠得到1個ETH做爲獎勵。最簡單的辦法,就是在以太坊上建立一個智能合約,將三連棋的規則寫入智能合約,並追蹤張3、李四的選擇。每次玩家作出選擇時,給合約發送一次。當一個玩家勝出,按規則,智能合約將支付1個ETH給勝出者。
這雖然可行,但效率低、速度慢。由於遊戲的每一步都須要獲得全部的節點確認,形成資源的浪費。他們每玩一局遊戲,就要支付一筆費用,而且還要等礦工完成驗證後才能進行下一局。

這時候,咱們就能夠設計一個系統,讓張三和李四的互動儘可能在鏈下進行。他們能夠在鏈下更新狀態,並在須要的時候,回到鏈上交易。咱們把這種系統稱之爲「狀態通道」。

首先,咱們在以太坊主鏈上建立一種智能合約做爲「法官」,並將遊戲規則寫入合約,並識別出張三和李四是本次遊戲的兩個玩家,再給這個合約設置1個ETH的獎勵。

緊接着,張三和李四開始互動。張三開始走第一步,簽名後發送給李四,李四也會簽名,並將本身簽名後的版本發回,本身保存一份副本。而後李四走一步,簽名後發送給張三,張三也簽名後發回,本身保存副本。每次,他們都會更新本身的狀態。每次互動都會包含一次「隨機數」,這就能夠給每次互動按時序排列。

至此,全部操做都不是在鏈上發生。若是遊戲結束,好比說張三贏了,他們能夠上傳最終狀態(交易清單)並關閉通道。這樣,只用支付一次交易費用就能夠了。合約能夠確保「最終狀態」有雙方簽名,並等待一段時間,以確保結果可靠,最後把1個ETH的獎金支付給張三。

爲何須要這個等待時間?

假設李四上傳的不是最終版本,而是他贏過了張三的那個版本,但合約只會執行指令,沒法知道哪個是最終版本。這個時候,設置一段等待時間,可讓張三提供證據證實本身提供的是最終版本。

張三提交雙方簽名的交易副本,合約經過交易的隨機數肯定張三提交的是最終版本,駁回李四的請求。

狀態通道適用於不少應用程序,並對傳統的鏈上操做進行了許多升級。
複製代碼

二、Plasma遊戲

2017年8月11日,V神和Joseph Poon發表了名爲《Plasma:自主智能合約》的論文。這篇文章引入了一種全新的技術,能夠提升以太坊的處理效率。

與狀態通道同樣,Plasma是一種處理鏈下交易的技術,須要依賴以太坊底層技術去對其安全性進行保障。但Plasma的切入點不同,它能夠容許在以太坊主鏈上建立「子鏈」。這些「子鏈」,反過來也能夠建立它們本身的「子鏈」,以此類推。

其結果是,咱們能夠在子鏈執行許多複雜的操做,運行包含數千名用戶的應用程序,而且只須要與以太坊主鏈進行不多的交互。Plasma運行很快,並收取較低的交易費用,由於整個過程不須要在以太坊主鏈上發生。

咱們先來看一個例子,理解Plasma是如何運做的。

想象一下,你正在以太坊上建立一個交易卡片遊戲。這些卡片是ERC-721令牌(好比以太貓),但它們具備某些特性和屬性,讓用戶能夠進行博弈。在鏈上執行這些複雜的操做很昂貴,因此使用Plasma是很好的選擇。

首先,咱們在以太坊主鏈建立一套智能合約,做爲服務於咱們Plasma子鏈的「Root」。Plasma Root包含咱們子鏈的「狀態轉換規則」(好比「不能雙花」),記錄子鏈狀態的哈希,並充當一種「橋樑」,容許用戶在以太坊主鏈和子鏈之間進行互動。

而後,咱們創造咱們的子鏈,子鏈能夠有本身的一套共識機制。在本例中,是受權證實(PoA),依賴可信區塊生產者的共識機制。

一旦子鏈被建立或者激活,區塊生產者就對Root合約作出承諾,至關於「我做證,子鏈中的最新區塊是X。」這些承諾都會被記錄在Plasma Root,以證實子鏈中發生的交易。

子鏈準備好後,咱們就能夠建立交易卡遊戲的基本組成部分。卡片基於以太坊主鏈的ERC-721,經過Plasma Root轉移到子鏈。這就引入了一個關鍵點:Plasma容許咱們與基於以太坊的數字資產進行大規模交互。

而後,咱們在子鏈上部署遊戲應用的智能合約,把遊戲邏輯和規則都寫進合約裏。遊戲用戶,其實只是與咱們的子鏈交互。他們能夠持有資產(ERC-721令牌)與其餘用戶進行遊戲,不須要與主鏈直接互動。由於只有少許節點須要處理交易,交易費用會低不少,操做速度也會更快。
複製代碼

三、Truebit事件

與狀態通道和Plasma擴大吞吐量不一樣,Truebit是幫助以太坊完成繁重計算的鏈下技術。Truebit不會提升交易吞吐量,但會讓基於以太坊的應用程序作更復雜的事情。

有些操做計算成本過高,沒法在鏈上執行。例如,驗證來自其餘區塊鏈的「簡單支付驗證(SPV)」證實,讓以太坊智能合約「檢查」一項交易是否發生在另外一條鏈上(如比特幣網絡)。

在以太坊上作的全部計算都很貴,由於總須要全部節點都要參與到計算中。

然而,你能夠給某我的(解決者)支付一點費用,讓它完成鏈下計算。

首先,解決者往智能合約存入一筆費用,而後,你把需求告知解決者。他進行計算,而後把結果反饋給你。若是計算結果正確,他的押金會被退回;若是計算出錯(他出錯或做弊),就會損失本身的押金。

那咱們怎麼知道結果正不正確呢?

Truebit使用一種叫「驗證遊戲」的經濟機制。從本質上講,咱們創造了一種激勵機制,鼓勵「挑戰者」來驗證解決者提交的結果。若是挑戰者可以經過驗證遊戲,證實解決者提交了一個錯誤的結果,那麼他們就會獲得獎勵,而解決者則會失去他們的押金。
複製代碼

4:結論

「狀態通道」和Plasma,將增長平臺的吞吐量;Truebit,將更困難的計算做爲智能合約的一部分,從而打開新的應用例子。

這三個示例僅表明了擴容方案的一小部分。

在以太坊上構建Layer 2,能夠在訪問速度、安全性和成本之間達到平衡。對於高價值的交易,建議使用主鏈;對於交易數字收藏品,速度更重要,Plasma是不錯的方案。
複製代碼

不要由於冬天來臨,就放棄對春的期待;不要由於多數人投機,就懷疑對投資的堅守;不要由於虛假和昂貴,就中止對真理與價值的追求。生命因不一樣而精彩,投資因獨立而出衆。寶劍鋒自磨礪出,梅花香自苦寒來。沒有挺拔,山就不巍峨;沒有污泥,哪來荷花的亭亭玉立?凜冽風中,我心依舊。鼓足勇氣轉個彎,或許能轉出生機,轉出柳暗花明。我是鑑輕塵(v:yuanls1979),願作你投資中的益友,有任何問題能夠找到我,我必鼎力相助!

相關文章
相關標籤/搜索