Plasma 是以太坊 Layer 2 擴容解決方案,它允許去中心化應用(Dapp) 將交易從根鏈轉移到鏈下進行,我們可以把這些鏈稱為子鏈、側鏈或 Plasma 鏈,以下為了方便大家理解,我會將其稱為 Plasma 鏈。與另外一個子鏈項目 Ardor 不同,Plasma 鏈是由個人或小型驗證者集體負責運營的,而不是以太坊的底層網路。
舉個例子,Zombit 要開發一個 Dapp,可以選擇在以太坊上創建一條屬於自己規則的 Plasma 鏈,減少與主鏈的互動,以提升 Dapp 的效率,改善使用者體驗。
Plasma 能夠允許鏈下交易的安全操作,即使是在惡意活動的情況下也是如此。這是通過使用獨特的退出機制和 Plasma 協議來完成的。即便在遭到運營商審查或篡改交易的情況,用户也可以安全的將資金退出子鏈。
Plasma 的結構
Plasma 鏈是一個巣狀的區塊鏈,想像整個架構是一棵樹,以太坊是這棵樹的根,稱之為根鏈,以太坊的 Plasma 鏈就是樹幹,而這些樹幹 Plasma 鏈又能夠再衍伸出 Plasma 鏈如同樹枝。而父鏈 (Parent chain) 與子鏈 (Child chain) 是相對的,例如:樹幹 Plasma 鏈是樹枝 Plasma 鏈的父鏈,而樹幹 Plasma 鏈是以太坊的子鏈。
在這樣的結構下,能夠為以太坊本身帶來許多好處:
- 規模化
正如上述所提到,Plasma 鏈能夠擁有很高的可擴展性,主鏈之下能夠延伸一百個 Plasma 鏈,一百個 Plasma 鏈又能夠延伸一百個 Plasma 鏈,總共一萬個,以太坊網路吞吐量就能夠增加一萬倍。 - 信任最小化
主鏈與子鏈之間,子鏈只會定時上傳區塊哈希,除此之外,主鏈平常不管子鏈上的交易。當子鏈出現問題時才會向主鏈提交審查請求,此時主鏈的角色就像最高法院,只有收到請求時才會介入,如果沒有人提出審查請求,主鏈就會認為子鏈天下太平。然而,這也意味著子鏈上的關係人必須時時檢查自己的資產,對一般使用者而言,體驗不佳。 - 全新的應用開發方式
在 Plasma 的架構中,每一個 Plasma 鏈會由去中心化應用開發商或其他項目方開發與維護,項目方可以藉由自己的 Plasma 鏈設定自己的遊戲規則,增加了開發靈活性。
Plasma MVP
Vitalik 在 2017 年 8 月為了解決以太坊交易速度及成本的問題,首次提出 Plasma 的概念。在2018 年初,Vitalik 才提出了 Plasma MVP (Minimal Viable Plasma),最小的可行性應用。
Plasma MVP 目前還相當早期,還沒辦法實現多層擴展。意思是,現在在根鏈以太坊下只能夠有一層 Plasma 鏈,沒辦法再往下延伸。且每個 Plasma 鏈是獨立的,所以不能跨鏈交易,想要在兩條 Plasma 鏈之間轉移資產就必須經過主鏈。
此外,Plasma MVP 並不像以太坊一樣有那麼多礦工維護,甚至像中心化的方式只有一個單一伺服器負責記帳與驗證。Plasma 鏈每產一個塊,就必須向主鏈提交一份包含該區塊中事務內容的哈希 (merkle root),這樣 Plasma 鏈這邊的塊才算被確認。
Plasma 運作
進場機制
將資產從以太坊轉移到 Plasma 鏈相當簡單,只需要將資產打進以太坊上的 Plasma 智能合約即可獲得相應的代幣在 Plasma 鏈上進行交易。
退場機制
與進場機制相比,退場機制較為複雜,前提也較多。基本上有兩大原則,申請退出 Plasma 需要接受七天的挑戰期,在這段期間內,若退出者出現雙重花費或任何作弊情況,其他人可以向父鏈智能合約提出詐欺證明,證明他的不法行為,挑戰者若挑戰成功,該退出請求將會被取消,且挑戰者還會獲得一筆獎勵。另外,退出時父鏈受理會有優先順序,意思是申請退出當下,距離上一筆交易越久的人優先度越高,這能限制作惡的人不能馬上退出 Plasma 鏈。舉個例子:
以下 1234 為時間順序
- A在銀行存了5塊錢(A 5塊)
- B在銀行存了30塊錢(B 30塊)
- 接著B給A 10塊錢(A 15塊, B 20塊)
- C駭進銀行,把自己的餘額從0改成1000
此時,大家發現有人作弊,就會把錢提領出來,這個時候就會照順序來驗證交易,首先驗證 A,確定有 15 塊可以提領,在來是 B,有20塊可以提領,A、B 領完後,銀行就沒錢了,所以C 想領憑空捏造的 1000 塊也沒錢可以領了。
除了正常退出的狀況,另外一個狀況是,Plasma 鏈自己 (運營商自己) 作惡出現問題時,所有 Plasma 鏈上的用戶都必須退出該 Plasma 鏈,這就是所謂的「大規模退出」。
Plasma 的侷限
擁有完整 EVM (以太坊虛擬機) 能力的 Plasma 鏈較難實現
由於許多複雜的技術性問題,例如智能合約的所有權性質,導致 Plasma 短期內難以完整實現EVM 所具備的功能,這意味著,如果子鏈上的「狀態」出現混亂,缺乏 EVM 會使其難以復原。因此目前大多數研究還是聚焦於讓 UTXO 模型先實現於 Plasma 鏈。
Plasma 大規模退出的疑慮
大規模退出的發生,會導致以太坊需要在短時間內處理大量交易,除了會拉長驗證時間之外,也會導致 GAS 費暴漲。大規模退出如果花費太長時間或太昂貴,會把用戶的資金置於危險之中,雖然這部分許多開發人員提出了許多相應的措施,但到目前為止都還沒有一個完美的方案。
除了 Plasma MVP 之外還有另一個方案是 Plasma Cash,讓每一筆存入Plasma 智能合約的錢,都有一個獨特的 token ID,憑著這個 ID,追蹤資金流向與對帳。兩者都各有優缺點,也都有各自的開發難題需要解決,有興趣的朋友可以研究研究。
Plasma 擁有許多優點,除了可以降低以太坊區塊鏈存儲歷史數據所導致的區塊鏈膨脹問題之外,對以太坊而言,Plasma 只是智能合約,因此能夠輕易的與其他 layer1解決方案兼容。不過 2018 年初以太坊才開始投入研究開發 Plasma,想要實際應用,還需要一段時間。
*本文由 AMIS 首席科學家 – 陳昶吾博士協助審閱。