“V神”的以太坊究竟有沒有想象中的那麼好?

摘要: 對以太坊來說,2018年是專注於基礎設施的一年。這一年裡,大家對網絡侷限性進行了測試,重新把精力集中到擴容技術上。在本文中,我將深入探討其中一種擴容方案:“鏈下”或者“Layer2”擴容,希望能讓你對Layer 2的工作原理有個全面而詳細的理解。

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

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

它們有許多不同的形式,而且往往都是相互兼容或互補的。

本文中,我將深入探討其中一種擴容方案:“鏈下”或者“Layer2”擴容,希望能讓你對Layer 2的工作原理有個全面而詳細的理解。

1:公有鏈的擴容挑戰

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

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

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

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

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

2:解決方案

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

從理論上講,我們可以採取兩種方法來解決這個問題:

1、如果每個節點不必並行處理每個操作呢?

如果我們可以構建一個區塊鏈,鏈內節點不必參與處理每筆交易,網絡被分成兩個部分,可以半獨立地運作呢?

被分開後,A區可以處理一批交易,B區也可以處理一部分,這可以把區塊鏈交易吞吐量提高一倍。如果我們把區塊鏈分成許許多多不同區域,那吞吐量會提高許多倍。

這就是“分片(Sharding)”背後的理念,由以太坊V神和其他科研人員提出。一個區塊鏈被分成許多不同的“片”,每個“片”都可以獨立處理交易。分片一般是指“Layer 1”的擴容方案,因為它是在以太坊的基層協議上實現的。

2、如果為以太坊建立協議層網絡呢?

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

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

這也被稱作“Layer 2”,因為它建立在以太坊主鏈之上,不需要在基礎層上進行改變,相反,它只作為與鏈下軟件交互的智能合約存在。

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

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

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

數字經濟共識給了我們確定性——除非像51%攻擊這樣極端事件,否則所有的操作(包括支付、智能合約)都將按之前設計好的程序執行。

Layer 2背後的原理是,我們可以將這個確定性作為一個錨,在此基礎之上附加其他機制。Layer 2可以將公有鏈的效用擴展到鏈外,讓我們在鏈外交互成為可能,這些交互在需要的時候仍然可以返回到主鏈。

因為這些層建立在以太坊主鏈之上,所以它並不能像主鏈上操作一樣安全,但仍然可以確保它們安全實用,特別是只需要犧牲一點操作權限,就可以提高運作效率,降低手續費用。

下面是正在嘗試應用的技術介紹:

1、狀態通道(State Channels)

狀態通道,指的是“鏈下”處理交易和其他操作的一種技術,有很高的安全性:如果出了什麼問題,我們仍然可以選擇回到鏈上交易。

很多讀者都知道支付通道,這個已經出現許多年了,最近也在通過閃電網絡(Lightning Network)在比特幣上實施。狀態通道是比支付通道更為普遍的形式——不僅可以處理支付,也可以處理區塊鏈的“狀態更新”,比如智能合約的更改。

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

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

這時候,我們就可以設計一個系統,讓張三和李四的互動儘量在鏈下進行。他們可以在鏈下更新狀態,並在需要的時候,回到鏈上交易。我們把這種系統稱之為“狀態通道”。

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

緊接著,張三和李四開始互動。張三開始走第一步,簽名後發送給李四,李四也會簽名,並將自己簽名後的版本發回,自己保存一份副本。然後李四走一步,簽名後發送給張三,張三也簽名後發回,自己保存副本。每次,他們都會更新自己的狀態。每次互動都會包含一次“隨機數”,這就可以給每次互動按時序排列。

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

為什麼需要這個等待時間?

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

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

狀態通道適用於很多應用程序,並對傳統的鏈上操作進行了許多升級。

2、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令牌)與其他用戶進行遊戲,不需要與主鏈直接互動。因為只有少量節點需要處理交易,交易費用會低很多,操作速度也會更快。

3、Truebit

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

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

在以太坊上做的所有計算都很貴,因為總需要所有節點都要參與到計算中。

然而,你可以給某個人(解決者)支付一點費用,讓它完成鏈下計算。

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

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

Truebit使用一種叫“驗證遊戲”的經濟機制。從本質上講,我們創造了一種激勵機制,鼓勵“挑戰者”來驗證解決者提交的結果。如果挑戰者能夠通過驗證遊戲,證明解決者提交了一個錯誤的結果,那麼他們就會得到獎勵,而解決者則會失去他們的押金。

4:結論

“狀態通道”和Plasma,將增加平臺的吞吐量;Truebit,將更困難的計算作為智能合約的一部分,從而打開新的應用例子。

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

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

(作者:幣圈鑑輕塵,內容來自鏈得得內容開放平臺“得得號”;本文僅代表作者觀點,不代表鏈得得官方立場)

相關推薦

推薦中...