淺論Restone:它不是Plasma 而是Optimium變體

作者:Faust,極客web3***

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

就在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到底是什麼東西。 **

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上。

這一步操作需要使用者提交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,把自己的資產提走。

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

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

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

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

假如排序器是在提交第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合約的鏡像合約,似乎也可以,但這會引入相當巨大的麻煩,增加機會成本,由哪些人來投票決定鏡像合約的處置方式,也會是個大問題。 這其實涉及到公權力分配的難題,此前響馬曾在訪談《高性能公鏈難出新事,智慧合約涉及權力分配》**中談到過這點。

當然,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中叫逃生艙)。

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

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

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

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

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

(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數據。

(圖源:L2beat)

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

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

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

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)