構建 Plasma 鏈 0x1

Chang-Wu Chen
Taipei Ethereum Meetup
5 min readJan 17, 2018

David Knott 的文章,翻譯自原文如下:

https://blog.omisego.network/construction-of-a-plasma-chain-0x1-614f6ebd1612

Plasma 是由 Joseph Poon 和 Vitalik Buterin 提出的區塊鏈擴展解決方案,利用子鏈回報根鏈 (以太坊) 的方式來提高交易流量,並最小化小鏈通常伴隨的安全考量。OMG (OmiseGO) 的分散式交易所將採 Plasma 的設計。我們將利用 Plasma 支援可擴展且完全鏈上的交易所,在不犧牲安全性下。本文我將會描述我們如何構建 Plasma。

目標:產生不需要依賴自己安全性的區塊鏈

安全性會構建在使用者離開子鏈,當有錯誤發生。以下說明如何工作:

  1. 如果有無效的交易被包含在子鏈,那所有用戶必須七天內離開。
  2. 如果用戶無法存取子鏈,但他所在子鏈的區塊已遞交到母鏈,用戶必須要能重新存取子鏈,所以要能檢查有效性,或是在七天內離開該子鏈。
  3. 提款(撤離)會參照之前交易的產生順序進行處理,從未花費的 UTXO 選擇最舊的交易,參照其在母鏈所在區塊的最小高度會優先於之後的區塊。這可使最新的無效交易,在處理的優先權低於急於提款離開的舊交易。
  4. 只在交易的擁有者確認其交易在母鏈上已被轉換且確認時,交易才被視為有效。

Responsibility Breakdown (任務拆分)

  1. Client (客戶端) — 監看 Ethereum 且運行子鏈,當偵測到詐欺的行為就立即離開。
  2. Child chain (子鏈) — 監看在 Ethereum 上 deposit 的行為,並執行所有與該子鏈目前狀態相關的計算。
  3. Root chain (根鏈) — 透過智能合約錨釘子鏈在 Ethereum 鏈上,處理子鏈上要存款與離開(提款)的業務,當收到足夠的資訊進行確認與處理,或是拒絕詐欺的提款(離開)。
  4. Parent chain (母鏈) — 作用是保護子鏈,在 MVP 上母鏈等同於根鏈。但在最終版本上,子鏈上可能會有多個母鏈,但只有一個根鏈。

Deposits (存款)

為了使用 Plasma 鏈,使用者需要將他們的資產 (以太幣或代幣) 從母鏈移動到子鏈,為了進行存款,使用者將他們資產轉移到適當的 Plsama 智能合約,該合約運行在以太坊上。

在 MVP 中,存款的行為有所簡化,不同於 Plasma 白皮書中般複雜。在 Plasma 上的存款會立即被紀錄到子鏈的母鏈紀錄上,並且沒有機會取消存款。相比於取消存款,使用者可以更希望能立刻提款。

對存款方沒有額外風險, 一旦轉移資產的合約交易被確認,則可提領資產。即使在子鏈上沒有反映相應的存款,存款方仍可提領他們的資產。

Withdrawals (提款)

為了將資金轉回母鏈,使用者可以進行提款。使用者可能只是簡單地將資金轉回到母鏈並持有。或當使用者偵測到有故障的子鏈時,可以進行提款,使用者可能失去資金,如果未能即使反應的話。

有兩類的提款行為,第一類是簡單地提款 (simple withdrawals),子鏈上的單一參與方進行提款,第二類則是,多個參與方同時進行大量提款 (mass withdrawals),大量提款因為較為複雜,會在之後的文章說明。

當使用者要從 Plasma 鏈提領資金,提領依交易被產生的順序 (先來的先離開) 而被提款離開,提款流程會在挑戰期結束後完成,在挑戰期間,任何人都可以提出欺詐行為的證據。

Simple Withdrawals (簡單地提款)

簡單提款包含下列四個步驟:

  1. 使用者向母鏈上的智能合約遞交提款請求。
  2. 提款請求會進入一段時間的挑戰期,在此期間,任何人都可向智能合約遞交雙花的支付證據,證明該提領請求是無效的。如果挑戰成功,則嘗試提款退出的使用者將無法提領。
  3. 如果提款請求被發現是無效的,提領者會被處罰,回報者會被獎勵。如果在挑戰期結束前沒有收到成功的挑戰,那提領者提領成功。目前背後的經濟激勵設計尚未完成。

Finality (最終性)

有兩種型態的最終性:

  1. 子鏈的最終性 (Child chain finality) — 取決於子鏈使用的共識演算法,我們選擇 PoS
  2. 根鏈的最終性 (Root chain finality) — 取決於根鏈使用的共識演算法,以太坊目前使用 PoW

子鏈的最終性和安全性取決於根鏈,所有 Plasma 鏈的安全保證假設來自以太坊正常工作

關於 Plasma MVP 的一些事項

  1. 目前使用 Proof of Authority, PoS 將會之後加上
  2. 不使用保證金來處罰詐欺
  3. 如果有個無效的交易被包含進子鏈,需要每個人立即退出子鏈
  4. 子鏈會依賴於以太坊本身的最終性 (區塊確認數)

Plasma 的 MVP 面向

  1. 理解其對於以太坊主鏈擴展性的潛力
  2. 被用來建立 OMG 分散式交易所,為主流金融使用預備

隨著 OmiseGO 進一步對 Plasma 的發展,這個設計會演進並擴展到 Plasma 和 OmiseGO 白皮書中描述的其他功能。

我想特別感謝 Joseph Poon, Vitalik Buterin 和 Karl Floersch 的時間與見解,這對未來的區塊鏈擴展解決方案,轉化為正在實現的 MVP 技術規格是非常有價值的。有任何錯誤請告知我。

--

--