淺論 Redstone:它不是 Plasma,而是 Optimium 變體



本文將為大家介紹Plasma的原理及其為何對智慧合約及Defi不友好,以及Redstone到底是什麼東西。

作者:Faust,極客web3

近期,一個叫Redstone的專案成為了熱點。這個由Lattice團隊推出的鏈遊專項Layer2設施,於11月15日正式發佈,目前已上線測試網。有趣的是,Lattice團隊稱“Redstone是受到Plasma啟發的Alt-DA鏈”

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图1

就在Redstone發佈的前一天,Vitalik剛剛發表了文章“Exit games for EVM validiums: the return of Plasma”,文中簡單回顧了本已消失在以太坊生態的技術方案“Plasma”,並指出可以引入有效性證明(與ZK Proof混淆),來解決Plasma的問題。

對此,有不少朋友認為,Vitalik發表這篇文章,是為了給Redstone站臺,甚至在極客Web3社群內也有人說,Vitalik搞不好投資了Redstone。再加上此前傳的沸沸揚揚的“以太坊Layer2定義之爭”,一時間人們普遍認為,接下來會引發“Plasma的復興”,而Celestia等以太坊生態外的DA方案可能因此被抑制,因為Plasma沒有對DA的嚴格要求。

但據本文作者考證,Redstone並不符合Plasma方案的大致框架,其自稱“受到Plasma啟發”反而有蹭Vitalik文章熱點的可能性,而不是Vitalik真要為Redstone站臺。此外,Redstone的DA挑戰方案與Layer2專案Metis在2022年4月推出的方案頗有相似之處,只不過兩者在更新Stateroot——發佈DA數據這兩個步驟上的先後次序不同。

所以,真實的情況是,大家可能對Redstone產生了“過度解讀”。下文中將通過一些簡單的推理來為讀者解釋Plasma的原理及其為何對智慧合約及Defi不友好,以及Redstone到底是什麼東西。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图3

Plasma:遇到了數據扣留攻擊就要緊急提款

Plasma的歷史可以追溯到2017年以太坊IC0熱潮時期,彼時以太坊用戶的交易需求呈爆炸式增長,而TPS低下的ETH不堪重負。在這樣的關頭,Plasma最早的理論版本發佈了,文中提出了一種二層擴容方案,可以處理“世界上幾乎所有的金融場景”。

簡單來說,Plasma是一種只把Layer2的區塊頭/Merkle Root發佈到Layer1上的擴容方案,區塊頭/Merkle Root之外的那部分數據(DA數據)只在鏈下發布。如果Plasma的排序器/Operator在L1上發佈的Merkle Root關聯了一筆無效交易(數位簽名錯誤等場景),相關用戶可以提交欺詐證明,證明排序器提交的Root關聯著一筆無效交易。

但問題在於,要發佈欺詐證明必須保證DA數據不被扣留,但Plasma對DA層沒有嚴格要求,不能保證用戶或L2節點可以接收到數據。如果排序器在某個時間點發動數據扣留攻擊(也被稱作數據可用性問題),只發布新的區塊頭/Merkle root,卻不發佈對應的區塊體,讓人無法驗證區塊頭/root是否有效,用戶就只能默認排序器“無藥可救”,通過名為“Exit Game”的緊急退出機制,把資產從Layer2撤到Layer1上。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图5

這一步操作需要用戶提交Merkle Proof,證明自己在L2上的確有相應數額的資產,我們可以將此稱為“資產證明”。有意思的地方在於,Plasma的Exit Game和ZK Rollup的逃生艙模式並不一樣,ZK Rollup用戶必須提交對應最近一個有效Stateroot的Merkle Proof,而Plasma用戶卻可以提交很久前的Merkle Root對應的Proof。

為什麼設計成這樣?只是因為,ZK Rollup提交的Stateroot,會被Layer1上的合約立刻投入判斷(判斷有效性證明是否有效)。如果這個剛提交不久的Stateroot是有效併合法的,那麼用戶就應當提交對應合法Stateroot的Merkle Proof來充當資產證明。

但Plasma的排序器提交的Merkle Root,Layer1合約無法判斷是否有效,只能讓L2節點主動發起挑戰來排除無效Root,所以會有挑戰機制,這使得Plasma和Zk Rollup的運作原理迥然不同。

假設排序器剛發佈了一個無效的Merkle Root 101,同時發動數據扣留攻擊,讓L2節點無法證明101號root是無效的,此時用戶可以提交對應100號root或更早以前root的merkle Proof,把自己的資產提走。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图7

當然這裡有個問題需要解決,就是某個用戶可能提交對應30號root或更早期root的資產證明,請求把資產撤到Layer1,但這個人在30號root發佈後,資產狀況可能有變化。換句話說,他提交的是過時的資產證明,這就是典型的雙花攻擊/雙重支付。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图9

對此,Plasma允許任何人針對上述情況提交欺詐證明,指出某個發起提款聲明的用戶提交的“資產證明”是過時的。通過引入這種“任何人都可以挑戰別人的提款聲明”,Plasma不需要像ZK Rollup那樣處理緊急提款請求。

但還是有一種可能,就是排序器先把其他人的資產劃轉到自己的L2賬戶下,然後再發動數據扣留攻擊,讓外人無法對自己的作弊行為發起挑戰。之後,排序器自己的賬戶發起緊急提款,提交“資產證明”宣稱自己的確在L2上擁有這些資產。

顯然,這種時候因為缺失了一段歷史記錄,人們無法直接證明排序器的資產來源有問題。那麼這種情況下該怎麼辦?Plasma的早期版本比如Plasma MVP考慮到了這點,他們提出了“提款優先級”。如果一個人提交的資產證明對應的root更早,它的提款請求就會被優先處理。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图11

假如排序器是在提交第101號root時進行上面說的作弊行為併發起提款,那麼用戶可以提交對應99號或更早root的資產證明來緊急提款。顯然,排序器只要無法篡改已經發布到Layer1上的歷史記錄,用戶就有辦法逃出生天。

但Plasma還是有一個致命bug:只要排序器發動數據扣留,人們就要靠緊急提款(又稱Exit Game)來保證資產安全,如果短時間內大量用戶集體提款,Layer1很容易處理不過來;

更嚴重的是,像Defi合約上記錄的資產,該由誰來提取到Layer1?假設有人往DEX的LP池子充了100個ETH,之後Plasma的排序器故障或作惡了,人們需要緊急提款,這時候用戶的100個ETH都還為DEX合約所控制,請問這個時候這些資產該由誰提到Layer1上?

最好的辦法其實是先讓用戶從DEX池子裡贖回自己的資產,再由用戶自己去把錢提到L1上,但問題是Plasma排序器已經故障/作惡了,用戶沒法執行贖回資產的操作。可如果我們允許DEX合約的owner去把合約控制的資產提到L1,顯然會賦予合約owner以資產所有權,他可以隨時把這些資產提到L1上並跑路,這豈不是太可怕了?

所以到最後,該怎麼處置這些由Defi合約所支配的“公共財產”,是一個巨大的雷。如果走社會共識,在Layer1上重建一個映射了Layer2上defi合約的鏡像合約,似乎也可以,但這會引入相當巨大的麻煩,增加機會成本,由哪些人來投票決定鏡像合約的處置方式,也會是個大問題。這其實涉及到公權力分配的難題,此前響馬曾在訪談《高性能公鏈難出新事,智慧合約涉及權力分配》中談到過這點。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图13

當然,Vitalik在最近的文章“Exit games for EVM validiums: the return of Plasma”中也指出了這一點,並強調這是Plasma對智慧合約不友好的因素之一。過往的知名Plasma變體如Plasma MVP和Plasma Cash等,採用了UTXO或類似的模型來替代以太坊的賬戶地址模型,並且不支持智慧合約,這樣可以避免上面談及的“資產所有權分配”問題,每個UTXO的所有權固然歸屬於用戶自己,但UTXO本身也有諸多缺陷,且對智慧合約不友好。所以Plasma方案最適合簡單的支付或訂單簿式交易所。

到後來,隨著ZK Rollup的走紅,Plasma本身也退出了歷史舞臺,因為Rollup不存在Plasma的數據扣留問題。假如ZK Rollup的排序器發動數據扣留攻擊,只往ETH鏈上提交Stateroot但沒有DA數據,這樣的root會判定為無效,直接被L1上的Verifier合約拒絕。所以,ZK Rollup的合法Stateroot對應的DA數據,在ETH鏈上必定可查。這樣就不存在“只發布區塊頭或merkle root,卻不發佈對應的區塊體”,也就是可以解決數據可用性問題/數據扣留攻擊。

同時,Rollup的過往DA數據在以太坊上可查,任何人都可以通過ETH鏈上的歷史記錄來啟動Layer2節點,這將去中心化乃至無需許可的排序器方案難度大幅降低。相比之下,Plasma對DA沒有嚴格要求,實現去中心化排序器的難度也更大(要實現可替換的去中心化排序器,首先要保證所有的L2節點都認可相同的block,這就對DA實現方式提出了要求)。

此外,如果ZK Rollup的排序器嘗試把無效交易包含進Layer2區塊,也無法成功,這是由有效性證明的原理來保障的。

歸根結底,ZK Rollup排序器的作惡空間與Plasma相比要狹小許多——它最多能讓Stateroot的更新停滯,在UX層面相當於停機,或者拒絕某些用戶的請求,俗稱交易審查。同時,Rollup方案中如果排序器故障了,其他節點要替代它也會更容易。理想狀態下的Rollup,可以將Plasma中Exit game模式的觸發概率降至0(ZK Rollup中叫逃生艙)。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图15

(L2BEAT上的Proposer Failure一欄,展示了各個L2方案如何應對排序器故障問題,Self Propose往往指其他節點可以替代當前處於停機狀態的排序器)

時至今日,以太坊生態內幾乎沒有團隊還在堅持Plasma路線了,幾乎所有的Plasma專案都胎死腹中。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图17

(Vitalik解釋為何ZK Rollup比Plasma更優越,其中有提到無需許可的排序器運行和DA問題)

Redstone是個啥:它不是Plasma,而是Optimium的變體

上文我們簡單闡述了Plasma以及其被Rollup替代的簡要因素,而至於Redstone,想必大家也看到了它和Plasma的不同:Redstone可以解決數據扣留攻擊問題,比如它不會立刻發佈新的stateroot,而是先在ETH鏈下發布原始的DA數據,然後把DA數據的datahash作為一個關聯的憑證commitment,發佈到ETH鏈上,稱自己在鏈下已發佈這段datahash所對應的完整數據。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图19

(Redstone官方對自己的防止數據扣留攻擊方案的解釋)

任何人都可以發起挑戰,稱Redstone的排序器沒有在鏈下發布這段datahash對應的原始數據。此時,排序器需要在鏈上發佈datahash對應的數據,以應對質疑者的挑戰。如果排序器被挑戰後,沒有及時在ETH鏈上發佈數據,則它之前發佈的datahash/commitment會被視為無效。

如果排序器及時回應了挑戰者的請求,那麼挑戰者就可以及時獲取到datahash對應的原始DA數據。最終,所有L2節點基本都可以獲取到所需的DA數據,以解決數據扣留攻擊問題。當然,挑戰者本身需要先支付一筆費用,這筆費用約等於排序器在ETH鏈上發佈原始DA數據的成本,這個舉措是為了防止惡意挑戰者無成本的挑戰排序器,致使後者蒙受損失。

最後,當針對datahash的挑戰期結束後,排序器將發佈對應的stateroot,也就是執行datahash對應的DA數據中 包含的交易序列後,得到的root。此時L2節點可以使用欺詐證明系統來挑戰那些無效的root。如果此前某個datahash在被挑戰後,排序器沒有及時發佈對應的原始DA數據,則排序器即便後面發佈了這個datahash對應的stateroot,也會被默認為無效。

由於Redstone是先發布DA數據,之後才發佈對應的有效Stateroot,直接解決了數據扣留攻擊問題(排序器只發布root而不發佈DA數據)。

顯然這種模式和普通的Optimium(不用以太坊實現DA的OP Rollup,比如Arbitrum Nova)不同,Optimium一般依賴於鏈下DAC委員會確保數據可用性,DAC每隔一段時間向鏈上提交一個多簽txn,Layer1上的Rollup合約收到多簽txn後,會默認排序器已在鏈下發布最新一批的DA數據。

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图21

(圖源:L2beat)

而像Metis和Arbitrum Nova等是同時提交Stateroot和datahash,如果有人認為排序器扣留了DA數據,便會嘗試發起挑戰,排序器會把datahash對應的DA數據發到鏈上。

所以,Redstone和Metis的關鍵區別在這一步:前者是先發布datahash,等DA挑戰期結束,才發佈stateroot;Metis卻是同時發佈stateroot和datahash,如果有人發起挑戰,則把DA數據上鏈。顯然Redstone的方案更安全些,因為Metis的方案下,如果排序器一直不回應挑戰者對DA數據的請求,則數據扣留攻擊問題無法快速解決,只能依靠緊急提款和社會共識,或是讓其他節點接替當前的排序器;

淺論 Redstone:它不是 Plasma,而是 Optimium 變體插图23

但換做Redstone,如果排序器搞數據扣留,則其發佈的stateroot直接被認作無效,所以stateroot和DA數據是綁定關係,這使得Redstone可以獲得和Rollup較接近的DA保證,本質上是比Arbitrum Nova和Metis更優越的Optimium變體

聯系郵箱:0xniumao@gmail.com