91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和

理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和

發布時間:2020-07-31 09:38:39 來源:網絡 閱讀:1912 作者:蟲洞社區 欄目:開發技術

理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和
-賓夕法尼亞州的尼科爾森大橋建設照片(圖源)。羅馬人的工程原理擴展至新的應用


對于以太坊來說,2018年是專注底層架構之年。今年很多早期參與者會測試網絡極限,并且重新關注以太坊的擴容技術。

以太坊仍然處于起步階段。直到現在,它仍然沒有那么安全或者可擴展。對于任何密切關注以太坊技術的人來說,這都是很好理解的。但在過去一年,ICO推動的炒作已經過分夸大了目前的網絡能力。以太坊和web3的美好愿景—— 一個安全,易于使用的去中心化網絡,由一系列通用的經濟協議來約束,并且被數十億人來使用——這個承諾希望在即,但是只有在關鍵的底層架構完成的前提下才能實現。

那些正在致力于構建以太坊的底層架構以及擴展其性能的項目通常被稱為擴容解決方案。這些方案有很多種形式,并且常常彼此兼容或互補。

在這篇長文中,我想深入探討某一類擴容解決方案:“鏈下(off-chain)”或者說“layer 2”解決方案

首先,我們來總體討論下以太坊(以及所有公鏈)的擴容挑戰。

其次,我們會介紹解決擴容挑戰的不同方法,并且會區分“layer 1”和“layer 2”解決方案。

第三,我們會深入研究layer 2解決方案并且解釋它是如何工作的——具體來說,我們會討論狀態通道PlasmaTruebit

本文的重點是讓讀者能夠對于layer 2解決方案工作原理有一個完整和詳細的概念性理解。但是我們不會深入研究代碼或特定的實施方案。反之,我們會專注于理解用來構建這些系統的經濟機制,還有一些在所有layer 2擴容技術中得以共享的共識。


1. 公鏈的擴容挑戰

首先,重要的是理解“擴容”并不是一個單一的、特定的問題。它指的是一系列以太坊必須要解決的挑戰,從而以太坊才能被全球數十億人使用。

最常討論的擴容挑戰是交易吞吐量問題。目前,以太坊每秒可以處理大約15筆交易,而相比而言Visa的處理能力大約為45,000/tps。在過去一年,一些應用例如以太貓,或者偶發的ICO,都足夠火爆,能讓以太坊網絡“降速”并且會提高交易費用(gas)。

像以太坊這種公鏈的關鍵限制在于,每一筆交易都需要被網絡中的每一個節點處理。以太坊區塊鏈上的每個操作,一筆交易,以太貓的誕生,部署新的 ERC20 合約,每一個發生在以太坊區塊鏈上的操作都必須由網絡中的每個節點并行處理。這是設計理念決定的,它是保證公鏈權威性的一部分。節點們不用依賴其他節點來告訴它們,區塊鏈的當前狀態是什么,它們自己就能搞清楚。

這就從根本上給以太坊網絡的交易吞吐量造成了限制:它不能高于我們對單個節點所要求的交易吞吐量。

我們可以讓每個節點去承擔更多工作。如果我們將區塊的大小加倍(也就是區塊的gas值限制),也就意味著每個節點處理每個區塊的工作量大致是之前的兩倍。但是這就帶來了影響去中心化的代價問題:節點需要做更多工作意味著低性能的計算機(例如消費級設備)可能會退出以太坊網絡,如果算力集中在高性能節點運營者手中,挖礦就變得非常中心化。

所以,我們需要找到讓區塊鏈能夠在不提高單個節點工作量的情況下,負擔更多有用工作的方法。

從概念上來說,有兩種方法可以解決這個問題:

Ⅰ. 如果每個節點不必并行處理每一項操作會怎么樣?

第一種方法和我們預設的前提不同,如果我們構建一個區塊鏈,其中每個節點不需要都去處理每個操作會怎么樣?如果網絡被分成兩部分,它們還可以半獨立的進行操作,又會怎么樣?

A部分可以處理一批交易,同時B部分可以處理另一批交易。這樣就可以有效地使區塊鏈的交易吞吐量翻倍,因為我們的限制現在能夠被兩個部分同時處理。如果我們將區塊鏈分為很多不同的部分,那么我們就可以把區塊鏈的吞吐量提高很多倍。

這就是“分片”技術背后的見解,“分片”是由Vitalik的以太坊研究團隊和其他社群提出的擴容解決方案。區塊鏈被分成很多部分,它們被稱為“分片”,每個分片都可以獨立地處理交易。分片通常被稱為是“layer 1”擴容解決方案,因為這是在以太坊底層協議上實現的。如果您想了解有關分片的更多內容,我建議您閱讀extensive FAQ和這篇博文。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和

II. 如果在以太坊現有處理交易能力之外去進行更多有效操作會怎么樣?

第二種選擇是從反方向進行考慮的:并不是提高以太坊區塊鏈本身的能力,如果我們可以利用已有的能力做更多的事情,會怎么樣呢?底層以太坊區塊鏈的吞吐量是相同的,但是實際上我們可以做更多對于人們和應用程序有用的操作,例如交易,游戲中的狀態更新,或是簡單的計算。

這就是類似狀態通道,Plasma和Truebit等“鏈下”技術背后的見解。當然,這些技術都在解決不同的問題,但它們都是通過“鏈下”操作,而不是在以太坊區塊鏈上進行操作,同時仍然保證了足夠的安全性和不可更改性。

這些也被稱為“layer 2”解決方案,因為它們是構建在太坊主鏈“之上”的。他們不需要更改底層協議,他們只是以基于以太坊的智能合約的形式存在,與鏈下的軟件進行交互。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和

###2.layer 2擴容解決方案是加密經濟解決方案

在深入了解具體的layer 2擴容解決方案前,了解使得他們可行的底層概念是非常重要的。

支撐公有鏈最基礎的動力源泉就是加密經濟共識。通過仔細協調激勵機制以及通過軟件和加密算法對激勵進行保障,我們就可以創建對于系統內部狀態達成共識的可靠計算機網絡。這就是中本聰白皮書中的關鍵見解,并且這種見解現在也被應用在許多不同公鏈的設計中,包括比特幣和以太坊。

加密經濟共識給予我們一個確定性的核心——除非有極端事件例如51%×××發生,否則我們都知道鏈上操作——例如支付或者智能合約,會像寫定的那樣執行。

在layer 2解決方案背后的見解,就是我們可以把核心內核的確定性作為錨定——我們附加其他經濟機制的一個固定點。 第二層的經濟機制可以向外擴展公鏈的效用,讓我們能夠進行鏈下交互,如果有需要的話,仍然可以可靠地轉回到核心內核上。

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

加密經濟并不是隨著中本聰的白皮書而開始和結束,它只是一種我們正在學著應用的技術。加密經濟不僅體現在對于核心協議的設計,還體現在對于第二層系統的設計,其擴展了底層區塊鏈的功能性。

I. 狀態通道(State channels)

狀態通道(State Channel)是一種用于執行交易和其他狀態更新的“鏈下(off-chain)”技術。但是,一個狀態通道“內”發生的事務仍保持了很高的安全性和不可更改性。如果出現任何問題,我們仍然可以選擇回溯到鏈上交易中確定的“穩定內核”。

大部分讀者會對支付通道(payment channel)比較熟悉,這一概念已存在多年了,并且最近通過閃電網絡(lightning network)部署在了比特幣上。狀態通道是支付通道泛化出來的形式,它們不僅可用于支付,還可用于在區塊鏈上進行任意的“狀態更新”,就像在智能合約內部進行更改一樣。 2015 年,Jeff Coleman 第一次詳細介紹了狀態通道。

解釋狀態通道的運作方式的最佳方法就是來看一個樣例。請記住這是一個概念性的解釋,也就是說我們不會涉及具體實現的技術細節。

現在設想Alice和Bob想玩一場井字游戲,勝者可以獲得一個eth。為了實現這一目標,最簡單的方法就是在以太坊上創建一個智能合約,它可以實現井字游戲規則并跟蹤每個玩家的動作。每次玩家想要移動時,他們都會向合約發送一個交易。當一名玩家獲勝時,根據規則描述,合約會付給勝者一個eth。

這樣做是可行的,但是效率低下并且速度很慢。Alice和Bob正在讓整個以太坊網絡處理他們的游戲過程,這對于他們的需求來說有點過于夸張。玩家每想要移動一步都需要支付gas費用,并且還要在進行下一步移動之前等待區塊打包。

但是,我們可以設計一個新的系統,它能使Alice和Bob在玩井字游戲時產生盡可能少的鏈上操作。 Alice和Bob能夠以鏈下的方式更新游戲狀態,同時又很確定計算結果在需要時仍能將其恢復到以太坊主鏈上驗證。我們把這個系統稱之為“狀態通道”。

首先,我們在以太坊主鏈上創建一個能夠理解井字游戲規則的智能合約“Judge”,同時它也能夠確認Alice和Bob是我們游戲中的兩位玩家。該合約持有一個eth的獎勵。

然后,Alice和Bob開始玩游戲。Alice創建并簽署一個交易,它描述了她游戲的第一步,然后將其發送給Bob,Bob也對交易簽了名,再將簽名后的版本發回并為自己保留一份副本。然后Bob也創建并簽署一個描述他游戲中第一步的交易,并發送給Alice,她也會對交易簽名,再將其發回,并保留一份副本。每一次,他們都會這樣互相更新游戲的當前狀態。每一筆交易都包含一個“隨機數”,這樣就使我們可以直接知道游戲中移動的順序。

到目前為止,還沒有發生任何鏈上的操作。Alice和Bob只是通過互聯網向彼此發送交易,還沒有任何東西傳達到區塊鏈上。但是,所有交易都可以發送給 Judge 合約,換句話說,它們是有效的以太坊交易。你可以把這看作兩人彼此來回填寫了一系列經過區塊鏈認證的支票。實際上,并沒有錢從銀行中存入或取出,但是每人都有一堆可以隨時存入的支票。

當Alice和Bob結束游戲時(可能是因為Alice贏了),他們可以通過向 Judge 合約提交最終狀態(比如,交易列表)來關閉該通道,這樣就只需要付一次交易費用。Judge合約會確定雙方都對這個“最終狀態”簽名,并等待一段時間來確保沒人會對結果提出合理質疑,然后向Alice支付一個eth的獎勵。

為什么我們需要設置讓 Judge 合約等待一下的”質疑時間“?

想象Bob并沒有給 Judge 合約發送真實的最終狀態,而是發送一份之前他贏了Alice的狀態。但是 Judge 僅僅是一份合約,它本身無法知曉這是否是最新的狀態。

而質疑時間給了Alice一個機會向 Judge 合約證明Bob對游戲最終狀態撒了謊。如果有更近期的狀態,她就會有一份已簽名交易的副本,并且可以將其提供給 Judge合約。Judge 合約可以通過檢查隨機數來判斷Alice的版本是否是最新的,然后駁回Bob竊取勝利的企圖。

特性和限制

狀態通道在許多應用中都很有用,它們對于在鏈上執行操作進行了嚴密的改進。但重要的是要注意,在決定應用程序是否適合被通道化時,需要做出一些特定的權衡:

  • 狀態通道依賴于有效性。如果Alice在質疑時間內掉線了(可能是Bob渴望贏得獎品,破壞了她家的網絡連接),她可能無法在質疑時間結束前做出回應。但是,Alice可以付費給其他人,讓其保存一份她的狀態副本,并作為她的權益代表,以保持系統的有效性。
  • 當參與者將在長時間內交換大量狀態更新時,狀態通道非常有用。這是因為部署 Judge 合約時創建一個通道會產生初始成本。但是一旦部署完成,該通道內每一個狀態更新的成本都會非常低。
  • 狀態通道最適于有一組確定參與者的應用程序。這是因為 Judge 合約必須始終知曉所有參與到給定通道的實體(比如,地址)。當然我們可以增加或刪除用戶,但是每次都需要更改合約。
  • 狀態通道有很強的隱私性。因為一切都參與者之間的通道“內”發生,而不是公開廣播并記錄在鏈上。只有開頭和結尾的交易必須公開。
  • 狀態通道具有即時終結性。這意味著只要雙方都簽署了一個狀態更新,這個狀態就可以被認為是最終狀態。雙方都有明確保證,如果有必要,他們可以將狀態“強制執行”到鏈上。

我們 L4 團隊正致力于創建 Counterfactual框架:一個能在以太坊上推廣普及使用狀態通道的框架。我們的總體目標是使開發者可以在他們的應用程序中以模塊化的方式使用狀態通道,而不需要成為狀態通道的專家。你可以在這里了解更多該項目的信息。我們將在 2018 年的第一季度發布技術細節文件。

另一個值得注意的針對以太坊的狀態通道項目是 Raiden,該項目目前正致力于構建一個支付通道網絡,使用了和閃電網絡類似的范式。這意味著你不必與想要交易的特定人員開通狀態通道。你可以與一個連接到更大型通道網絡的實體架設一個單獨的通道,這樣你就能夠向連接到同一網絡的任何人支付而無需額外費用。

除了 Counterfactual 和 Raiden,在以太坊上還有幾個用于特定于應用程序的狀態通道。例如,Funfair 就為他們的去中心化×××構建了他們稱之為“Fate channels”的狀態通道,SpankChain 為成人產業演員構建了一套單向支付通道(他們還為其 ICO 使用了狀態通道),還有 Horizon Games 也在他們的第一款基于以太坊的游戲中使用了狀態通道。

II. Plasma

2017 年 8 月 11 日,Vitalik Buterin 和 Joseph Poon 發表了一篇題為《Plasma:自主智能合約》( Plasma: Autonomous Smart Contracts)的論文。這份論文介紹了一種新技術,它能使以太坊每秒可以處理的交易遠比現在更多。

就像狀態通道一樣,Plasma 是一種管理鏈下交易的技術,同時依靠底層的以太坊區塊鏈來實現其安全性。但是 Plasma 采用了一種新思路,它是通過創建依附于以太坊“主”區塊鏈的“子”區塊鏈。這些子鏈又可以相應地產生它們自己的子鏈,子鏈的子鏈又可以產生子鏈,如此遞進下去。

其結果就是,我們可以在子鏈級別上執行許多復雜的操作,在與以太坊主鏈保持最低限度交互的情況下,運行擁有數千名用戶的整個應用程序。Plasma 子鏈可以更快地操作,承擔的交易費用更低,因為子鏈上的操作無需在整個以太坊區塊鏈上進行重復。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和
-plasma.io/plasma.pdf -

為了弄清楚 Plasma 的運行原理,我們來看一個如何使用它的樣例。

讓我們試想你正在創建一個基于以太坊的集換式卡牌游戲。這些卡牌是一些基于 ERC 721 不可替代的token(比如 Cryptokitties),但是擁有一些特定的特征和屬性,可以讓玩家相互對戰——就像爐石傳說或者萬智牌一樣。這種復雜操作在鏈上執行的成本很高,所以你決定在你的應用程序中使用 Plasma 作為替代方案。

首先,我們在以太坊主鏈上創建一系列的智能合約,它們可作為 Plasma 子鏈的“根節點”。Plasma 根節點包含了子鏈的基本“狀態交易規則”(諸如“交易無法消費已消費過的資產”),也記錄了子鏈狀態的哈希值,并建立一種允許用戶在以太坊主鏈和子鏈間轉移資產的“橋接”服務。

然后,創建我們的子鏈。子鏈可以擁有自己的共識算法,在這個例子中,我們假設它使用了 PoA(Proof of Authority),POA是一種依賴于可信區塊生產者(比如,驗證者)的簡單共識機制。在“工作量證明”系統中,區塊生產者與 POW 系統中的礦工類似,它們是接收交易,形成區塊并收取交易費用的節點。為了讓樣例簡單點,假設你(也就是創建游戲的公司)是創建區塊的唯一實體,即你的公司運行著幾個節點,這些節點就是子鏈的區塊生產者。

一旦子鏈創建并激活,區塊生產者會定期的向根節點合約進行提交。這意味著他們實際上在說“我提交的 X 是子鏈中當前最新的區塊”。這些提交被當做子鏈中事務的證明,鏈上記錄在 Plasma 根節點里。

現在子鏈已經準備好了,我們可以創建集換式卡牌游戲的基本組件。這些卡片是基于 ERC721,在以太坊主鏈上初始化,然后由 Plasma 根節點轉移到子鏈上。這里引入了一個關鍵點:Plasma 可以擴展我們與基于區塊鏈的數字資產的交互,但是這些資產應當首先創建在以太坊主鏈上。然后,我們將實際的游戲應用程序以智能合約的方式部署到子鏈上,這樣子鏈就包含了游戲所有的邏輯和規則。

當用戶想要玩我們的游戲時,他們只需要和子鏈交互。他們可以持有資產(ERC721 卡牌),可以為了以太幣購買并交換它們,可以與其他用戶對戰,還有其他任何游戲中允許的行為,而這些行為都不需要與主鏈直接交互。因為只有很少的節點(比如,區塊生產者)才需要處理交易,所以交易費會很低,操作也能更快。

但是這種模式安全嗎?

通過把更多操作從主鏈遷移到子鏈上,很明顯我們可以執行更多的操作了。但是這樣安全嗎?發生在子鏈上的交易是否具備權威性?畢竟,我們方才描述的系統只有一個中心實體控制著子鏈的區塊生產。這樣不是中心化嗎?這樣公司不是隨時都能竊取你的資產或者拿走你收集的卡牌嗎?

簡而言之,即使是在子鏈中單個實體完全控制所有區塊生產的情況下,Plasma 也為你提供了一個基本保證,即你始終都可以將你的資金和資產退回到主鏈上。如果一個區塊生產者開始惡意行事,最壞的情況也僅僅是強迫你離開這個子鏈。

讓我們了解一下區塊生產者能惡意行為的幾種方式,同時了解 Plasma 會如何處理這些情況。

首先,想象一個區塊生產者試圖通過說謊欺騙你,他們可以通過創建一個偽造的新區塊,聲稱你的資金被他們控制了。由于他們是唯一的區塊生產者,所以他們可以自由引入一個并不遵循我們區塊鏈規則的新區塊。就像其他區塊一樣,他們也得將這個區塊存在的證據提交給 Plasma 根節點合約。

如上所述,用戶有能將他們的資產隨時退回到主鏈上的最終保障。在這個情景下,用戶(或者更確切來說是代表他們權益的應用程序)會偵測到這種盜竊的企圖,并在區塊生產者嘗試和使用他們“偷到”的資產之前把自己的資產撤回到主鏈上。

Plasma 還創建了一種機制,防止欺詐時不能退回到主鏈上。Plasma 包含了一種機制,任何人(包括你)都可以向根節點合約發布欺詐證明(fraud proof),試圖證明區塊生產者作弊。這個欺詐證明會包含之前區塊的信息,并且允許我們證明,根據子鏈中的交易狀態規則,這個錯誤的區塊并不能正確接上之前的狀態。如果欺詐被證實,那么子鏈就會“回滾”到前一個區塊。更妙的是,我們還構建了一種體系:任何簽出錯誤區塊的區塊生產者會被處罰,他們會因此丟失鏈上的保證金。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和
plasma.io/plasma.pdf

但是提交欺詐證明需要訪問底層數據,即需要用之前的實際區塊歷史來證明欺詐。如果區塊生產者為了防止Alice向根節點合約提交欺詐證明,而并沒有共享之前區塊的信息的話,那怎么辦?

在這種情況下,Alice的解決方案就是收回資產并脫離子鏈。本質上說,愛麗絲向根節點合約提交了一份“欺詐證明”。在一段延遲期內,任何人都可以質疑該證明(比如,展示后面的合法區塊證明實際上她消費了這些資產)。之后,Alice的資產將會被移回到以太坊主鏈上。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和
plasma.io/plasma.pdf

最后,區塊生產者可以審查子鏈中的用戶。如果區塊生成者愿意,他們可以直接不在其區塊中包含特定交易,從而有效阻止用戶在子鏈上執行的任何操作。如上所述,解決方案僅僅是把我們所有的資產退回到以太坊主鏈上就可以了。

但是,資產退回本身也會帶來風險。其中一個問題就是如果所有使用這一子鏈的用戶同時都要退回資產會怎么樣。在這種大量提現的情況下,以太坊主鏈可能沒有足夠的容量來處理每個人在質疑期內的交易,也就意味著用戶可能會丟失資金。盡管有許多可能的技術能夠防止這種情況發生,例如,通過延長質疑時間的方式來響應資產退回的需求。

值得注意的是,并不是所有的塊生產者都必定被一個實體所控制——這只是我們案例中的極端個例。我們可以創建子鏈,把區塊生產者分布在許多不同實體間,即像公有鏈一樣真正地去中心化。在這種情況下,區塊生產者如上述方式進行干預的風險更小,而用戶不得不將資產轉移回以太坊主鏈的風險也更小。

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

它們之間一個不同之處在于,當狀態通道中所有參與方都一致同意退回資產時,狀態通道可以立即執行退回。如果Alice和Bob同意關閉通道并撤回他們的資金。只要他們都認同最終狀態,他們就可以立即從狀態通道取得他們的資產。這在 Plasma 上是不可能的,如上所述,用戶在取出資產的過程中必須經歷一個質疑時間。

與 Plasma 相比,狀態通道每筆交易的平均交易費更便宜,而且速度更快。這意味著我們應該可以在 Plasma 子鏈上構建狀態通道。例如,一個應用程序中兩個用戶在進行一系列的小型交易。在子鏈級別構建狀態通道應該會比直接在子鏈上執行每個交易更加便宜和迅速。

最后,需要注意的是這些只是部分描述,我們還遺漏了許多細節。Plasma 本身還處于非常早期的階段。如果你有興趣了解 更多關于 Plasma 的現狀,可以查看 Vitalik 最近的一個關于 “最小化可行性Plasma(Minimal Viable plasma)” 的提議(即精簡的 plasma 實施方案)。一個臺灣的團隊正在進行這項工作,可以在這個代碼庫中查看。OmiseGo 正在研究他們的去中心化交易的實施,他們在這里發布了進度最近更新信息。

####III. Truebit
Truebit 是一種幫助以太坊在鏈下進行繁重或復雜計算的技術。這使得它與狀態通道和Plasma不同,它們對于提高以太坊區塊鏈的總交易吞吐量更有用。正如我們在開篇部分所討論的那樣,擴容是一個多方面的挑戰,需要的不僅僅是更高的交易吞吐量。Truebit不會讓我們完成更多的交易,但它能讓基于以太坊的應用程序去處理更復雜的事務,并且仍能被主鏈驗證。

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

讓我們看一個例子。試想你有一些代價很高的計算(比如 SPV 證明)需要作為以太坊應用程序的一部分來執行。你不能單純的把它當做以太坊主鏈上智能合約的一部分,因為SPV證明的計算成本是非常昂貴的。請記住,因為每個節點都要并行處理這種操作,所以在以太坊上直接進行任何計算都是非常昂貴的,。以太坊的區塊有最大費用(gas值)限制,從而為該區塊中所有交易能執行的計算總量設置了上限。但是SPV證明的計算成本實在太大,即使它是區塊中唯一的交易,它需要的gas值也是單個區塊gas值上限的許多倍

相反,鏈下你可以只需要向人支付很少的費用來完成計算。去完成計算并由你付費的這個人被稱作解算者(solver)。

首先,解算者支付智能合約中的保證金。然后,你給解算者一份他們需要計算內容的描述,它們運行計算,并返回結果。如果結果是正確的(大多在一秒鐘內),他們的保證金將被退回。如果事實證明,解算者并沒有正確地執行計算——比如他們欺詐或犯了錯誤——他們就會失去他們的保證金。

但是我們如何判斷結果是正確的還是錯誤的?Truebit使用一種叫做“驗證游戲”(verification game)的經濟機制。從本質上講,我們為其他被稱為挑戰者的參與方創造了激勵,來檢查解算者的工作。如果挑戰者能夠通過驗證游戲證明解算者提交了錯誤結果,那么他們會獲得獎勵,而解算者則會失去保證金。

因為驗證游戲是在鏈上執行的,所以它不能直接地計算結果(這會破壞整個系統的設計初衷——如果我們可以在鏈上進行計算,我們就不需要Truebit)。相反,我們強迫解算者和挑戰者確定他們意見不一致的具體操作實際上,我們將雙方逼入一個死角——找到導致他們對結果意見不一的具體代碼行。
理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和
一旦確定了具體的操作,實際上它就足夠小到可以由以太坊主鏈執行了。然后,我們通過以太坊的智能合約執行該操作,該合約一勞永逸地解決了哪一方說了真話,哪些又是謊言或錯誤。

如果您想了解更多有關Truebit的信息,你可以閱讀這篇論文,或者閱讀Simon de la Rouviere的博客文章。

###結論

layer 2解決方案都有一個共同見解:一旦我們有了公鏈提供的有確定性的核心,我們就可以把它作為加密經濟系統的錨定,然后擴展區塊鏈應用的可用性。

現在我們已經研究了一些示例,我們可以更具體地了解layer 2解決方案如何應用這種見解。layer 2解決方案所使用的經濟機制往往是互動游戲:它們通過為各參與方創造激勵來相互競爭或彼此“檢查”工作。區塊鏈應用程序可以假設某個給定的聲明可能是真的,因為我們已經為另一方創造了強烈的激勵來提供證明其錯誤的信息。

在狀態通道方案中,就是通過給各方機會互相“反駁”,來確定通道的最終狀態。在Plasma方案中,就是如何管理欺詐證據和提現的方法。在Truebit方案中,我們通過激勵挑戰者來證明解算者是錯誤的,以確保解算者給出真實結果。

這些系統將有助于解決將以太坊擴展到龐大的全球用戶群所涉及的一些挑戰。有些系統,像狀態通道和Plasma,將會增加平臺的交易吞吐量。而其他的系統,像Truebit,可以將更困難的計算作為智能合約的一部分,從而開創新的使用案例。

這三個示例僅代表了加密經濟擴容解決方案設計可能性的一小部分。我們甚至沒有涉及像Cosmos或Polkadot這樣的“跨鏈協議”所做的工作(盡管這些協議到底是“layer 2”解決方案還是其他東西,這已經完全是另一篇文章的主題)。我們還應該期望發明新的、意想不到的layer 2系統,這些系統可以改進現有模型,或者在速度,不可更改性和開銷成本之間提供新的權衡。

比任何特定的layer 2解決方案更重要的是,底層技術的進一步發展以及使其首先成為可能的機制:加密經濟的設計。

這些layer 2擴容方案有力證明了像以太坊這樣的可編程區塊鏈的長期價值。建立基于layer 2解決方案的經濟機制,只有在可編程區塊鏈上才有可能:因為你需要用腳本語言編寫執行交互式游戲的程序。由于像比特幣這樣的區塊鏈只提供了有限的腳本功能,這對于它們來說很困難(或者有些情況下,比如 Plasma,這是完全不可能實現的)。

以太坊允許我們創建layer 2解決方案,以便在速度,不可更改性和成本開銷之間找到新的權衡點。這可以讓底層區塊鏈更能夠適用于更多種類的應用程序,因為面對不同威脅模型的不同類型應用程序會對不同的權衡模式有天生的偏向。對于需要保障乃至國家性范圍內的高價值交易時,我們可以使用主鏈。對于更偏重交易速度的數字資產交易,我們可以使用 Plasma。layer 2方案讓我們能夠在不影響底層區塊鏈的前提下取得權衡,并保持去中心化和不可更改性。

而且,很難事先預測給定的擴展方案需要哪些腳本功能。當設計以太坊的時候,Plasma和 Truebit還尚未發明。但是因為以太坊是完全可編程的,實際上它能夠實現我們能發明的任何經濟機制。

區塊鏈技術的價值是建立在加密經濟共識的確定性內核,而諸如以太坊這樣的可編程區塊鏈才是能夠充分利用這種價值的唯一途徑。


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

相關閱讀推薦:

以太坊智能合約之批量轉幣
以太坊網絡架構解析
以太坊搭建聯盟鏈詳細教程

添加微信(cdong1024),加入區塊鏈開發者技術交流群
蟲洞社區:https://www.uzanapp.com?fr=51CTO ——中美區塊鏈開發學習社區

理解以太坊的Layer 2擴容解決方案:狀態通道(State Channels)、Plasma 和![在這里插入圖片描述](述" />

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳平市| 特克斯县| 绥阳县| 西乌珠穆沁旗| 抚顺市| 德令哈市| 当涂县| 南郑县| 嘉禾县| 桦甸市| 堆龙德庆县| 荔浦县| 涿州市| 澄城县| 河北区| 罗田县| 廉江市| 荥经县| 大兴区| 赤城县| 海晏县| 两当县| 资阳市| 内黄县| 龙海市| 托克托县| 乌兰浩特市| 玉环县| 巴里| 西安市| 株洲市| 高碑店市| 巴南区| 图们市| 昌吉市| 泗水县| 剑河县| 博客| 遵化市| 永康市| 宜兰市|