作者:Haotian,來源:作者推特@tmel0211
拜讀了 @VitalikButerin 有關(guān) Plasma 回歸的新作,被 Plasma 基于類 UTXO 的賬本「退出游戲」機制深深吸引,且 Vitalik 似乎有意引導(dǎo)市場往 ZK+Plasma 方向探索,避免市場停留在 Rollup 階段內(nèi)卷。接下來,詳細給大家科普解讀下:
要點:1)Plasma 鏈為啥適用于支付場景?2)Plasma 支付場景如何運作?3) 為啥退出游戲機制對 Plasma 很重要?4)Plasma 鏈為啥難集成 EVM 的無主狀態(tài)?5)ZK+Plasma 可釋放哪些想象空間?
我在上一篇解讀 Vitalik 文章中說了,以太坊的 2 層擴容方案原本有:Plasma、Rollup、Validium、Parallel 等多種方案,Vitalik 期待中的擴容方向應(yīng)該是均衡發(fā)展,適配各類應(yīng)用場景進行多樣化的 layer2 構(gòu)建,但現(xiàn)實市場格局是,Rollup 方案一家獨大,且日益內(nèi)卷。
只是,Rollup 雖然方案安全性高,但對 Data Availability 的依賴性過大,而純以太坊 DA 又受限于性能和成本問題,故而現(xiàn)在市場卷出一種卡位 Rollup 陣營但卻依賴第三方 DA 的 Solution,這是一種正在把 Rollup 畸形化的方案,絕非 Vitalik 想看到的現(xiàn)狀。
所以,Vitalik 新文章重新搬出了 Plasma,而且引導(dǎo)了一種 ZK+Plasma 的擴容解決方案,顯然又是一次事關(guān) layer2 政治搖旗。
為啥 Plasma 目前受限于支付場景?
Plasma 相當于一種側(cè)鏈解決方案,會定期向主網(wǎng)同步默克爾狀態(tài)數(shù)據(jù),是一種數(shù)據(jù)和計算依賴主網(wǎng)的擴容方案。這樣的話,2 層可以用非常中心化的方式,且設(shè)計非常復(fù)雜的賬本模型來高效擴展,還能復(fù)用主網(wǎng) vailidator 這些系統(tǒng)能力。
總得來說,Plasma 用在支付場景可以保證賬本狀態(tài)被有效追蹤和記錄。為啥呢?
1)支付場景下,用戶只需要保留余額狀態(tài),若其他場景得保留全部鏈下狀態(tài)數(shù)據(jù),會帶來存儲空間壓力;
2)Plasma 安全性依賴「退出游戲」機制,運營方作惡,用戶可發(fā)起挑戰(zhàn)提出自己的資產(chǎn),若資產(chǎn)狀態(tài)復(fù)雜則則會很麻煩;
3)目前 Plasma 很難兼容 EVM 的諸多無主狀態(tài),用戶很難用 Plasma 的默克爾狀態(tài)樹賬本來對應(yīng)很多非交易狀態(tài),比如 LP、CDP;
Plasma 支付場景如何運作?
如 Vitalik 文章中所說,簡單而言:
Plasma Cash 可以把每個 Token 視為 NFT,有唯一編號,當某個用戶發(fā)生轉(zhuǎn)賬時,運營方會在默克爾樹葉上記錄一筆更新狀態(tài),每個用戶都可以保存自己全局的默克爾樹狀態(tài),這樣賬本追溯起來就不會出亂。
若是本就同質(zhì)化的 Token,用戶可能在消費時存在多次拆分和合并,比如小王 1 個 ETH,先拆分了三份,又把其中兩份合并了,每一份都是不規(guī)則的,比如 0.001、0.1、0.3 等,如果大批量的拆分,可能導(dǎo)致默克爾數(shù)據(jù)冗余,這樣發(fā)起退出游戲機制時可能會產(chǎn)生問題(挑戰(zhàn)和驗證成本較高),比如回溯近一周的賬本發(fā)現(xiàn)對不上賬。如何解決呢?可以為每一次資產(chǎn)拆分或合并狀態(tài)匹配一個類 UTXO ID,這樣無論怎么拆分都能即刻定位到相應(yīng)交易樹葉。
如何確保安全「退出游戲」機制?
因為 Plasma 沒有像 Rollup 們一樣有自己獨立的鏈系統(tǒng),它得時刻確保自己的側(cè)鏈記賬和主網(wǎng)保持同步,這就允許其不必刻意追求去中心化,只要有一個可高效記賬的運營主體就行。
但問題來了,若運營方發(fā)布了無效區(qū)塊記了假賬,竊取用戶資產(chǎn)該怎么辦? 用戶需要隨時發(fā)出「退出游戲」機制,把 2 層的資產(chǎn) withdraw 回 1 層,類似于 Rollup 的逃生艙安全機制。
如何做呢?用戶可以曬出自己默克爾樹狀態(tài)證明,證明資產(chǎn)轉(zhuǎn)移過程,并發(fā)起 7 天挑戰(zhàn)期,主網(wǎng)驗證節(jié)點會檢測用戶是否為最終的資產(chǎn) Owner,以及用戶是否存在資產(chǎn)雙花等問題。(因為主網(wǎng)節(jié)點存儲了更多的默克爾樹狀態(tài)可以核對用戶的 Proof 是否有惡意退出之嫌)。
通過「退出游戲「」來約束 2 層運營方作惡,而挑戰(zhàn)期的存在則避免了用戶惡意退出,這就確保了 Plasma 鏈的正常運行。
兼容 EVM「無主狀態(tài)」的難點?
如前邊所言,Plasma 目前更多是針對支付交易場景設(shè)計的 2 層解決方案,是一種可類比為 UTXO 模型的記賬,而 EVM 本身則是賬戶模型。UTXO 可以記錄每一次余額狀態(tài)刷新,但 EVM 狀態(tài)機中的很多「無 Owner」場景很難用 Plasma 的方案來實現(xiàn)。
比如,比如存入Uniswap 池子的 USDC,放在 MakerDAO 的 CDP 中的資產(chǎn)也同理,用戶很難證明哪一筆資產(chǎn)屬于自己,這樣一旦出現(xiàn)運營方宕機問題,合約被鎖,用戶就無法正常「退出游戲」。
因為無法證明用戶在合約里有錢。受 Plasma 數(shù)據(jù)特性影響,主網(wǎng)只能監(jiān)測合約的余額,若運營方給合約增發(fā)了一部分錢,用戶怎么能證明哪筆錢是自己的,哪筆錢是被惡意增發(fā)的呢?
何況一個 layer2 側(cè)鏈如果只能實現(xiàn) Payment 轉(zhuǎn)賬交易,要如何構(gòu)建應(yīng)用和生態(tài),顯然這會大大限制 Plasma 的使用場景。
ZK+Plasma 釋放的想象空間
若 Plasma 底層徹底的被 ZK 化,用戶的操作會以 zk-SNARK 證明形式存在,就能釋放很多 EVM 的狀態(tài)機場景:
假若用戶向 Plasma 某合約存入了一筆資產(chǎn),就可以構(gòu)造一筆 zkSNARKs 證明,這個證明可以向主網(wǎng)發(fā)起「退出游戲」,這樣即使池子受安全威脅被凍結(jié),用戶也能撤出自己的合法資產(chǎn);
或者在涉及隱私 DEX 的交易場景下,用戶可以用 zkSNARKs 來證明擁有某資產(chǎn),而不需要暴露自己的隱私;以及 Plasma 的智能合約在進行復(fù)雜升級時也可以 zkSNARKs 的形式證明其狀態(tài)升級正確性,而不需要暴露細節(jié),也能提升合約作惡難度;
以上。
整體來說,Vitalik 全文清晰地描述了 Plasma 的現(xiàn)狀以及存在的問題,包括未來 ZK 化的可能性。在我看來,Plasma 并不新穎,甚至過去多年它已經(jīng)在支付場景找到了自己的位置,此時此刻 Vitalik 拋出 ZK+Plasma 的新方向,是一次方向引導(dǎo),也是一次政治搖旗,至于市場是否會順著 vitalik 的意思走,我個人不是很樂觀:
1)Rollup 是市場從投入成本、開發(fā)難度、生態(tài)兼容度等綜合出來的最優(yōu)解,ZK+Plasma 固然是一種更高級的 ZK-Rollup,但當下 ZK-Rollup 的發(fā)展也并不樂觀,直接跳到 Plasma 過于倉促了;
2)Validium 作為一種獨立鏈擴容方案,在 ZK 的應(yīng)用程度上相對更高級,但它完全依賴鏈下 DA,相較之下 ZK+Plasma 似乎和以太坊主網(wǎng)黏性更高,但 Vitalik 這樣呼吁可以理解,ZK 的成熟開發(fā)者們放棄 Validium 搞 ZK+Plasma 的動力或許不足。
Note:請務(wù)必細讀下 Vitalik 的文章,再來理解本文。