解讀以太坊共同創辦人 Vitalik Buterin 近日提出的 Plasma 應用場景、ZK+Plasma 可能性。本文源自作者加密研究員 Haotian(@tmel0211 )所著文章,由 Block Beats 整理。
(前情提要:Layer2選手擠滿賽道,他們真為以太坊擴容了嗎?)
(背景補充:Vitalik Buterin:如何區分側鏈、Plasma和分片? )
11 月 14 日,Vitalik Buterin 在伊斯坦堡的 L2DAYS 發表了題為 Exit games for EVM validiums: the return of Plasma(退出 EVM 驗證遊戲:Plasma 的迴歸)的演講,隨後更新了同名部落格文章。
2017 年 8 月,Vitalik Buterin 和 Joseph Poon 發表《Plasma:自主智慧合約》一文,宣佈將 Plasma 作為以太坊新擴容方案。但隨後技術一直沒有進展,Plasma 在資金退出等問題上非常複雜,導致其很難成為真正可行的擴容解決方案。但 Plasma 的失敗並非沒有用,zk-Rollup 的誕生讓人們看到的 layer-2 擴容的可能方向,它可以解決 Plasma 的資料可用性問題和退出複雜性問題。
隨著 L2 格局越來越中心化,Vitalik 又將 Plasma 方案提出來並結合 zk-SNARK 證明探討更多關於以太坊擴容的可能性,加密研究員 Haotian 撰文從 Plasma 應用場景、ZK+Plasma 等方面解讀了 Vitalik 的新文章。
原文作者:Haotian(@tmel0211 )
拜讀了 Vitalik Buterin 有關 Plasma 迴歸的新作,被 Plasma 基於類 UTXO 的帳本「退出遊戲」機制深深吸引,且 Vitalik 似乎有意引導市場往 ZK+Plasma 方向探索,避免市場停留在 Rollup 階段內卷。接下來,詳細給大家科普解讀下。
我在上一篇解讀 Vitalik 文章中說了,以太坊的 2 層擴容方案原本有:Plasma、Rollup、Validium、Parallel 等多種方案,Vitalik 期待中的擴容方向應該是均衡發展,適配各類應用場景進行多樣化的 layer2 構建,但現實市場格局是,Rollup 方案一家獨大,且日益內卷。
只是,Rollup 雖然方案安全性高,但對 Data Availability 的依賴性過大,而純以太坊 DA 又受限於效能和成本問題,故而現在市場卷出一種卡位 Rollup 陣營但卻依賴第三方 DA 的 Solution,這是一種正在把 Rollup 畸形化的方案,絕非 Vitalik 想看到的現狀。
所以,Vitalik 新文章重新搬出了 Plasma,而且引導了一種 ZK+Plasma 的擴容解決方案,顯然又是一次事關 layer2 政治搖旗。
延伸閱讀:以太坊的正統Layer2,唯有Rollup擴容方案?
為何 Plasma 目前受限於支付場景?
Plasma 相當於一種側鏈解決方案,會定期向主網同步默克爾狀態資料,是一種資料和計算依賴主網的擴容方案。這樣的話,2 層可以用非常中心化的方式,且設計非常複雜的帳本模型來高效擴展,還能複用主網 vailidator 這些系統能力。
總得來說,Plasma 用在支付場景可以保證帳本狀態被有效追蹤和記錄。為何呢?
1)支付場景下,使用者只需要保留餘額狀態,若其他場景得保留全部鏈下狀態資料,會帶來儲存空間壓力;
2)Plasma 安全性依賴「退出遊戲」機制,運營方作惡,使用者可發起挑戰提出自己的資產,若資產狀態複雜則則會很麻煩;
3)目前 Plasma 很難相容 EVM 的諸多無主狀態,使用者很難用 Plasma 的默克爾狀態樹帳本來對應很多非交易狀態,比如 LP、CDP;
Plasma 支付場景如何運作?
如 Vitalik 文章中所說,簡單而言:
Plasma Cash 可以把每個 Token 視為 NFT,有唯一編號,當某個使用者發生轉帳時,運營方會在默克爾樹葉上記錄一筆更新狀態,每個使用者都可以儲存自己全域性的默克爾樹狀態,這樣帳本追溯起來就不會出亂。
若是本就同質化的 Token,使用者可能在消費時存在多次拆分和合併,比如小王 1 個 ETH,先拆分了三份,又把其中兩份合併了,每一份都是不規則的,比如 0.001、0.1、0.3 等,如果大批量的拆分,可能導致默克爾資料冗餘,這樣發起退出遊戲機制時可能會產生問題(挑戰和驗證成本較高),比如回溯近一週的帳本發現對不上帳。如何解決呢?可以為每一次資產拆分或合併狀態匹配一個類 UTXO ID,這樣無論怎麼拆分都能即刻定位到相應交易樹葉。
如何確保安全「退出遊戲」機制?
因為 Plasma 沒有像 Rollup 們一樣有自己獨立的鏈系統,它得時刻確保自己的側鏈記帳和主網保持同步,這就允許其不必刻意追求去中心化,只要有一個可高效記帳的運營主體就行。
但問題來了,若運營方釋出了無效區塊記了假帳,竊取使用者資產該怎麼辦?使用者需要隨時發出「退出遊戲」機制,把 2 層的資產 withdraw 回 1 層,類似於 Rollup 的逃生艙安全機制。
如何做呢?使用者可以晒出自己默克爾樹狀態證明,證明資產轉移過程,並發起 7 天挑戰期,主網驗證節點會檢測使用者是否為最終的資產 Owner,以及使用者是否存在資產雙花等問題。(因為主網節點儲存了更多的默克爾樹狀態可以核對使用者的 Proof 是否有惡意退出之嫌)。
通過「退出遊戲」來約束 2 層運營方作惡,而挑戰期的存在則避免了使用者惡意退出,這就確保了 Plasma 鏈的正常執行。
相容 EVM「無主狀態」的難點?
如前邊所言,Plasma 目前更多是針對支付交易場景設計的 2 層解決方案,是一種可類比為 UTXO 模型的記帳,而 EVM 本身則是帳戶模型。UTXO 可以記錄每一次餘額狀態重新整理,但 EVM 狀態機中的很多「無 Owner」場景很難用 Plasma 的方案來實現。
比如,比如存入 Uniswap 池子的 USDC,放在 MakerDAO 的 CDP 中的資產也同理,使用者很難證明哪一筆資產屬於自己,這樣一旦出現運營方當機問題,合約被鎖,使用者就無法正常「退出遊戲」。
因為無法證明使用者在合約裡有錢。受 Plasma 資料特性影響,主網只能監測合約的餘額,若運營方給合約增發了一部分錢,使用者怎麼能證明哪筆錢是自己的,哪筆錢是被惡意增發的呢?
何況一個 layer2 側鏈如果只能實現 Payment 轉帳交易,要如何構建應用和生態,顯然這會大大限制 Plasma 的使用場景。
ZK+Plasma 釋放的想像空間
若 Plasma 底層徹底的被 ZK 化,使用者的操作會以 zk-SNARK 證明形式存在,就能釋放很多 EVM 的狀態機場景:
- 假若使用者向 Plasma 某合約存入了一筆資產,就可以構造一筆 zkSNARKs 證明,這個證明可以向主網發起「退出遊戲」,這樣即使池子受安全威脅被凍結,使用者也能撤出自己的合法資產;
- 或者在涉及隱私 DEX 的交易場景下,使用者可以用 zkSNARKs 來證明擁有某資產,而不需要暴露自己的隱私;以及 Plasma 的智慧合約在進行復雜升級時也可以 zkSNARKs 的形式證明其狀態升級正確性,而不需要暴露細節,也能提升合約作惡難度;
以上。
整體來說,Vitalik 全文清晰地描述了 Plasma 的現狀以及存在的問題,包括未來 ZK 化的可能性。在我看來,Plasma 並不新穎,甚至過去多年它已經在支付場景找到了自己的位置,此時此刻 Vitalik 丟擲 ZK+Plasma 的新方向,是一次方向引導,也是一次政治搖旗,至於市場是否會順著 vitalik 的意思走,我個人不是很樂觀:
1)Rollup 是市場從投入成本、開發難度、生態相容度等綜合出來的最優解,ZK+Plasma 固然是一種更高階的 ZK-Rollup,但當下 ZK-Rollup 的發展也並不樂觀,直接跳到 Plasma 過於倉促了;
2)Validium 作為一種獨立鏈擴容方案,在 ZK 的應用程度上相對更高階,但它完全依賴鏈下 DA,相較之下 ZK+Plasma 似乎和以太坊主網黏性更高,但 Vitalik 這樣呼籲可以理解,ZK 的成熟開發者們放棄 Validium 搞 ZK+Plasma 的動力或許不足。
延伸閱讀:V神談Layer2擴容全文:Rollup與Validiums(有效性驗證)兩者間權衡
📍相關報導📍
【以太坊創辦人Vitalik】對太坊擴展性方案「Plasma」提出了新的構想