1. 程式人生 > >詳解以太坊的第 2 層擴充套件方案

詳解以太坊的第 2 層擴充套件方案

在這裡插入圖片描述
對於以太坊來說,2018年是進行基礎建設的一年。今年是早期採用測試網路極限的一年,今年將重點關注擴充套件以太坊的技術。

以太坊仍處於初級階段。現在,它不具備安全性和可擴充套件性。任何密切關注該技術的人都能很好地理解這一點。但在過去的一年裡,ICO驅動的炒作已經開始誇大目前的網路容量。以太坊和web3期望建設的——一個安全、易用、由一套共同的經濟協議約束、可供數十億人使用的分散式網際網路,仍處於發展階段,直到關鍵基礎設施建成之後才能實現。

致力於構建此基礎架構並擴大以太坊容量的專案通常稱為擴容方案。它們有許多不同的形式,並且常常互相相容或互補。

在這篇長文章中,我想深入探討一種擴容方案:“鏈下”或“第二層”解決方案。

首先,我們將概括地討論以太坊(以及所有公共區塊鏈)的擴充套件挑戰。

其次,我們將介紹解決擴容挑戰的不同方法,分為“第1層”和“第2層”解決方案。

第三,我們將深入研究第2層解決方案,並解釋它們的工作原理——具體來說,我們將討論狀態通道,Plasma 和 Truebit

本文重點向讀者提供關於第2層解決方案工作原理的全面、詳細的概念性理解。我們不會深入研究程式碼或特定的實現方案,相反的,我們重點在於理解用於構建這些系統的經濟機制以及所有第2層技術之間共同的常見見解。

一. 公有鏈的擴容挑戰

首先,理解“擴容”不是一個單一的具體問題是很重要的。它指的是一系列必須克服的挑戰,使得以太坊能對數十億的全球使用者有用。

最常討論的擴容挑戰是交易吞吐量。目前,以太坊每秒可以處理大約15筆交易,而Visa的處理速度大約為45,000 / tps。在過去的一年裡,一些應用(比如 Cryptokitties,或者偶爾的 ICO)已經足夠流行,來“減緩”網路速度並提高 gas 價格。

像以太坊這樣的公有鏈的核心限制是,每一筆交易都要由網路中的 每一個節點 進行處理。在以太坊區塊鏈上進行的每一項操作(付款,一個以太貓的誕生,新的ECR20合約的部署)都必須由網路中的每一個節點並行處理。區塊鏈的設計就是這樣的,這是使得公有鏈具有權威性的一部分。一個節點不需要依賴其他節點來告訴它區塊鏈的當前狀態是什麼,它自己會搞清楚。

這給以太坊交易吞吐量帶來了根本性的限制:它不能高於我們對單個節點所要求的交易吞吐量。

我們 可以 要求每一個節點做更多的工作。如果我們把區塊大小擴大2倍(即區塊 gas 值限制),這就意味著每一個節點的工作量是之前區塊工作量的兩倍。但是這是以去中心化為代價的:節點做的工作多了,意味著算力小的計算機(就像消費者裝置)可能會退出網路,挖礦在算力大的節點上就變得更加中心化。

相反,我們需要一種方法,可以讓區塊鏈在不增加單個節點工作量的情況下做更多有用的事情。

從概念上講,我們有兩種方法可能解決這個問題:

Ⅰ. 如果每個節點不需要並行處理每個操作會怎麼樣?
第一個方法不符合我們的前提,如果我們可以構建一個區塊鏈,那麼每一個節點不需處理每一個操作會是什麼樣的?相反的,如果網路分為兩部分,每個部分可以半獨立運作,會是什麼樣的?

A部分可以處理一批交易,而B部分處理另一批交易。實際上這會使區塊鏈交易吞吐量翻倍,因為交易限制變成了兩個節點同時處理的交易總量。如果我們可以把區塊鏈分成許多部分,那麼我們就可以成倍的增加區塊鏈的交易吞吐量。

這就是分片背後的智慧,分片,是 Vitalik 的以太坊研究小組以及其他團隊研究的擴容方案。區塊鏈被分成不同的部分,稱為碎片,每個部分都可以獨立處理交易。分片通常被稱為第1層擴充套件方案,因為它是在以太坊本身的基本級協議中實現的。如果你想了解更多關於分片的知識,我推薦你看這個擴充套件問答和這篇博文。
在這裡插入圖片描述

Ⅱ. 如果我們能夠從以太坊現有的容量中擠出更多有用的業務會怎樣?
第二種選擇是從相反的方向考慮的:並不是增加以太坊區塊鏈本身的容量,如果我們能用已有的容量做更多的事情會怎樣?基層以太坊區塊鏈的吞吐量是相同的,但實際上我們可以做更多對人們以及應用程式有用的操作,像交易、遊戲裡的狀態更新或者簡單的計算。

這就是狀態通道,Plasma 和 Truebit 等“鏈下”技術背後的智慧。儘管它們每一個都解決了不同的問題,但它們都是通過鏈下操作而不是在以太坊區塊鏈上執行的,同時仍然保證了足夠的安全性和不可更改性。

它們也被稱為第二層解決方案,因為它們構建在以太坊主鏈上。它們不要求對基層協議的更改,相反的,它們只是以以太坊智慧合約的形式存在,與鏈下軟體進行互動。

在這裡插入圖片描述

二. 第二層解決方案是加密經濟解決方案

在深入理解特定的第2層解決方案之前,理解使其成為可能的基礎見解非常重要。

公有鏈的基本能力在於加密經濟共識。仔細調整激勵機制,並且通過軟體和加密技術來保護它們,我們可以建立可靠的、就係統內部狀態達成一致的計算機網路。這是 Satoshi 白皮書的關鍵見解,該白皮書現在已應用於許多不同的公有鏈(包括比特幣和以太坊)的設計中。

加密經濟學給了我們一個確定性的 核心 ——我們知道,除非一些極端情況就像發生了51%的攻擊,鏈上的操作(就像支付、或者智慧合約)會像寫定的那樣執行。

第2層解決方案背後的智慧,是我們可以將這個核心核心的確定性作為 錨點 ——我們附加其他經濟機制的一個固定點。第二層經濟機制 可以向外擴充套件公有鏈的效用,讓我們可以進行 鏈下 互動,如果有必要的話,仍然可以可靠地 引用 該核心核心。

這些構建在以太坊之上的層並不總是與鏈上操作具有相同的保證。但是它們仍然具有足夠的 不可更改性 和 安全性,所以仍然是非常有用的。尤其是當不可更改性的要求有稍微的下降時,我們能以更快的速度或更低的開銷來進行操作。

加密經濟學並不是以 Satoshi 的白皮書開始和結束的——它是我們學習應用的一種技術。它不僅在核心協議的設計中,而且在擴充套件底層區塊鏈功能的第二層系統的設計中。

Ⅰ. 狀態通道
狀態通道是一種技術,一種進行鏈下交易和其他狀態更新的一種技術。然而,在一個狀態通道內發生的事情仍然保持著非常高的安全性和不可更改性:如果出現任何問題,我們仍然可以選擇回溯到鏈上交易中確定的“硬核”。

大多數的讀者對 支付通道 比較熟悉,支付通道已經存在了好幾年了,並且最近通過閃電網路搭建在了比特幣上。狀態通道是更 通用 的支付通道,它們不僅可以用來進行支付,還可以用來在區塊鏈上進行任意的狀態更新,就像改變智慧合約的內部狀態。2015年,傑夫·科爾曼首次詳細描述了狀態通道。

解釋狀態通道如何執行的最佳方法就是看一個例子。記住,這是一個概念性解釋,這意味著我們不會涉及具體實現的技術細節。

想象一下,Alice 和Bob 想玩一個井字遊戲,贏家可以獲得1ETH。要做到這一點,最簡單的方法就是在以太坊上建立一個智慧合約,它可以實現井字遊戲的規則,並跟蹤每個玩家的操作。每次當一個玩家進行一次操作的時候,他們向智慧合約發起一個交易。當其中一個玩家贏了的時候,就像規則裡描述的那樣,智慧合約就給贏家支付1ETH。

這是可行的,但是效率低下、速度慢。Alice和Bob正在讓整個以太坊網路處理他們的遊戲,這可能多於他們的需求。每次玩家想要進行操作的時候,他們都必須支付gas費用,而且他們必須等幾個塊開採後才能採取下一步行動。

相反的,我們可以設計一個系統,讓Alice和Bob在 儘可能少地進行鏈上操作 的情況下來玩井字遊戲。Alice和Bob將能在鏈下更新遊戲的狀態,同時仍然有充分的信心,如果有必要的話,他們可以恢復到以太坊主鏈的狀態。我們把這種系統稱為狀態通道。

首先,我們在以太坊主鏈上建立一個理解井字遊戲的智慧合約“法官”,並把 Alice 和 Bob 初始化為兩個遊戲玩家。這個智慧合約包含 1ETH 的價格。

然後,Alice 和 Bob 開始玩遊戲。Alice 建立並簽署了一個描述她第一次操作的交易,並將它傳送給 Bob,Bob 也對交易簽了名,並把簽名版本發了回去,而且為自己保留一個副本。然後,Bob 建立並簽署了一個描述他第一次操作的交易,並將它傳送給 Alice,Alice 也對交易進行簽名,再發回去,併為自己保留一個副本。每次,他們都更新遊戲的當前狀態。每一個交易包含一個宣告,這意味著後面的交易總是能知道每一個操作發生的順序。

到目前為止,沒有任何事情發生在鏈上。Alice 和 Bob 只是在網上互相傳送交易,沒有任何東西傳到區塊鏈上。然而,所有的交易都能傳送到法官合約上,換句話說,它們是有效的以太坊交易。你可以把這看作是兩個人來回互相在寫一系列區塊鏈認證的支票。實際上沒有錢存入銀行或取出,但每人都有一堆他們可以隨時存入的支票。

當 Alice 和 Bob 結束這個遊戲時,也許是因為 Alice 贏了,他們可以向法官合約提交最終的的狀態(例如一系列的交易)來關閉這個通道,這樣只支付一筆交易的費用。法官合約確保這個最終狀態是雙方都簽名的,等一段時間以確保沒有人能合法的改變這個結果,然後就向 Alice 支付 1ETH 的獎勵。

為什麼我們需要法官合約所等待的“挑戰期”?

想象一下Bob沒有把最終的真實狀態傳送給法官,而是傳送之前的狀態(一個之前他能贏 Alice 的狀態)。法官只是一個傳統的合約,它本身無法知曉這是否是最新的狀態。

挑戰期給了 Alice 一個向法官合約證明 Bob 關於遊戲最終狀態的謊言的機會。如果 Bob 傳送的是更早的狀態,那麼 Alice 是保留過這個狀態的副本的,她就可以把這個狀態提交給法官合約。法官合約通過檢視宣告就能判斷Alice傳送的狀態是最新的,並且拒絕 Bob 竊取勝利的企圖。

功能和限制

狀態通道在許多應用中都非常有用,它們在執行鏈上操作方面有嚴格的改進。然而,重要的是要記住,在決定一個應用程式是否適合通道化時,就已經做了特定的權衡:

狀態通道依賴於有效性。如果 Alice 在挑戰期內丟失了網路連線(可能是Bob渴望贏得獎品,破壞了她家的網路連線),她可能無法在挑戰期結束前做出迴應。不過,Alice 可以讓他人保留自己的狀態副本,並支付一定費用,來保持她的有效性。

當參與者將在很長一段時間內交換許多狀態更新時,它們特別有用。這是因為在部署法官合約時建立的狀態通道有一個初始成本,不過一旦部署完畢,在該通道內每個狀態更新的成本就會非常低。

狀態通道最適用於具有一組確定的參與者的應用程式。這是因為法官合約必須始終知道作為通道的一部分的實體(即地址)。我們可以新增和刪除成員,但每次都需要更改合約。

狀態通道擁有強大的隱私性,因為一切都在參與者之間的通道“內部”發生,而不是廣播和記錄在鏈上。只有最初和最後的交易必須公開。

狀態通道具有即時終結性,這意味著只要雙方都簽署了一個狀態更新,這個狀態就可以被認為是最終狀態。雙方對此都有很高的保證,如果有必要,他們可以“強制執行”將此狀態放到鏈上。

在 L4 中,我們正在構建 Counterfactual 框架:一個在以太坊上的廣義狀態通道的框架。我們通用的模組化的實現,將允許開發人員即使本身不是狀態通道專家的情況下,在其應用程式中使用狀態通道。你可以在這裡閱讀關於這個專案的更多內容。我們將在2018年第一季度釋出描述我們技術的論文。

另一個以太坊上值得注意的狀態通道專案是雷電網路,它目前專注於建立一個支付通道網路,模式與閃電網路相似。這意味著你不必與每個想要與之交易的特定人員都開通一個狀態通道,你可以開啟一個連線著更大的狀態通道網路的通道,如此你可以向任何連線在這個狀態通道網路上的人付款,並且不需與額外的費用。

除了 Counterfactual 框架和雷電網路,在以太坊還有幾個用於特定於應用程式的狀態通道。例如,Funfair 為其分散式博弈平臺建立了狀態通道(他們稱之為“博弈通道”),Spankchain 已經為成人蔘與者建立了單向支付通道(他們還為其ICO使用了狀態通道),而且 Horizon Games 在他們的第一個以太坊為基礎的遊戲中也在使用狀態通道。

Ⅱ. Plasma
2017年8月11日,Vitalik Buterin 和 Joseph Poon 發表了一篇名為《Plasma:自主智慧合約》的文章。這篇論文介紹了一種新技術,可以使得以太坊每秒交易數比目前可達到的更多。

就像狀態通道,Plasma 是一種鏈下交易的技術,同事它依靠以太坊底層來實現它的安全性。不過 Plasma 是從一個新的方向實現了狀態通道,它允許建立附加在以太坊主鏈上的子鏈。這些子鏈反過來可以產生他們自己的子鏈,他們的子鏈也可以產生他們子鏈,等等。

其結果就是,我們可以在子鏈級別執行許多複雜的操作,執行擁有數千名使用者的整個應用程式,並且只需與以太坊主鏈進行儘可能少的互動。Plasma 子鏈可以更快地操作,且交易費用更低,因為它的操作不需要在整個以太坊區塊鏈存留副本。

在這裡插入圖片描述

-plasma.io/plasma.pdf-

為了理解Plasma如何執行的,我們來看一個如何使用它的例子。

讓我們假設你正在以太坊建立一個交易卡遊戲。這些卡片將是 ERC 721 不可替代的 token(如 Cryptokitties ),但這些卡片具有某些的定的特徵和屬性可讓使用者互相對戰。例如“爐石傳說”或“萬智牌”。 這種複雜的操作在鏈上執行起來是很昂貴的,所以你決定使用Plasma來代替應用程式。

首先,我們在以太坊主鏈上建立了一套智慧合約,作為Plasma 子鏈的“根”。Plasma 根包含了子鏈的基本“狀態交易規則”(諸如“交易不能花費已經花費的資產”),記錄了子鏈狀態的雜湊值,並且作為一種“橋樑” 讓使用者在以太坊主鏈和子鏈之間轉移資產。

然後,我們建立子鏈。子鏈可以擁有它們自己的共識演算法,在這個例子中,假設它使用 POA,POA 是一種簡單的、依賴於可信塊生產者(即驗證者)的共識機制。區塊生產者與 POW 系統中的礦工類似,它們是接收交易、形成區塊並收取交易費的節點。讓我們保持例子的簡單性,假設你(建立遊戲的公司)是唯一一個建立區塊的實體,即你的公司執行著幾個節點,這些節點被當做子鏈的塊生產者。

子鏈一旦建立並激活,塊生產者將定期向根合同做出宣告。這意味著他們實際上在說“我宣告子鏈中最新的一塊是X”。這些宣告被記錄在Plasma根中的鏈上,作為子鏈發生計算的證據。

現在子鏈已經準備好了,我們可以建立交易卡遊戲的基本元件。卡片本身是 ERC721 中、最初在以太坊主鏈上建立的,然後通過 Plasma 根移動到子鏈上。這引出了一個關鍵點:Plasma 允許我們擴充套件基於區塊鏈的數字資產的互動,但這些資產需要首先在以太坊主鏈上建立。然後,我們在子鏈上部署包含所有遊戲邏輯和規則的實際遊戲應用的智慧合約。

當用戶想玩我們的遊戲時,他們 只與子鏈互動 。他們可以持有資產(ERC721卡)與以太幣進行兌換,和其他使用者(無論我們的遊戲允許他們做什麼)玩遊戲,而無需直接與主鏈互動。因為只有非常少的節點(即塊生產者)必須處理交易,所以交易費會很低並且操作會很快。

但是這樣安全嗎?

通過把更多操作從主鏈移到子鏈上,很明顯我們可以進行更多操作。但這樣有多安全?發生在子鏈上的交易實際上是否真的是最終的?畢竟,我們剛剛描述了一個系統,其中只有一個實體控制著我們子鏈的塊的生產。這不是中心化嗎?公司會不會竊取你的資金,或者只要它想就能隨時拿走你的收集卡片(資產)嗎?

簡而言之,即使在單個實體控制子鏈上所有塊生產的 情況 下,Plasma 也為你提供了一個基本保證,即你始終可以將金和資產退回到主鏈上。如果一個塊生產者開始惡意行事,可能發生的最糟糕的事情就是他們迫使你離開子鏈。

讓我們瞭解一下塊生產者能惡意行為的幾種情況,並瞭解Plasma如何處理這些情況。

首先,想象一下一個塊生產者對你進行欺詐——通過建立一個你的資金立即被他們控制的假的新塊。他們是唯一的塊生產者,所以他們可以隨心所欲的建立不符合我們區塊鏈規則的新塊。就像其他區塊一樣,他們必須向根合約廣播一個包含此區塊證據的宣告。

就像上面提到那樣,使用者總是有一個最終的保證:他們可以把資產退回到主鏈上。在這種情況下,使用者(或者更確切地說一個代表他們的應用程式)能夠檢測到盜竊的企圖,並且在區塊生產者嘗試並使用他們偷到的資產之前把自己的資產退回到主鏈上。

Plasma 還建立了一種機制,防止欺詐時不能退回到主鏈上。Plasma 包含了一個機制,任何人(包括你在內)都可以向根合約釋出欺詐證明,嘗試表明該塊的生產者有欺詐行為。這個欺詐證明會包含前一個塊的資訊,並且允許我們證明根據子鏈規則,當前塊(錯誤塊)不是根據前一個塊的狀態正確產生的。如果這個欺詐被證實,那麼子鏈就會回滾到前一個區塊的狀態。更好的是,我們構建了一個處罰系統:任何對錯誤塊簽名的塊生產者都會丟失他們在鏈上的保證金。

在這裡插入圖片描述

-plasma.io/plasma.pdf-

但是提交一個欺詐證明要求你能獲取底層資料——即:用於證明欺詐的區塊的實際歷史。如果塊生產者為了阻止 Alice 向根合約提交欺詐證明,沒有把之前的塊的資訊進行共享怎麼辦?

在這種情況下,Alice的解決方案是把她的資金退回到主鏈上,並離開這個子鏈。本質上,其實是Alice向根合同提交了“證明資金”。在任何人都能向她的證明發出挑戰的延遲期後(例如,證明她在之後一個合法的區塊裡花掉了這些資金),Alice的資金就回到了以太坊主鏈上。

在這裡插入圖片描述

最後,塊生產者可以審查子鏈的使用者。如果他們想,塊生產者可以不把某些交易包含到塊中,從而有效地阻止了一個使用者在子鏈上的任何操作。如上所述,此種情況下,對於使用者來講,解決方案僅僅是把資產退回到以太坊主鏈上就可以了。

但是,資金退回本身就有風險。有一個問題是,如果子鏈上所有的人都同時退回資金會發生什麼。在大量資產退回的情況下,以太坊主鏈在挑戰期內可能沒有足夠的容量來處理每個人的交易,這意味著使用者可能會丟失資金。儘管有許多能阻止這種情況發生的技術,例如,通過延長挑戰期的方式來適應資金退回的需求。

值得注意的是,並不是所有的塊生產者都要被一個實體所控制——這只是一個的極端的例子。我們可以建立子鏈,並把塊生產者分佈在不同的實體中,即,類似公有鏈那樣,以一種分散式的方式進行管理。在這種情況下,塊生產者以上述方式進行干預的風險較小,因此使用者不得不把資產轉移到主鏈上的風險也小。

現在我們已經介紹了狀態通道和 Plasma,以下幾點對比值得注意。

有一點不同就是當狀態通道的各方都同意退出時,狀態通道可以立即執行資金回退。如果Alice和Bob都同意關閉通道並退回資金,只要他們對最終狀態達成一致,他們可以立即從狀態通道中得到他們的資產。這在plasma中是不可能的,就像上面說的,使用者必須經歷一個有挑戰期的資金退回過程。

狀態通道平均每個交易的交易費要比Plasma便宜,而且狀態通道速度更快。這就意味著我們可能在Plasma上構建狀態通道。例如,在有兩個使用者進行一系列小交易互動的應用程式上,構建狀態通道。在子鏈級別構建狀態通道比直接在子鏈上處理交易更快更便宜。

最後值得注意的是,這些只是部分描述,我們還遺漏了許多細節。Plasma 本身就處於非常早的階段。如果你想了解更多關於 Plasma 的現狀,可以看 Vitalik 最近關於 Plasma 最小實現版的提議(即精簡 Plasma 實現方案)。這裡有臺灣團隊正在實現的Plasma,你可以在這個程式碼庫中找到。OmiseGo 正在實施他們的分散式互動進行——他們進度的更新在這裡。

Ⅲ.Truebit
Truebit 是鏈下一種幫助以太坊進行繁重、複雜計算的技術。這使得它與狀態通道和Plasma不同,它們對於提高以太坊區塊鏈的總交易吞吐量更有用。正如我們在開篇部分所討論的那樣,擴容是一個多方面的挑戰,它不僅僅要提高交易吞吐量。Truebit 不會提高交易吞吐量,但它能讓基於以太坊的應用程式仍然以在主鏈上驗證的方式,做更復雜的事情。

這將使我們能夠對以太坊應用程式有用的、計算成本高、無法在鏈上進行的操作。 例如,驗證來自其他區塊鏈的簡單支付驗證(SPV)證明,這個證明可以讓以太坊智慧合約“檢查”交易是否在另一個鏈上已經發生(如比特幣或狗狗幣)。

讓我們看一個例子。想象一下你有一些代價昂貴的計算(就像 SPV 證明)需要作為應用程式的組成部分。你不能僅僅把它當做以太坊主鏈智慧合約的一部分,因為SPV證明的計算代價是非常昂貴的。記住,在以太坊上直接進行任何計算都是非常昂貴的,因為每個節點都要並行處理這種操作。以太坊的區塊有一個 最大 gas 值限制,從而為該區塊中所有交易能執行的計算總量設定了上限。一個 SPV 證明的計算代價是非常大的,即使它是區塊裡唯一的交易,它需要的 gas 值也是單個區塊 gas 值限制的許多倍。

相反,你向別人支付一小筆費用,把計算放到鏈外。收你錢的人就被稱為求解者。

首先,求解者支付智慧合約中的保證金。然後,你給求解者描述一下他們需要執行的計算。他們進行計算,並返回結果。如果結果是正確的(大多都在一秒鐘內),他們的保證金就能返回。如果事實證明求解者沒有正確執行計算——即他們有欺詐操作或犯了錯誤,那麼他們就失去保證金。

但是,我們如何判斷返回結果是正確還是錯誤呢?Truebit 使用一種稱為“驗證遊戲”的經濟機制。從本質上講,我們為被稱作挑戰者的其他團體創造了激勵,讓他們來檢查求解者的工作。如果挑戰者能夠通過驗證遊戲證明求解者提交了錯誤的結果,那麼挑戰者將得到獎勵,而求解者則丟失了他們的保證金。

由於驗證遊戲是鏈上執行的,因此它不能僅僅計算結果(這會破壞系統的整個目的,如果我們把計算在鏈上質詢,則不需要Truebit)。相反,我們強迫求解者和挑戰者來驗證他們沒有達成一致的具體操作。實際上,我們把雙方逼到一個死角——找到他們不同意結果的實際程式碼行。

在這裡插入圖片描述

-Truebit的簡化概念圖-

一旦一個特定的操作經過了驗證,那麼它就小到足以在以太坊主鏈上執行了。然後我們以太坊上的智慧合約執行這個操作,這個智慧合約能夠一勞永逸的解決哪一方在說真話,哪一方在說假話或者或者犯了錯誤。

如果你想了解更多關於Truebit的東西,你可以閱讀這篇文章,或者Simon de la Rouviere的部落格。

三. 結論

第2層的解決方案都有一個共同的見解:一旦我們擁有公有鏈提供的確定性核心核心,我們就可以將其用作擴充套件區塊鏈應用程式可用性的加密經濟系統的錨點。

現在我們已經研究了一些示例,我們可以更具體地瞭解第2層解決方案是如何應用此見解的。第2層解決方案使用的經濟機制往往是互動遊戲:它們通過為不同團體建立激勵,來相互競爭或“檢查”彼此的工作。區塊鏈應用程式可以假定某給定的宣告可能是真實的,因為我們已經為另一方建立了強激勵,來證明你提供給它的是錯誤的資訊。

在狀態通道中,這就是我們如何確認通道最終狀態的方法——通過給各團體一個“反駁”對方的機會。在 Plasma 中,這就是我們如何管理欺詐證明和資金退回的方法。在Truebit 中,這就是我們如何確保求解者說出真相的方法——通過激勵驗證者證明求解者的錯誤。

這些系統將有助於我們標註將以太坊擴充套件到龐大全球使用者群中所涉及的挑戰。 一些像狀態通道和 Plasma 等將增加平臺的交易吞吐量。像 Truebit 這樣的其他方案將可以在智慧合約中進行更加 困難 的計算,從而開創新的使用案例。

這三個例子僅代表加密經濟解決方案可能設計空間的一小部分。我們甚至沒有說像 Cosmos 或 Polkadot 這樣的“跨鏈協議”所做的工作(儘管他們還有一些其他內容都是“第2層”解決方案,但這些另一篇文章的主題)。我們還應該期望發明新的、不可思議的第2層系統,以改進現有模型,或在速度、不可更改性和開銷之間提供新的權衡。

比任何特定第二層解決方案更重要的是,進一步發展底層的技術和機制,如果可能的話,要把加密經濟設計這種底層技術放到第一位。

對於像以太坊這樣的可程式設計區塊鏈的長期價值而言,這些第2層擴充套件方案是一個有力的論據。只有在區塊鏈可程式設計時,構建第2層解決方案的經濟機制才是可能的:你需要使用指令碼語言來編寫執行互動式遊戲的程式。這對比特幣等區塊鏈來說要困難得多(或者在某些情況下,比如 Plasma 是不可能的),因為它只提供有限的指令碼功能。

以太坊允許我們構建第2層解決方案,以便在速度、不可更改性和開銷之間找到新的權衡點。這使得底層區塊鏈更適用於多種類的應用程式,因為具有不同威脅模型的不同型別的應用程式,對於不同的權衡有自然的偏好。對於我們希望保護的民族的、國家的高價值交易,我們使用主鏈。對於速度更重要的數字資產交易,我們可以使用Plasma。第2層可以讓我們在保持去中心化的特性、不可更改的特性和不影響底層區塊鏈的情況下做出這些權衡。

而且,事先很難預測給定的擴充套件方案需要哪些指令碼功能。設計Ethereum時,Plasma 和 Truebit 尚未發明。但是因為以太坊是完全可程式設計的,它實際上能夠實現我們發明的任何經濟機制。

充分利用區塊鏈技術的價值的唯一方法,是通過可程式設計區塊鏈(如以太坊)來實現這一加密經濟公式建立的 核心確定性。

感謝 Vitalik Buterin,Jon Choi,Matt Condon,Chris Dixon,Hudson Jameson,Denis Nazarov 和 Jesse Walden 對本文早期草稿的評論。

原文連結: https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4
作者: Josh Stark
翻譯&校對: 劉豔安 & Elisa
稿源:以太坊愛好者(https://ethfans.org/posts/making-sense-of-ethereums-layer-2-scaling-solutions)