Plasma的設計模型使得人們可以通過發送鏈下消息來轉移鏈上資產。它通過將交易吞吐量轉移到Plasma鏈上實現根鏈的擴容。 你可以想象這樣一個場景:一位教授需要在短時間內給許多試卷打分數。他可以將這個工作分配給助教,由后者評閱試卷上的作答,并合計每題小分,只將最終分數報告給教授。
每條Plasma鏈都會將有關交易順序的消息換算成一個哈希值存儲在根鏈上。比特幣和以太坊都屬于根鏈——這兩條區塊鏈具有很高的安全性,并且通過去中心化保證了(安全性和活性)。本文列舉的所有例子均將以太坊作為根鏈。
“Plasma不是帶有默克爾樹的中心化服務器。 —— Vitalik, 2018 年瑞士楚格 TechCrunch 。
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 的設計模型
下圖顯示得更清楚一點:
評論
查看更多