如何正確的理解Plasma和Plasma Cash的基礎(chǔ)概念
前言:我們知道Plasma是以太坊擴容方案之一,那么,到底什么是Plasma?什么是Plasma Cash?本文給我們一些簡要的說明。
Plasma是一種設(shè)計模式,它允許鏈外消息驅(qū)動鏈上資產(chǎn)的轉(zhuǎn)移。它通過將交易吞吐量轉(zhuǎn)移到Plasma鏈來實現(xiàn)對根鏈的擴展。你可以把它看作是一個教授需要在短時間內(nèi)批改許多考卷。教授可以將這項工作委托給助教,他們查看考卷上的每個問題并計算對應(yīng)的分?jǐn)?shù),但只向教授報告總分。
每個Plasma鏈將交易排序的信息壓縮到單個哈希,并存儲在根鏈上。像比特幣和以太坊這樣的就是根鏈——這些區(qū)塊鏈具有更強的安全性和去中性化保證(安全性和活性)。本篇文章將使用以太坊作為根鏈例子貫穿全文。
“Plasma 不是在中心化服務(wù)器上貼上一個Merkle樹。”——Vitalik Buterin,2018年于TechCrunch,瑞士Zug
Plasma設(shè)計的兩個主要分支稱為Plasma MVP 和Plasma Cash。首先,讓我們了解一下背景信息,從宏觀角度了解下簡單的用戶流,之后再更深入地探討每個部分。
在開始之前,讓我們先快速了解一下基本概念:
稀疏Merkle樹:一種大小不變的完美Merkle樹,之所以稱之為“稀疏”,是因為大部分葉子是空的。
經(jīng)濟最終性:保證操作永遠(yuǎn)不會逆轉(zhuǎn),除非提供最終結(jié)果的一方將一大筆錢燒毀。
UTXO:未消費交易輸出(unspent transaction output)。每筆交易都必須具有來自有效UTXO 集的輸入。每筆交易的輸出將成為新的UTXO 集的一部分。比特幣就使用UTXO模型。
現(xiàn)在開始闡述Plasma。
1: 運營者將Plasma合約部署到主網(wǎng)
像交易所這樣的實體,如希望擁有高交易吞吐量和低延遲(甚至實現(xiàn)即時的經(jīng)濟最終性)的實體將受益于運行Plasma鏈并成為運營者。合約所有者包含在合同的初始化中。
2:Plasma運營者創(chuàng)建區(qū)塊
運營者的眾多角色之一是聚合和排序交易,并將其打包到區(qū)塊中,然后將Plasma區(qū)塊的哈希提交到根鏈。
實現(xiàn)Plasma的方法有很多種。不同的Plasma鏈可以有不同的治理規(guī)則、不同的token、存儲狀態(tài)的方法等,但所有Plasma鏈會定期向根鏈提交哈希,以便繼承根鏈的安全性。
3: Kanye是一個新用戶,將ETH存入Plasma合同,并分配返回PETH
在兩種主要的Plasma設(shè)計中,你可以將任何token存入Plasma鏈并接收到與之相對應(yīng)的token。所以,如果Kanye存入ETH,他會得到PETH!如果他存入BTC,他就會得到PBTC!(Plasma Cash的規(guī)范更好地支持ERC721 資產(chǎn),如加密貓,但并非所有Plasma規(guī)范都支持存入任何token)。
4: Kanye 向Donald匯款,但Donald還不在Plasma智能合約中
Kanye 并不僅限于匯款給那些已經(jīng)是Plasma合約成員的人!他也可以匯款給Donald這樣的以太坊巨鯨。
在“Plasma Cash”規(guī)范中,你存入的每個代幣都會被分配唯一的ID。這些唯一ID存儲在稀疏Merkle樹中。代幣有所分配的(Merkle樹的)葉子的索引,而這些索引是這些代幣可用于交易的唯一位置。
想想買賣房產(chǎn)——當(dāng)你交易房子時,房子不會移動,但擁有房子鑰匙的人會改變,房子的契據(jù)是當(dāng)事人的記錄以及所有權(quán)易手的頻率。這使得它非常容易檢查token的歷史記錄,因為你能夠輕易的在Merkle樹中查找到這些記錄!
在這里,我們具體看Kanye發(fā)送給Donald的token的索引。Kanye 在發(fā)送token時必須包含token的歷史記錄。如果token被多次交易,其歷史記錄可能會變得非常冗長!稍后我們將討論如何改善這種情況。但就目前而言,這對Donald來說可以接受,他只需要下載他關(guān)心的代幣交易歷史。
5: Donald 有兩種選擇: 繼續(xù)花費PETH 或創(chuàng)建退出交易以在根鏈上兌換出ETH
Donald 不需要向運營者提交消息成為Plasma合約會員,以實現(xiàn)退出PETH并贖回ETH。Donald想立即換掉代幣以保持匿名,所以他不想繼續(xù)使用他的PETH。
他拿到了token的歷史記錄,以證明所有權(quán),并將記錄放入提交到 Plasma 合約的退出請求中。他的退出交易還包括gas費和作為抵押的保證金(以防止撒謊)。當(dāng)一切停當(dāng),如果沒有人挑戰(zhàn)Donald,他能在根鏈上用PETH贖回ETH。
棒極了!我們已經(jīng)在宏觀上闡述了一個理想的場景,因此讓我們深入探討這一工作流中的每個部分:交易、退出和Plasma運營者的角色。請務(wù)必注意,它存在多種規(guī)范,不同執(zhí)行方案的規(guī)范之間存在差異,但以下內(nèi)容會讓你熟悉一些核心的Plasma 概念和詞匯。
交易
每當(dāng)Kanye 發(fā)送token時,他還必須同時發(fā)送該token的歷史記錄。在Plasma Cash中,用戶只需下載他們關(guān)注的代幣的交易歷史。分片客戶端驗證允許每個用戶的數(shù)據(jù)負(fù)載更輕。
但是,如果一枚代幣被花了很多很多次,那么該代幣的歷史就會變得很長并難以在交易中傳輸。解決這一問題的一種提議是引入檢查點。一旦檢查點最終確定,客戶只需提供從該檢查點(有最終性)開始的證明,這樣可以將證明的大小變成常數(shù),而不是線性增長。
Plasma Cash檢查點基于加密經(jīng)濟聚合簽名,為在Y區(qū)塊高度的用戶X對代幣的所有權(quán)提供了經(jīng)濟保證。
遺憾的是,在Plasma Cash中發(fā)送任意小面額的代幣更加困難(Plasma借記或狀態(tài)通道是對這一缺陷的改進方案)。當(dāng)調(diào)用存款函數(shù)時,用戶指定其存款的面額,這一方案使得Plasma Cash適合發(fā)送ERC721非同質(zhì)token,而Plasma MVP的UTXO模型更適合處理任意面額交易。
退出
當(dāng)提款被認(rèn)為是如下情況,退出就產(chǎn)生了挑戰(zhàn):
1. 退出一枚已經(jīng)花過的代幣
2. 雙重退出代幣
3. 退出有無效歷史記錄的代幣
任何人都可以提交欺詐證明來挑戰(zhàn)退出者,如果他們在撒謊,他們將失去他們的保證金。
黑客攻擊怎么辦?
Plasma鏈安全保證與根鏈一樣好。如果Plasma鏈被黑客攻擊,黑客必須提交退出交易,以得到他想竊取的所有資金!在Plasma Cash中,黑客必須在他的退出交易中包括保證金,他不能帶著所有竊取的資金潛逃。
Plasma運營者
Plasma運營者的主要作用是將交易聚合到區(qū)塊中,并將每個Plasma區(qū)塊的Merkle 樹發(fā)布到根鏈。
在更復(fù)雜的設(shè)計中,中心運營者可以由PoS 驗證者取代,從而緩解對交易審查的擔(dān)憂。然而,擁有中心運營商有很多好處,而且我們可以用Plasma運營者的保證金做很多有趣的事情:
· 即時經(jīng)濟最終性!由于運營者負(fù)責(zé)創(chuàng)建區(qū)塊,因此他們可以提供有關(guān)交易包含和排序的保證。運營者會因為撒謊而付出失去保證金的代價,因此用戶會立即知道他們的交易是否包括在內(nèi)。
· 無效退出處罰:可以懲罰運營者允許無效退出的通過,并消減其保證金中的資金。
· Casper驗證:運營者可以是Casper PoS驗證者(驗證者有保證金)
· 你能想到其他的嗎?
Plasmas總結(jié)