摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接深入理解一框架原文已更新,請讀者前往原文閱讀這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行原理,具體操作細節(jié),安全性討論以及未來研究方向等。因此,理解是一套框架是理解的關(guān)鍵。
本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)
原文鏈接:深入理解Plasma(一)Plasma 框架原文已更新,請讀者前往原文閱讀
這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行原理,具體操作細節(jié),安全性討論以及未來研究方向等。本篇文章作為開篇,主要目的是理解 Plasma 框架。
Plasma 作為以太坊的二層擴容框架,自從 2017 年被 Joseph Poon(Lightning Network 創(chuàng)始人)和 Vitalik Buterin (Ethereum 創(chuàng)始人)提出以來[[1]](http://plasma.io/plasma.pdf),一直是區(qū)塊鏈從業(yè)人員關(guān)注的焦點[[2]](https://ethresear.ch/c/plasma)。首先需要明確的是,Plasma 實質(zhì)上是一套框架,而不是一個多帶帶的項目,它為各種不同的項目實際項目提供鏈下(off-chain)解決方案。這也是為什么很多人對 Plasma 感到疑惑的一個重要原因,因為在缺乏實際應(yīng)用場景的情況下很難將 Plasma 解釋清楚。
因此,理解 Plasma 是一套框架是理解 Plasma 的關(guān)鍵。
在介紹 Plasma 之前,不得不先介紹區(qū)塊鏈擴容。我們都知道,比特幣(Bitcoin)和以太坊(Ethereum)作為目前最廣泛使用的區(qū)塊鏈平臺,面臨的最大問題就是可擴展性(Scalability)。這里需要注意的是,區(qū)塊鏈中的可擴展性問題并不是多帶帶特指某個問題,而是區(qū)塊鏈想要實現(xiàn) Web3.0[[3]](https://medium.com/l4-media/m... 的愿景,為億萬用戶提供去中心化服務(wù)所要克服的一系列挑戰(zhàn)。雖然以太坊號稱是“世界計算機”,但這臺“計算機”卻是單線程的,每秒鐘只能處理大約 15 條交易,與目前主流的 Visa 和 MasterCard 動輒每秒上萬的吞吐量相比實在相形見絀。因此如何在保證區(qū)塊鏈安全性的情況下,提高可擴展性是目前區(qū)塊鏈發(fā)展亟待解決的問題之一。
目前關(guān)于區(qū)塊鏈擴容的解決方案無外乎兩個方向:一層(Layer 1)擴容和二層(Layer 2)擴容[[4]](https://blog.ethereum.org/201...。一層擴容也被稱為鏈上(on-chain)擴容,顧名思義,這類擴容方案需要更改區(qū)塊鏈底層協(xié)議。但同時也意味著需要將區(qū)塊鏈硬分叉。這類擴容方案就像將原來的單核 CPU 改裝成多核 CPU,從而可以多線程處理計算任務(wù),提高整個網(wǎng)絡(luò)的吞吐量。
目前最典型的一層擴容方案是 Vitalik 和他的研究團隊提出的“Sharding(分片)”,也就是說將區(qū)塊鏈劃分成不同的部分(shards),每個部分獨立處理交易。想要了解更多關(guān)于 Sharding 的信息,可以參考以太坊官方的 Wiki[[5]](https://github.com/ethereum/w...。
二層擴容也稱鏈下(off-chain)擴容,同樣非常好理解,這種擴容方案不需要修改區(qū)塊鏈底層協(xié)議,而是通過將大量、頻繁的計算工作轉(zhuǎn)移到“鏈下”完成,并定期或在需要時將鏈下的計算結(jié)果提交到“鏈上”保證其最終性(finality)。二層擴容的核心思想是將底層區(qū)塊鏈作為共識基礎(chǔ),使用智能合約或者其它手段作為鏈下和鏈上溝通的橋梁,當(dāng)有欺詐行為發(fā)生時鏈下的用戶仍然可以回到鏈上的某一狀態(tài)。雖然將計算轉(zhuǎn)移到鏈下會在一段時間內(nèi)損失最終性,但這個代價是值得的,因為這樣做不止可以極大提高區(qū)塊鏈的靈活性和可擴展性,也極大降低了用戶進行交易所需要的代價。將計算轉(zhuǎn)移到鏈下也并不意味著完全放棄安全性,因為最終的安全性還是由底層所依賴的區(qū)塊鏈來保證,因此二層擴容主要關(guān)注的問題就在于如何保證鏈上鏈下切換過程的安全性。這種思想最早被用在閃電網(wǎng)絡(luò)(Lightning Network)當(dāng)中作為比特幣的其中一個擴容方案,并取得了很好的效果。
本文所要介紹的 Plasma 就屬于基于以太坊二層擴容方案,類似的解決方案還有 State Channels 和 Trubit。這些方案雖然面向的問題有所區(qū)別,但基本思想都是將復(fù)雜的計算轉(zhuǎn)移到鏈下進行。那么,接下來我們將進入 Plasma 的世界,一窺究竟!
理解 Plasma在前文中我們已經(jīng)明白 Plasma 是一種二層擴容框架,那么該如何進一步理解 Plasma 是什么?它區(qū)別于其它二層擴容方案的地方在哪呢?
Plasma 也被稱為“鏈中鏈(blockchains in blockchains)”。任何人都可以在底層區(qū)塊鏈之上創(chuàng)建不同的 Plasma 支持不同的業(yè)務(wù)需求,例如分布式交易所、社交網(wǎng)絡(luò)、游戲等。
這里可以舉一個例子來理解 Plasma。假如企鵝公司創(chuàng)建了一個 Plasma Chain 叫作 Game Chain。用戶通過向 Game Chain 發(fā)送一些以太幣換取 Token,用于購買皮膚等游戲內(nèi)的增值商品。加入 Game Chain 的操作是在鏈上進行的,以太坊區(qū)塊鏈將這部分資產(chǎn)鎖定,轉(zhuǎn)移到 Game Chain 上。之后每次我們購買虛擬商品的交易就會轉(zhuǎn)移到鏈下進行,由企鵝公司記賬。這種方式幾乎跟我們現(xiàn)實生活中游戲內(nèi)購的體驗一樣,不僅結(jié)算迅速,而且手續(xù)費低廉(相比于以太坊之上需要給礦工支付的手續(xù)費)。那么問題來了,如果企鵝公司從中作祟,修改賬本,惡意占有我們的資產(chǎn)怎么辦?這時我們就可以提交之前每次交易的憑證到以太坊區(qū)塊鏈上,如果確實是企鵝惡意篡改了賬本,那么我們不但能夠成功取回自己的資產(chǎn),還能獲得之前企鵝公司創(chuàng)建 Game Chain 存入的部分或全部押金。
通過上面這個例子是不是已經(jīng)明白 Plasma 大致是如何工作的了?但上面這個例子還是過于簡單,只涉及用戶自己和企鵝公司。下面我們使用區(qū)塊鏈的語言對上面的例子進行解析。
首先,企鵝公司在以太坊主鏈之上創(chuàng)建了一系列智能合約作為主鏈和子鏈 Game Chain 通信的媒介。這些智能合約中不僅規(guī)定了子鏈中的一些基本的狀態(tài)轉(zhuǎn)換規(guī)則(例如如何懲罰作惡的節(jié)點),也記錄了子鏈中的狀態(tài)(子鏈中區(qū)塊的哈希值)。之后企鵝公司可以搭建自己的子鏈(可以用以太坊搭建一套私鏈)。子鏈實際上是一個完全獨立的區(qū)塊鏈,可以擁有專門的礦工,使用不同于主鏈的共識算法,例如 PoS(Proof of Stake)等。
當(dāng)子鏈創(chuàng)建完畢后,企鵝公司可以使用 ERC721 合約創(chuàng)建 token 作為游戲內(nèi)的商品(就像 Cryptokitty)。但這里需要注意的是,所有數(shù)字資產(chǎn)必須在以太坊主鏈上創(chuàng)建,并通過 Plasma 子鏈的智能合約轉(zhuǎn)移到子鏈中。用戶也需要在主鏈上購買數(shù)字資產(chǎn)后轉(zhuǎn)移到子鏈上。在上面這個例子中,Game Chain 的智能合約將主鏈上的資產(chǎn)鎖定,之后在子鏈上生成等值的資產(chǎn)。之后用戶就可以完全脫離主鏈,在子鏈上進行交易。企鵝公司在子鏈上扮演 operator 的角色,如果一切運行正常,子鏈中的礦工會正常打包區(qū)塊,并在需要時由 operator 將區(qū)塊的哈希值提交到主鏈作為子鏈的狀態(tài)更新證明。在這個過程中,用戶完全不需要和主鏈交互。
我們可以看到,將復(fù)雜的計算操作轉(zhuǎn)移到鏈下確實使得整個交易過程變得簡單。但沒有強大的共識算法和龐大的參與者,資產(chǎn)在子鏈上是很不安全的。Plasma 給了我們一種避險機制,即使 operator 作惡,我們也能取回屬于自己的資產(chǎn)。下圖(來源自[[1]](https://plasma.io/))簡單說明了這個過程。圖中,在第 4 個區(qū)塊中的交易被篡改。由于 Alice 本地保存有 Plasma Chain 中所有的區(qū)塊數(shù)據(jù),因此她可以向主鏈提交一個含有“防偽證明(Fraud Proof)”的交易。如果證明生效,那么主鏈將狀態(tài)從 4 號區(qū)塊回滾到 3 號區(qū)塊,一切恢復(fù)正常。Plasmas Chain 中的參與者也可以隨時提交資產(chǎn)證明,返回到主鏈。
到這里我們應(yīng)該已經(jīng)理解了,Plasma 所要做的工作并不是保護子鏈的安全,而是當(dāng)有安全事故發(fā)生時,保證用戶可以安全地取回自己的資產(chǎn),并返回到主鏈上。并且采用一系列經(jīng)濟激勵的方式減少作惡情況的發(fā)生。
下一篇文章將對 Plasma 運行過程的細節(jié)進行剖析。
相關(guān)資源https://plasma.io/
https://ethresear.ch/c/plasma
https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae
https://blog.ethereum.org/2018/01/02/ethereum-scalability-research-development-subsidy-programs/
https://github.com/ethereum/wiki/wiki/Sharding-FAQs
https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4
https://medium.com/@argongroup/ethereum-plasma-explained-608720d3c60e
本文的作者是蓋蓋,他的微信公眾號: chainlab
深入淺出區(qū)塊鏈 - 系統(tǒng)學(xué)習(xí)區(qū)塊鏈,打造最好的區(qū)塊鏈技術(shù)博客。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24340.html
摘要:用戶在將主鏈的資產(chǎn)如以太幣或者其它合約發(fā)布的轉(zhuǎn)移到的過程稱為存款,具體做法是直接向主鏈上的合約發(fā)送以太幣或。將賣給,獲得了以太幣,賺取了以太幣。當(dāng)子鏈中有拜占庭行為發(fā)生時,用戶之間可以共同協(xié)作執(zhí)行批量取款。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(二)Plasma 細節(jié)原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行原理,具體操...
摘要:用戶在將主鏈的資產(chǎn)如以太幣或者其它合約發(fā)布的轉(zhuǎn)移到的過程稱為存款,具體做法是直接向主鏈上的合約發(fā)送以太幣或。將賣給,獲得了以太幣,賺取了以太幣。當(dāng)子鏈中有拜占庭行為發(fā)生時,用戶之間可以共同協(xié)作執(zhí)行批量取款。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(二)Plasma 細節(jié)原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行原理,具體操...
摘要:合約會處理由子鏈提交的區(qū)塊,并且將區(qū)塊的哈希值存在主鏈上。負責(zé)處理所有子鏈上發(fā)生的交易,將其打包成區(qū)塊存儲在子鏈上,并且周期性地向合約提交區(qū)塊,將子鏈上的狀態(tài)區(qū)塊的哈希值提交到主鏈共識。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(三)Plasma MVP原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架 Plasma,介紹其基本運行原理,具體操作細...
摘要:合約會處理由子鏈提交的區(qū)塊,并且將區(qū)塊的哈希值存在主鏈上。負責(zé)處理所有子鏈上發(fā)生的交易,將其打包成區(qū)塊存儲在子鏈上,并且周期性地向合約提交區(qū)塊,將子鏈上的狀態(tài)區(qū)塊的哈希值提交到主鏈共識。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(三)Plasma MVP原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架 Plasma,介紹其基本運行原理,具體操作細...
摘要:稀疏梅克爾樹在上文中我們已經(jīng)了解到一個交易的成功的前提是需要發(fā)送方提供關(guān)于一個的完整交易歷史。因此,中使用了一種稱為稀疏梅克爾樹,的數(shù)據(jù)結(jié)構(gòu)存儲交易數(shù)據(jù),能夠在的時間復(fù)雜度驗證一個交易不存在。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(四)Plasma Cash原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架 Plasma,介紹其基本運行原理,具...
閱讀 2643·2021-11-22 15:24
閱讀 1375·2021-11-17 09:38
閱讀 2752·2021-10-09 09:57
閱讀 1200·2019-08-30 15:44
閱讀 2444·2019-08-30 14:00
閱讀 3543·2019-08-30 11:26
閱讀 2937·2019-08-29 16:28
閱讀 750·2019-08-29 13:56