V 神遺漏了 Arbitrum 和 Redstone 的 “數據可用性挑戰”,這東西堪稱 Celestia 殺手

作者:Faust,極客 Web3

封面:Photo by Shubham Dhage on Unsplash

2024 年 1 月 16 日,在一條由乙太坊 Layer2 專案 Taiko 創始人 DanielWang 發起,與 AA 錢包 Soul Wallet 創始人曾嘉俊互動的推文下,Vitalik 說:“Rollup 的關鍵在於無條件的安全保障:即使你被所有人針對,你依然能將資產取走。 如果 DA 依賴於外部系統(乙太坊之外),就無法做到這一點。 

由於 Vitalik 在這條推文的後半段談到了自己對 Validium 的看法(Validium 是指不用乙太坊實現 DA 數據發佈的 ZK 二層),所以得到了很多人的關注(此前坊間盛傳,乙太坊基金會認為 Layer2=Rollup)。

(需要強調:乙太坊社區談論的 DA 概念,指的是你能否獲取到 Layer2 新產生的數據,不是說你能否檢索到很久前的歷史數據。  如果不在乙太坊鏈上發佈新數據,Layer2 節點可能無法順利解析出最新的 L2 區塊)

但「乙太坊 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 系統更基礎、更關鍵,今天這篇文章也將就這個觀點做出進一步解釋。

逃生艙:Viatlik 口中的 “無需條件的安全提款”

其實,Vitalik 的這番話不難推敲,是在談論 ZK Rollup 的逃生艙。  逃生艙又名 Escape Hatch,是一種在 Layer1 上直接觸發的提款模式。  該模式一旦被觸發,Rollup 合約將進入凍結狀態,拒收 Sequencer 提交的新數據,並允許任何人出示 Merkle Proof,證明自己在 Layer2 上的資產餘額,將屬於自己的資產從 Layer2 官方橋存款地址中轉走。

更進一步說,逃生艙模式是在使用者交易遭到 Layer2 排序器長時間的拒絕後,可以由當事人在 Layer1 上手動觸發的 “去信任化提款機制”。

不過,在啟動逃生艙模式前,被排序器拒絕的使用者,要先調用 Layer1 上 Rollup 合約中的強制提款函數,發起強制提款請求,並拋出一個事件讓 Layer2 節點知曉:有人發起了強制提款請求。

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

如果強制提款請求被長時間無視,使用者就可以主動觸發逃生艙模式(路印協定默認這個等待期為 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 個為你提供數據。

EthStorage 團隊似乎致力於將這個 N 擴大,激勵更多節點存儲很久前的歷史數據。 如果 1/N 的分母足夠大,分數還是接近於 0,接近於沒有引入信任假設。 這或許可以適當解決 4844 后的歷史數據檢索問題。

逃生艙與 DA 的關係——Validium 的勒索攻擊

在這裡我們再度概括下:逃生艙就是讓你通過 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 安全模型與風險指標》

Celestia 殺手:Arbitrum 和 Redstone 的數據可用性挑戰

說完了逃生艙與 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 生態畫上濃墨重彩的一筆。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。