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