原文標題:《糾正Vitalik 關於DA 問題與抗審查提款的不嚴謹言論》
原文作者:Faust,極客web3
2024 年1 月16 日,在一條由以太坊Layer2 計畫Taiko 創辦人DanielWang 發起,與AA 錢包Soul Wallet 創辦人曾嘉俊互動的推文下,Vitalik 說:「Rollup 的關鍵在於無條件的安全保障:即使你被所有人針對,你依然能將資產取走。>


由於Vitalik 在這則推文的後半段談到了自己對Validium 的看法(Validium 是指不用以太坊實現DA 數據發布的ZK 二層),所以得到了很多人的關注(此前坊間盛傳,以太坊基金會認為Layer2 =Rollup)。
(需要強調:以太坊社區談論的DA 概念,指的是你能否獲取到Layer2 新產生的數據,不是說你能否檢索很久前的歷史數據。 但「以太坊Layer2 定義之爭」及「DA War」早已被無數人聽聞,本文不打算對此類話題作出任何探討,旨在將更多精力聚焦在Vitalik 發言的前半段,也就是本文開頭涉及的那番話。 Vitalik 在此表明,Rollup 能夠實現去信任化的抗審查提款,即便所有的Layer2 節點不配合你,你也能夠把自己的資產撤離Layer2;而且,他指出,只有Rollup 能實現這種「無條件的安全提款」,而依賴其他DA 資料發布方式的Layer2,都不能這麼做。 但實際上,Vitalik 的這番話並不嚴謹。 首先,只有 Layer1 橋接到 Layer2 的資產才可以跨回到 ETH 鏈上,單純的 Layer2 原生資產無法跨到 Layer1(除非 Layer2 原生資產在 Layer1 上部署了橋接資產合約)。 如果像Vitalik 說的那樣,「所有人都針對你」,你最多可以把L1-L2 橋接資產提走,但無法把自己的「Layer2 原生Token」提走,此時無論是走普通的withdraw,還是走forced withdraw,或是走Escape Hatch,都沒用。 其次,「無條件的安全提款」並非要依賴 DA 系統。 Rollup 之前的早期Layer2 方案、在以太坊鏈下實現DA 資料發布的Plasma,DA 系統故障時(就是指資料扣留發生,除了排序器/委員會之外,其他人無法收到新的交易資料/狀態轉換資訊),一樣允許使用者透過歷史資料提交資產證明,安全逃離Layer2。 換言之,Plasma 的安全提款對DA 系統沒有依賴,抗審查提款也不是非要對DA 系統有依賴(但要確保歷史資料可取得);況且,這番話是以太坊基金會的Dankrad(Danksharding 提出者)親口說的,同時也是放之四海皆公理的。 參考極客Web3 過往文章:《資料扣留與詐欺證明:Plasma 不支持智能合約的原因》 其次,拋開Celestia 和Blobstream 不說,資料扣留/DA 故障問題,就算不用ETH 作為DA 層,也可以解決。單說 Arbitrum 團隊與 Redstone 團隊正在實現的「資料可用性挑戰」,允許排序器只在鏈上發布一個 DA Commitment(其實就是 datahash),聲明已經在鏈下發布資料。 如果有人無法在鏈下獲取到新產生的數據,則可以針對鏈上的 DA Commitment 發起挑戰,要求排序器將數據披露到鏈上。 這個機制設計很簡潔,而且不需要依賴Celestia、Avail 或EigenDA 等第三方DA,只需要Layer2 專案方自行設定鏈下DAC 節點即可,堪稱Celestia 殺手。 下文中,作者打算對Vitalik 口中的「無需條件的安全提款」和他所沒有提及的「資料可用性挑戰」進行解讀,試著告訴大家:為何Celestia 和Avail、EigenDA 等第三方DA 項目,不是DA offchain 且追求安全性的Layer2 的必選? 此外,我們之前曾在闡述「比特幣Layer2 風險評估指標」的文章中,談到抗審查提款比DA 系統更基礎、更關鍵,今天這篇文章也將就這個觀點做出進一步解釋。 其實,Vitalik 的這番話不難推敲,在談論ZK Rollup 的逃生艙。逃生艙又稱為 Escape Hatch,是一種在 Layer1 上直接觸發的提款模式。 一旦被觸發,Rollup 合約將進入凍結狀態,拒收Sequencer 提交的新數據,並允許任何人出示Merkle Proof,證明自己在Layer2 上的資產餘額,將屬於自己的資產從Layer2 官方橋存款地址轉走。 更進一步說,逃脫艙模式是在使用者交易遭到Layer2 排序器長時間的拒絕後,可以由當事人在Layer1 上手動觸發的「去信任化提款機制」。 不過,在啟動逃生艙模式前,被排序器拒絕的用戶,要先調用Layer1 上Rollup 合約中的強制提款函數,發起強制提款請求,並拋出一個事件讓Layer2 節點知曉:有人發起了強制提款請求。 如果強制提款請求被長時間無視,用戶就可以主動觸發逃生艙模式(路印協定預設這個等待期為15 天,StarkEx 方案是7 天)。然後,其操作流程就如同本文開頭所談,用戶提交對應自己資產的 Merkle Proof,證明自己在 Layer2 的資產狀況,然後從 Rollup 相關合約中把資產提走。 但要建構 Merkle Proof,需要先獲知完整的 L2 狀態,要找一個 L2 全節點索要資料。如果Vitalik 所說的那種極端情況發生,沒有Layer2 節點配合你,你可以自己啟動一個Layer2 全節點,通過以太坊網絡,獲取L2 排序器發佈到以太坊上的歷史數據 ,從Layer2 創世區塊開始一個個同步,直到算出最後的狀態,構造出Merkle Proof,就可以透過逃生艙來安全提款。 顯然,這時的「抗審查性」,與以太坊/Layer1 本身等價。 只要有以太坊全節點提供很久前的歷史資料給你就行,接近去信任化。 但EIP-4844 後,以太坊全節點會自動丟掉部分歷史數據,使得Layer2 超18 天的歷史數據不再被ETH 節點全網備份,屆時逃生艙提款的抗審查性,將不再像今天這樣接近Trustless。 4844 後,我們需要信任,數量較為有限的、儲存了全部歷史資料的以太坊節點,願意提供資料給你(Layer2原生的節點往往很少,暫且不考慮進來)。屆時,Layer1 歷史資料可檢索/Layer2 逃生艙提款的信任假設,將從今天的Trustless 或0,變為1/N,即假設N 個節點中能有1 個為你提供資料 strong>。 EthStorage 團隊似乎致力於將這個 N 擴大,激勵更多節點儲存很久前的歷史資料。如果 1/N 的分母夠大,分數還是接近 0,接近沒有引入信任假設。這或許可以適當解決 4844 後的歷史資料檢索問題。 在這裡我們再度概括下:逃生艙就是讓你通過Merkle Proof,證明自己的Layer2 資產狀況,在Layer1 上去信任的提款。 而Vitalik 之所以提到,提款涉及的資產安全需要有DA 作為前提,主要是指Validium 方案可以因「資料扣留攻擊”而無法提款。 (只發布 stateroot,不發布對應的交易資料)。 具體原則是:排序器可能扣住交易資料不放,只向以太坊鏈上發布一個Merkle Root(Stateroot),然後透過有效性證明,設法讓新的Stateroot 通過驗證,成為當前的合法Stateroot。 這時候,大家不知道合法Stateroot 對應的完整狀態,無法建構出對應的Merkle Proof 來發動逃生艙提款。 除非排序器願意釋放資料給你,你才能提款,這被 Arbitrum 的某位技術負責人形象的稱為「贖金問題」(我個人更喜歡稱之為勒索攻擊)。 但DA 在連結的Validium,之所以容易出現「勒索攻擊」,是因為他自己的機制設計不夠完善,如果引入和提款行為相關的挑戰機制,或者引入數據可用性挑戰,理論上可以解決勒索攻擊問題。 By the way,前文曾提到,允許用戶透過很久前的歷史資料來提款的Plasma,就不會出現Validium 這樣的「勒索攻擊」,而Plasma 也是DA 在鏈下的(鏈下DA+鏈上驗證詐欺證明)。 參考資料:資料扣留與詐欺證明:Plasma 不支持智能合約的原因 所以說,抗審查提款/逃生艙並不是要依賴DA,一切取決於提款流程的機制設計。 Vitalik 之所以認為,抗審查提款與 DA 綁定,是因為他是先入為主的從 Validium、智能合約型 Rollup 等既有方案出發,腦海中已經存在了一種思維定式。 但這不代表天底下所有DA offchain 的Layer2 都面臨和Validium 一樣的問題,不代表智能合約型Rollup 就是一切的終點,創新隨時都可能發生(例如後文提到的數據可用性挑戰)。 反過來,如果你的Layer2 方案從一開始就不考慮有逃生艙、抗審查提款這類設計,你的Layer2 就肯定不夠去信任/安全。 換言之,好的 DA 和證明系統,是實現抗審查提款的充分條件,但不是必要條件。 所以我們先前的文章中,提到Layer2 木桶效應中,抗審查提款是比DA 和證明系統更基礎的短板,是有理由的。 參考資料:《用桶子理論拆解比特幣/以太幣Layer2 安全模型與風險指標》 說完了逃生艙與DA 的關係,我們再來回看DA 本身:Layer2 也不是非要把DA 資料發佈到以太坊上,才能避免排序器搞「資料扣留」。 Redstone 和Arbitrum、Metis 等都在研發「資料可用性挑戰」機制,允許排序器只在鏈上發布DA Commitment(datahash)+Stateroot,聲明已經在鏈下發布狀態轉換參數(交易資料)。 如果有人無法在鏈下獲取到新產生的數據,則可以針對鏈上的 DA Commitment 發起挑戰,要求排序器將數據披露到鏈上。 如果排序器被挑戰後,沒有及時在ETH 鏈上發布數據,則它之前發布的datahash/commitment 會被視為無效,關聯在一起的stateroot 也會無效。 顯然,這直接解決了資料扣留問題(只發布 stateroot,不發布對應的交易資料)。 顯而易見,比起 Validium 和 Optimium 這類 DA offchain 的 Layer2,多出了一個「數據可用性挑戰」。 但這麼簡單的設計,就足以對 Celestia 和 Avail、EigenDA 等造成有力競爭。 自行設定一個 DAC,引入資料可用性挑戰,則不需要再依賴 Celestia。 但相對的,資料可用性挑戰也有需要解決的經濟問題。 ZkSync 創辦人在和 Arbitrum 技術負責人 battle 時指出,資料可用性挑戰在理論上容易遭到 Dos 攻擊。 例如,排序器快速在鏈上發布數千個 DA commitment,然後扣住對應的完整數據不發布。它可以透過這種方式耗盡所有挑戰者的資金,然後發布一個無效區塊,竊取用戶資產。 當然,這種假設過於極端,本質是一個攻守雙方的博弈論問題,而且實際上,排序器更容易被惡意挑戰者dos 攻擊,遭到連續挑戰後退化為Rollup。圍繞著資料可用性挑戰的攻守雙方之間的博弈情形,其實非常有趣,對應的機制設計也會充分考驗 Arbitrum 和 Redstone 以及 Metis 專案方的智慧(這個主題可以單獨成文了)。 但無論如何,資料可用性挑戰都將為Layer2 的DA 方案設計帶來更多的創新,這種方案也將在比特幣Layer2 生態畫上濃墨重彩的一筆。 



逃脫艙:Viatlik 口中的「無條件的安全提款」




(由於Layer2 節點都會執行以太坊geth 用戶端,會接收到以太坊區塊,所以能夠監聽到強制提款事件的觸發)


逃脫艙與DA 的關係-Validium 的勒索攻擊




Celestia 殺手:Arbitrum 和Redstone 的資料可用性挑戰



原文連結
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia