Plasma 設計模型有兩個主要的分支:Plasma MVP 和 Plasma Cash 。如果你想了解更多關於 Plasma 的研究譜系,請點選文末連結。讓我們先了解一些背景知識並簡要介紹使用流程,再深入探究各個部分。
知識點速覽
稀疏的默克爾樹:大小恆定的 完美 默克爾樹,之所以稱作'稀疏'是因為多數葉節點都是空的。
經濟確定性:確保操作的不可撤回性,除非某一方花掉一大筆錢來產生另一種結果。
UTXO:unspent transaction output(未花費的交易輸出)的縮寫。每個交易必須從有效的 UTXO 集合中得到輸入值。每個交易的輸出值組成新的 UTXO 集合。比特幣使用的就是 UTXO 模型。
前方高能預警!
1:想要成為 Plasma 運營者的人(wannabe Plasma Operator)將 Plasma 合約部署到主網上
如果交易所之類的實體想要實現高交易吞吐量和低延遲性(甚至是即時經濟確定性),不妨執行一條 Plasma 鏈併成為 Plasma 運營者。合約初始化過程中就會將合約所有者包含在內。
2:Plasma 運營者打包一個塊
運營者具有多重身份,其中一種是將交易聚集起來並排序打包進區塊,然後將這個 Plasma 區塊的雜湊值提交至根鏈。
Plasma 有多種執行方式。不同的 Plasma 鏈可以有不同的治理規則、不同的代幣和狀態儲存方式等等,不過所有 Plasma 鏈會定期將雜湊值提交至根鏈,以便確保與根鏈一樣的安全性。
3:新使用者 Kanye 在 Plasma 合約中質押以太幣換取 PETH
在主要的兩個 Plasma 設計模型中,你可以質押任意型別的代幣,該代幣會被轉化成符合 ERC20 標準的代幣,並透過 Plasma 鏈返還給使用者。如果 Kanye 質押了以太幣,他將獲得 PETH !如果他質押了比特幣,他將獲得 PBTC !(Plasma Cash 技術規範更支援 CryptoKitties 之類的 ERC721 資產,不過並非所有 Plasma 技術規範都支援任意型別代幣的質押。)
4:Kanye 向非 Plasma 智慧合約成員 Donald 匯款
Kanye 並不是只能向 Plasma 合約以內的成員匯款!他也可以向以太幣大佬 Donald 匯款。
在 Plasma Cash 實現中,你質押的每種代幣都會被分配一個特殊的 ID 。 這些特殊的 ID 都儲存在稀疏的默克爾樹上。代幣交易只會改變代幣所在葉節點的索引(index)。這就好比房屋買賣——在進行交易之時房屋是不會動的,然而房主會更換,房契會記錄交易相關方以及換手率。這極大降低了檢查代幣歷史記錄的難度,因為你知道該看樹上的哪個位置!
讓我們關注一下 Kanye 傳送給 Donald 的代幣的索引。Kanye 在傳送代幣之時必須包括該代幣的歷史記錄。如果代幣經歷過多次交易,就會生成龐大的歷史記錄!我們將來會設法改善這一點。對 Donald 來說已經很棒了,因為他只需下載自己關心的代幣的歷史記錄。
5:Donald 有兩個選擇:是繼續花費 PETH ,還是建立一個“退出”交易在根鏈上換回以太幣。
如果 Donald 要將 PETH 換回以太幣,他無需像請求加入時那樣向運營者提交資訊。出於匿名之需,Donald 想要立刻換回他的代幣,因此不想繼續交易 PETH 了。他取一段代幣的歷史記錄來證明所有權,並將其放入退出 Plasma 合約的請求之中。他的“退出”交易還包括 Gas 費和作為質押的 保證金 。如果稽覈透過,且沒人質疑 Donald ,Donald 就可以在根鏈上將 PETH 換回以太幣。
太棒了!我們已經充分解析了最佳案例的真實場景,下面讓我們深入研究一下各個部分吧:交易、退出機制和 Plasma 運營者的作用。要注意的是不同的實施方案之間存在各種規則和差異,不過你可以從下文了解一些核心的 Plasma 概念和術語。
交易
Kanye 在傳送代幣之時必須將代幣的歷史記錄一起傳送出去。Plasma Cash 的使用者只需下載並檢視自己關心的代幣的歷史記錄。分片客戶端驗證能夠減少每位使用者的資料載入量。
然而,如果一個代幣經歷的交易次數過多,會導致歷史記錄過大而無法交易。我們建議可以透過設定檢查點來解決這一問題。 檢查點(Checkpoint)會將原先線性大小的證明縮減成一個常量,一旦檢查點敲定後,客戶端就可以提供上面的證明。Plasma Cash 檢查點建立在加密經濟聚合簽名之上,為代幣在區塊高度 Y 上由 X 所有這一紀錄提供經濟保證。
遺憾的是,在 Plasma Cash 上傳送任意小額的代幣會困難得多(Plasma Debit 或狀態通道可以解決這一問題,詳情見延伸閱讀) 。使用者透過呼叫押金函式來指定押金金額。雖然透過 Plasma Cash 傳送 ERC721 代幣比較好,但是 Plasma MVP 的 UTXO 模型可以更好地處理任意金額的代幣交易。
退出機制
·可以針對滿足以下情況的退款發起退出挑戰:
·要求退回已花費的代幣
·要求退回已退回的代幣
·要求退回有無效歷史記錄的代幣
任何人都可以提交欺詐證明來挑戰退出者,一經證實會沒收退出者的保證金。
如果遭遇攻擊怎麼辦?
如果 Plasma 鏈遭受駭客攻擊,駭客必須提交”退出“交易才能成功偷走所有資金!在 Plasma Cash 上,駭客必須在“退出”交易中包括一張(作為安全保證金的)債券,他不能直接偷走所有錢。
Plasma 運營者
Plasma 運營者的主要作用是將交易聚集起來加入區塊,將每個 Plasma 區塊的默克爾根釋出到根鏈上。
在更復雜的設計模型中,可以由 PoS 驗證者代替中心運營者,從而減輕關於交易審查的擔憂。不過,中心運營者帶來的好處多多,而且 Plasma 運營者的債權有很多有趣的用處:
·即時經濟確定性!由於運營者是區塊的建立者,他們可以提供交易打包和排序的相關保證。為防作弊,運營者要提供保證金;交易一經打包,使用者便知交易已然敲定
·懲罰無效退出:如果運營者許可了無效的“退出”交易,我們可以予以懲罰,並沒收保證金。
·Casper 驗證:運營者可以是 Casper PoS 驗證者!
你還能想到其它用處嗎?
Plasma 的設計模型
下圖顯示得更清楚一點:
更多區塊鏈資訊:http://www.qukuaiwang.com.cn/news