什么是區(qū)塊鏈Plasma鏈
Plasma的設(shè)計模型使得人們可以通過發(fā)送鏈下消息來轉(zhuǎn)移鏈上資產(chǎn)。它通過將交易吞吐量轉(zhuǎn)移到Plasma鏈上實現(xiàn)根鏈的擴容。 你可以想象這樣一個場景:一位教授需要在短時間內(nèi)給許多試卷打分數(shù)。他可以將這個工作分配給助教,由后者評閱試卷上的作答,并合計每題小分,只將最終分數(shù)報告給教授。
每條Plasma鏈都會將有關(guān)交易順序的消息換算成一個哈希值存儲在根鏈上。比特幣和以太坊都屬于根鏈——這兩條區(qū)塊鏈具有很高的安全性,并且通過去中心化保證了(安全性和活性)。本文列舉的所有例子均將以太坊作為根鏈。
“Plasma不是帶有默克爾樹的中心化服務(wù)器。 —— Vitalik, 2018 年瑞士楚格 TechCrunch 。
Plasma設(shè)計模型有兩個主要的分支:Plasma MVP 和 Plasma Cash 。如果你想了解更多關(guān)于 Plasma 的研究譜系,請點擊文末鏈接。讓我們先了解一些背景知識并簡要介紹使用流程,再深入探究各個部分。
知識點速覽
稀疏的默克爾樹:大小恒定的 完美 默克爾樹,之所以稱作‘稀疏’是因為多數(shù)葉節(jié)點都是空的。
經(jīng)濟確定性:確保操作的不可撤回性,除非某一方花掉一大筆錢來產(chǎn)生另一種結(jié)果。
UTXO:unspent transaction output(未花費的交易輸出)的縮寫。每個交易必須從有效的 UTXO 集合中得到輸入值。每個交易的輸出值組成新的 UTXO 集合。比特幣使用的就是 UTXO 模型。
前方高能預(yù)警!
1:想要成為 Plasma 運營者的人(wannabe Plasma Operator)將 Plasma 合約部署到主網(wǎng)上
如果交易所之類的實體想要實現(xiàn)高交易吞吐量和低延遲性(甚至是即時經(jīng)濟確定性),不妨運行一條 Plasma 鏈并成為 Plasma 運營者。合約初始化過程中就會將合約所有者包含在內(nèi)。
2:Plasma 運營者打包一個塊
運營者具有多重身份,其中一種是將交易聚集起來并排序打包進區(qū)塊,然后將這個 Plasma 區(qū)塊的哈希值提交至根鏈。
Plasma 有多種運行方式。不同的 Plasma 鏈可以有不同的治理規(guī)則、不同的代幣和狀態(tài)存儲方式等等,不過所有 Plasma 鏈會定期將哈希值提交至根鏈,以便確保與根鏈一樣的安全性。
3:新用戶 Kanye 在 Plasma 合約中質(zhì)押以太幣換取 PETH
在主要的兩個 Plasma 設(shè)計模型中,你可以質(zhì)押任意類型的代幣,該代幣會被轉(zhuǎn)化成符合 ERC20 標準的代幣,并通過 Plasma 鏈返還給用戶。如果 Kanye 質(zhì)押了以太幣,他將獲得 PETH !如果他質(zhì)押了比特幣,他將獲得 PBTC ?。≒lasma Cash 技術(shù)規(guī)范更支持 CryptoKitTIes 之類的 ERC721 資產(chǎn),不過并非所有 Plasma 技術(shù)規(guī)范都支持任意類型代幣的質(zhì)押。)
4:Kanye 向非 Plasma 智能合約成員 Donald 匯款
Kanye 并不是只能向 Plasma 合約以內(nèi)的成員匯款!他也可以向以太幣大佬 Donald 匯款。
在 Plasma Cash 實現(xiàn)中,你質(zhì)押的每種代幣都會被分配一個特殊的 ID 。 這些特殊的 ID 都存儲在稀疏的默克爾樹上。代幣交易只會改變代幣所在葉節(jié)點的索引(index)。這就好比房屋買賣——在進行交易之時房屋是不會動的,然而房主會更換,房契會記錄交易相關(guān)方以及換手率。這極大降低了檢查代幣歷史記錄的難度,因為你知道該看樹上的哪個位置!
讓我們關(guān)注一下 Kanye 發(fā)送給 Donald 的代幣的索引。Kanye 在發(fā)送代幣之時必須包括該代幣的歷史記錄。如果代幣經(jīng)歷過多次交易,就會生成龐大的歷史記錄!我們將來會設(shè)法改善這一點。對 Donald 來說已經(jīng)很棒了,因為他只需下載自己關(guān)心的代幣的歷史記錄。
5:Donald 有兩個選擇:是繼續(xù)花費 PETH ,還是創(chuàng)建一個“退出”交易在根鏈上換回以太幣。
如果 Donald 要將 PETH 換回以太幣,他無需像請求加入時那樣向運營者提交信息。出于匿名之需,Donald 想要立刻換回他的代幣,因此不想繼續(xù)交易 PETH 了。他取一段代幣的歷史記錄來證明所有權(quán),并將其放入退出 Plasma 合約的請求之中。他的“退出”交易還包括 Gas 費和作為質(zhì)押的 保證金 。如果審核通過,且沒人質(zhì)疑 Donald ,Donald 就可以在根鏈上將 PETH 換回以太幣。
太棒了!我們已經(jīng)充分解析了最佳案例的真實場景,下面讓我們深入研究一下各個部分吧:交易、退出機制和 Plasma 運營者的作用。要注意的是不同的實施方案之間存在各種規(guī)則和差異,不過你可以從下文了解一些核心的 Plasma 概念和術(shù)語。
交易
Kanye 在發(fā)送代幣之時必須將代幣的歷史記錄一起發(fā)送出去。Plasma Cash 的用戶只需下載并查看自己關(guān)心的代幣的歷史記錄。分片客戶端驗證能夠減少每位用戶的數(shù)據(jù)加載量。
然而,如果一個代幣經(jīng)歷的交易次數(shù)過多,會導(dǎo)致歷史記錄過大而無法交易。我們建議可以通過設(shè)置檢查點來解決這一問題。 檢查點(Checkpoint)會將原先線性大小的證明縮減成一個常量,一旦檢查點敲定后,客戶端就可以提供上面的證明。Plasma Cash 檢查點建立在加密經(jīng)濟聚合簽名之上,為代幣在區(qū)塊高度 Y 上由 X 所有這一紀錄提供經(jīng)濟保證。
遺憾的是,在 Plasma Cash 上發(fā)送任意小額的代幣會困難得多(Plasma Debit 或狀態(tài)通道可以解決這一問題,詳情見延伸閱讀) 。用戶通過調(diào)用押金函數(shù)來指定押金金額。雖然通過 Plasma Cash 發(fā)送 ERC721 代幣比較好,但是 Plasma MVP 的 UTXO 模型可以更好地處理任意金額的代幣交易。
退出機制
·可以針對滿足以下情況的退款發(fā)起退出挑戰(zhàn):
·要求退回已花費的代幣
·要求退回已退回的代幣
·要求退回有無效歷史記錄的代幣
任何人都可以提交欺詐證明來挑戰(zhàn)退出者,一經(jīng)證實會沒收退出者的保證金。
如果遭遇攻擊怎么辦?
如果 Plasma 鏈遭受黑客攻擊,黑客必須提交”退出“交易才能成功偷走所有資金!在 Plasma Cash 上,黑客必須在“退出”交易中包括一張(作為安全保證金的)債券,他不能直接偷走所有錢。
Plasma 運營者
Plasma 運營者的主要作用是將交易聚集起來加入?yún)^(qū)塊,將每個 Plasma 區(qū)塊的默克爾根發(fā)布到根鏈上。
在更復(fù)雜的設(shè)計模型中,可以由 PoS 驗證者代替中心運營者,從而減輕關(guān)于交易審查的擔(dān)憂。不過,中心運營者帶來的好處多多,而且 Plasma 運營者的債權(quán)有很多有趣的用處:
·即時經(jīng)濟確定性!由于運營者是區(qū)塊的創(chuàng)建者,他們可以提供交易打包和排序的相關(guān)保證。為防作弊,運營者要提供保證金;交易一經(jīng)打包,用戶便知交易已然敲定
·懲罰無效退出:如果運營者許可了無效的“退出”交易,我們可以予以懲罰,并沒收保證金。
·Casper 驗證:運營者可以是 Casper PoS 驗證者!
你還能想到其它用處嗎?
Plasma 的設(shè)計模型
下圖顯示得更清楚一點: