撰文:Haotian
拜讀了@VitalikButerin 有關Plasma 回歸的新作,被Plasma 基於類UTXO 的賬本“退出遊戲”機制深深吸引,而Vitalik 似乎有意引導市場往ZK+Plasma 方向探索,避免市場停留在Rollup 階段內卷。接下來,詳細給大家科普解讀下:
重點:1)Plasma 鏈為啥適用於支付場景? 2)Plasma 支付場景如何運作? 3) 為啥退出遊戲機制對Plasma 很重要? 4)Plasma 鏈為啥難整合EVM 的無主狀態? 5)ZK+Plasma 可釋放哪些想像空間?
我在上一篇解讀Vitalik 文章中說了,以太坊的2 層擴容方案原本有:Plasma、Rollup、Validium、Parallel 等多種方案,Vitalik 期待中的擴容方向應該是均衡發展,適配各類應用場景進行多樣化的layer2 構建,但現實市場格局是,Rollup 方案一家獨大,且日益內捲。
只是,Rollup 雖然方案安全性高,但對Data Availability 的依賴性過大,而純以太坊DA 又受限於性能和成本問題,故而現在市場卷出一種卡位Rollup 陣營但卻依賴第三方DA的Solution,這是一種正在把Rollup 畸形化的方案,絕非Vitalik 想看到的現狀。
所以,Vitalik 新文章重新搬出了Plasma,而且引導了一種ZK+Plasma 的擴容解決方案,顯然又是一次事關layer2 政治搖旗。
為啥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 的動力或許不足。
Note:請務必細讀下Vitalik 的文章,再來理解本文,覺得我分享有價值,歡迎一鍵三連支持一下,感謝。