Plasma MVP

Plasma MVP 是基於 UTXO Plasma 的一種極其簡單的設計。Plasma
MVP 規範支持高吞吐量支付交易,但不支持更復雜的構造,如腳本或智能合約。在下文中,我將介紹 Plasma MVP 背後的設計過程。你將瞭解 Plasma
MVP 的工作原理,以及它爲什麼以這種方式構建。

背景

區塊鏈目前的發展非常非常慢。即使是將它用於如支付這樣簡單的用例,也需要更快的區塊鏈。如果我們在以太坊的進行付款,它每秒只能處理約爲 10-25 筆交易(TPS)。我們需要幾千 TPS 才能夠處理日常零售交易。此外,以太坊交易費用往往很高,因爲小額交易被視爲與大規模交易具有相同的安全級別,即使這種行爲是不必要的。

鏈下可擴展性

我們已經知道,實現區塊鏈可擴展性的一種方法是創建新的區塊鏈。如果增加可以處理交易的區塊鏈數量,那麼就可以增加處理的交易的總數。但是,每當一個區塊鏈達到極限時就製作一個新的區塊鏈,這並不是一種好方法。獨立的區塊鏈降低了生態系統的總體安全並導致了糟糕的用戶體驗。

側鏈的引入爲我們提供了一種替代方案,可以在側鏈中創建“側”區塊鏈,其中資產與“父”區塊鏈掛鉤。與大多數區塊鏈系統一樣,這些側鏈需要自己的共識機制來確定區塊的規範集和區塊的順序。如果這種共識機制失敗或着過強,側鏈上的用戶資金可能面臨被盜的風險。這就是我們要引入 Plasma 的原因。

共識機制

區塊鏈都需要共識機制。Plasma 是特殊的區塊鏈,即使 Plasma 共識機制失敗了,它也可以保證用戶資金的安全。因此,最簡單的 MVP 版本依賴於一種稱爲驗證者的東西。驗證者是通過創建區塊有效運行整個 Plasma 的單個實體。如果你熟悉區塊鏈術語,應該會知道當我們說 MVP 依賴於 PoA 是什麼意思了。

這看起來可能有點奇怪——我們在設計區塊鏈協議時通常不信任第三方。然而,Plasma 的獨特設計確保即使驗證者操作不當,用戶資金也是安全的。此關鍵功能還可以將 Plasma
MVP 用於私有區塊鏈中,同時確保用戶始終保持對其資產的控制權!現在我們將詳細解釋爲什麼用戶資金始終是安全的。

存款

用戶通過將資金存入以太坊的智能合約來使用 Plasma。MVP 規範只允許用戶存入 ETH,但可以很容易地將規範擴展到支持 ERC20。當用戶存入這些資金時,Plasma 鏈上將創建一個僅包含單個交易的區塊。此交易爲存款人創建新的輸出,其價值等於存入資金的價值。一旦用戶存入資金,他們就可以開始在 Plasma 上進行交易了!

交易

用戶可以通過花費他們擁有的輸出和創建新輸出來進行 Plasma 的交易。實際上,這意味着用戶對交易進行了簽名。然後該交易(和相應的簽名)會發送給驗證者。

驗證者將收到許多交易,然後將它們放入被稱爲區塊的有序交易列表中。一旦驗證者收到填補區塊的足夠交易(儘管它們可以放入更少的交易),驗證者將在以太坊上提交該區塊的驗證者。爲了準確解釋這個驗證者的原理,我們要先談談默克爾樹(Merkle
trees)。

默克爾樹

默克爾樹是區塊鏈世界(以及計算機科學)中非常重要的數據結構。基本上,默克爾樹使我們能夠以隱藏數據的方式提交某些數據集,它可以讓用戶證明某些信息在集合中。例如,如果我有十個數字,我可以爲這些數字創建一個驗證者,之後證明一個特定的數字在那組數字中。這些驗證者佔據的空間小、大小恆定,這樣就可以很容易地發佈到以太坊上!

我們可以擴展這個想法,進行一組交易的提取。然後,在稍後證明特定交易在該組交易中。這就是驗證者所做的!每個區塊都由一組交易組成,這些交易被轉換爲默克爾樹。這個樹的根與每個 Plasma 區塊一起發佈到以太坊的驗證者。

提款

用戶需要從 Plasma 中提取資金(我們有時也將其稱爲“退出”)。當用戶想要從 Plasma 中提款時,需要在以太坊上提交“退出”交易的請求。

開始退出

由於 MVP 中的資金以 UTXO 表示,因此每個退出必須指向特定輸出。我們還想確保只有實際擁有該輸出的人才能進行提款。因此,爲了進行提款,用戶在退出時需要提交默克爾證明。
智能合約會檢查此證明以確保創建輸出的交易真的在某個區塊中。合約還檢查輸出是否由啓動退出的用戶擁有。

退出的“質疑期”

但是,如果準備好了提款所需的全部東西,用戶就可以提取未花費的輸出!我們希望確保被引用的輸出是未經過使用的,因此我們引入了質疑期。質疑期只有一段時間,人們可以通過證明 UTXO 確實使用過了來質疑退出的有效性。用戶可以通過揭發花費了有退出用戶的簽名的 UTXO 的交易,來證明那個 UTXO 確實被使用過了。

退出優先級

我們剛剛描述的退出協議允許人們從 Plasma 鏈中提取資金。不幸的是,Plasma 驗證者有被允許做壞事的權利,比如包括雙重支付,實際上我們無法制止它們。驗證者甚至可以從無效交易創建的輸出中進行提款。

我們該如何處理?好吧,我們喜歡進行有效交易的用戶在進行無效交易的用戶之前獲得資金。很好的是,我們只需要添加一些規則來確保用戶資金的安全。這些規則中的第一個是根據 UTXO 包含在 Plasma 鏈的時間,來確認 UTXO“退出優先級”。確切的優先級基於區塊鏈中 UTXO 的“位置”。該位置首先由區塊確定,然後是索引區塊中的交易,然後是索引交易中的輸出。這爲每個 UTXO 提供了獨特的靜態位置。

請注意,“較老”的 UTXO 會在較新的之前退出。這意味着如果區塊鏈中包含無效交易,那麼所有發生在無效交易之前的交易,都會被處理掉。我們解決了一半的問題!

確認簽名

現在,如果交易中包含惡意交易,會發生什麼?如果用戶進行交易,交易發送給驗證者,並且驗證者在用戶的有效交易之前放置無效交易,完全會發生這種情況。用戶可以嘗試退出交易的輸入,但可能會通過展示簽名支出而被質疑。

我們通過要求交易無效直到它們得到兩次簽名來避免這種情況。每當用戶進行交易時,他們將簽署第一個簽名以使該交易包含在區塊中。然後,一旦交易包含在有效區塊中,用戶將簽署第二個簽名,稱爲確認簽名。正確遵循此規則的用戶永遠不會簽署確認簽名,除非他們知道自己的交易包含在有效的區塊中。

我們添加了另一個的規則,退出挑戰也必須提供確認簽名。現在,如果驗證者在進行無效交易後將用戶的交易包含到區塊中,則用戶根本不會簽署確認簽名。無效交易後包含的交易將不具有確認簽名,因此無效。因此,每個遵循正確行爲的用戶都可以獲得他們的資金。

更可行的 Plasma

確認簽名會帶來非常糟糕的用戶體驗。用戶需要在進行交易之前簽署簽名,等待查看包含在有效區塊中的交易,然後簽署另一個簽名。這些第二個簽名也必須包含在 Plasma 區塊中,從而減少用來交易的區塊空間!更可行的 Plasma,也稱爲 MoreVP,是對無需確認簽名 Minimal
Viable Plasma 的擴展。

PlasmaMVP 依賴於確認簽名,因爲撤銷是根據撤銷輸出的位置,按順序處理的。簡而言之,MoreVP 修改了用戶可以提取資金的流程。每次提款的順序都取決於創建輸出的交易的最早時間輸入的位置。

這種新的順序需要進行大量更新,才能確保只有誠實的用戶才能提取資金。 OmiseGO 目前正在維護和擴展 MoreVP 的規範。
文章來源:頭等倉,是一家專業從事國內外區塊鏈項目信息收集,項目分析,項目進展跟蹤的信息資訊服務公司,面向國內外的區塊鏈投資者,提供區塊鏈項目的盡職調查與分析服務。

聲明:本站點所有文章內容不構成投資建議或意見,市場有風險,投資需謹慎。如需轉載,請註明出處。

原文鏈接:https://first.vip/shareNews?id=436
內容來源:頭等倉-www.first.vip,更多項目分析請下載頭等倉 APP

來源鏈接:first.vip