Plasma:確保跨鏈資金安全迴流的設計模式

在上一篇文章《簡析跨鏈劃轉的工作原理》中,已經說明了資金如何在根鏈與應用鏈之間流轉、應用鏈可以變相擴展根鏈的交易處理能力並降低交易成本等等。

然而如何確保應用鏈上的資金能夠安全迴流到主鏈則是一個關鍵難題。Plasma 就是 Joseph Poon 和 Vitalik Buterin 針對這個關鍵難題給出的一個解決方案。

其文檔下載地址爲 https://plasma.io/plasma.pdf

其標題爲 Plasma: Scalable Autonomous Smart Contracts

Plasma 文檔及其標題定義都寫得比較學術化,晦澀難懂。然而對於任何一項技術,只要讀者能清晰地明白這項技術應用在什麼場景,解決了什麼問題,理解起來就會輕鬆很多。

在很多時候,深刻理解問題本身要比理解該問題的一個解決方案更重要。

讀者可以先不看 Plasma 文檔,自己嘗試着思考如何實現跨鏈資金的安全迴流,然後再去參考 Plasma 文檔,就能理解的更快速、更深刻一些。

簡單來說,Plasma 其實是一種設計模式、解決方案、指導思想與框架。

按照 Plasma 模式建立應用鏈(Plasma-Chain)及根鏈智能合約(Plasma-Contract),則可確保鏈外資金能夠安全迴流到根鏈。由於 Ethereum 是圖靈完備的智能合約平臺,因此可以將 Plasma-Contract 想象成是 Plasma-Chain 的輕量級實現。

Plasma 模式整體上可以分解爲四個步驟:

1)根鏈資金劃轉到 Plasma-Chain

用戶存入 ETH 或 ERC20-Token 到 Plasma-Contract,然後 Plasma-Chain 就會釋放出對應量的資金;

2)在 Plasma-Chain 上執行計算任務

用戶在 Plasma-Chain 中擁有資金後,就可以執行具體的計算任務,包括轉賬、執行職能合約、運行區塊鏈遊戲等等;

3)提交 Plasma-Chain 狀態變更到根鏈

若把區塊鏈看成是一個去中心化的狀態機,那麼在 Plasma-Chain 中執行計算任務後,將會導致一定量的狀態改變,爲更好地適應不同量的狀態改變,需將狀態變更情況進行一定的壓縮,比如採用 Merkle-Tree 的方式組織起來,並將 Merkle-Tree 的 Hash-Root 提交到 Ethereum 根鏈,進而觸發運行 Plasma-Contract 代碼將其保存起來;

4) Plasma-Chain 資金安全迴流到根鏈

即使 Plasma-Chain 去中心化的程度不夠高,甚至出現安全事故,用戶仍然可以提交證明數據到 Plasma-Contract 中取回在屬於自己的資金。

類似於用戶退出了網絡遊戲之後,仍然保留了自己的賬戶充值餘額、裝備、道具、積分等信息,如果遊戲項目不再運營下去,那麼用戶可以無條件退回充值餘額。

對於用戶和 Plasma-Chain 運營方,若任何一方作弊(比如提交給 Plasma-Contract 的數據不正確),那麼對方都可以向合約提交欺詐證明 (fraud proofs),只要合約代碼沒有設計缺陷和代碼漏洞,那麼合約代碼就會給出正確的仲裁結果。

由於 Plasma 技術文檔只描述了一種思想和大體的框架,指出資金能夠安全迴流到主鏈是可行的,但是並沒有給出特別具體的解決方案,所以目前又發展出若干個更具體的實現方案,比較著名的有 Plasma MVP、Plasma Cash、Plasma Debit,針對這些內容,後續文章將給出具體的分析說明。

作者: Karl 嘉楠區塊鏈研究院高級研究員

嘉楠區塊鏈研究院: 嘉楠耘智(Canaan Inc.)旗下區塊鏈板塊。

熱文搶讀:

1、簡析跨鏈劃轉的工作原理

2、Conflux 項目技術核心簡析:基於 POW 的 DAG

3、Byteball 技術剖析之二:主幹鏈選擇與交易定序

4、從 DAG 視角看 Bitcoin 賬本

5、簡析跨鏈原子交易

Plasma:確保跨鏈資金安全迴流的設計模式