Plasma 是用來提高以太坊的可拓展性、解決其交易擁堵的 Layer 2 擴容解決方案。它最初是由 Vitalik Buterin 和 Joseph Poon 在 2017 年創建的文章中提出的。
簡單來講,Plasma 的運作機制可以理解為鏈下交易處理及交易合集狀態上傳的過程。首先,用戶需要透過智能合約將資產存入 Plasma 鏈。所有與用戶資產相關的交易都會由 Plasma 鏈的運營商按照一定的順序排列,然後打包成一個交易批次進行處理。
處理後,操作員會將交易批次的狀態(通常稱為 Merkle Root)發佈到以太坊主網上。 Merkle Root 以雜湊值的形式表示,代表一個批次中的所有交易。下圖簡單展示了 Merkle Root 的生成過程。
雜湊值是基於雜湊方程式的計算結果,它表示為一個固定長度的字串值。透過哈希方程,任何給定的鍵或字串都可以轉換成固定長度的字串值(哈希值)。
最初版本的Plasma chain 被稱為Plasma MVP。然而它所帶來的問題遠大於它解決擴容問題的能力。
如果使用者 A 想要退出 Plasma chain,他需要發起提款請求並等待一段時間,這段時間被稱為挑戰期,通常長度為七天。這是為了防止有詐欺行為的存在。
在挑戰期內,質疑交易存在問題的其它用戶(即,挑戰者)需要提供欺詐證明(發生欺詐行為的證據)來證實有欺詐行為發生。如果挑戰成功,那麼用戶 A 的退出請求將會被取消。反之,如果在挑戰期內無人挑戰,用戶 A 成功退出。
雖然這是為了維護鏈下交易的安全性,但卻相對的增加了時間成本。為了在挑戰期內及時識別出詐欺行為,用戶必須定期監控 Plasma 鏈上的交易。
此外,在存在惡意運營商的情況下,用戶需要在挑戰期間驗證所有交易才能退出 Plasma 鏈。交易驗證成本較高。
為了解決Plasma MVP 上述的問題, Ethereum Research Community 提出了一個新版本的Plasma 鏈,Plasma Cash。
Plasma Cash 與 Plasma MVP 最大的區別在於它可以透過改變資料結構來減少交易驗證的成本。它部分解決了前面提到的 Plasma MVP 的問題。在 Plasma Cash 中,每一筆被存入的資產都表示為 non-fungible token(NFT)。
因此,在運營商惡意操縱的情況下,用戶只用監控與自己資產相關的交易(而不是所有交易),並透過提供當前資產所有權證明來驗證交易。證明一般包括最近的 2 筆交易和相對應的證明。
但是 Plasma Cash 仍然需要用戶定期監視交易訊息,而且它也沒有解決用戶退出時需要等待的問題。同時,資料結構的改變帶來了新的問題。使用者必須儲存與其資產相關的所有資料和相應的證明。這會產生較高的儲存成本。
如今,大部分 Plasma 鏈已被樂觀 rollup 和 zkrollup 取代。歸根結底,造成這種情況的主要原因是 Plasma 鏈的數據不可用性,即,以太坊主網無法獲取到每筆交易的原始數據。正如我們在本文中提到的,Plasma 僅上傳交易批次的狀態,這意味著交易僅在鏈下進行處理,且資料不可用。總的來說,數據的不可用性是造成 Plasma 的「消亡」的最直接原因。
你可能也對以下內容感興趣:
- 什麼是區塊鏈不可能三角?
- 什麼是以太坊?