糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論



Plasma的安全提款對DA系統沒有依賴,抗審查提款也不是非要對DA系統有依賴。

作者:Faust,極客web3

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

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图1

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图3

由於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 關於 DA 問題與抗審查提款的不嚴謹言論插图5

如果像Vitalik說的那樣,“所有人都針對你”,你最多可以把L1-L2橋接資產提走,但無法把自己的“Layer2原生Token”提走,此時無論是走普通的withdraw,還是走forced withdraw,或是走Escape Hatch,都沒用。

其次,“無需條件的安全提款”不是非要依賴於DA系統。Rollup之前的早期Layer2方案、在以太坊鏈下實現DA數據發佈的Plasma,DA系統故障時(就是指數據扣留發生,除了排序器/委員會之外,其他人無法收到新的交易數據/狀態轉換資訊),一樣允許用戶通過歷史數據來提交資產證明,安全逃離Layer2。

換言之,Plasma的安全提款對DA系統沒有依賴,抗審查提款也不是非要對DA系統有依賴(但要保證歷史數據可獲取);況且,這番話是以太坊基金會的Dankrad(Danksharding提出者)親口說的,同時也是放之四海皆公理的。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图7

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图9

參考極客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 關於 DA 問題與抗審查提款的不嚴謹言論插图11

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

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图13

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

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图15

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

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

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图17

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图19

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

如果強制提款請求被長時間無視,用戶就可以主動觸發逃生艙模式(路印協定默認這個等待期為15天,StarkEx方案是7天)。然後,其操作流程就如同本文開篇所談,用戶提交對應自己資產的Merkle Proof,證明自己在Layer2的資產狀況,然後從Rollup相關合約中把資產提走。

但要構造Merkle Proof,需要先獲知完整的L2狀態,要找一個L2全節點索要數據。如果Vitalik所說的那種極端情況發生,沒有Layer2節點配合你,你可以自己啟動一個Layer2全節點,通過以太坊網路,獲取L2排序器發佈到以太坊上的歷史數據,從Layer2創世區塊開始一個個同步,直到算出最後的狀態,構造出Merkle Proof,就可以通過逃生艙來安全提款。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图21

顯然,這時的“抗審查性”,與以太坊/Layer1本身等價。只要有以太坊全節點提供很久前的歷史數據給你就行,接近於去信任化。

但EIP-4844後,以太坊全節點會自動丟掉部分歷史數據,使得Layer2超18天的歷史數據不再被ETH節點全網備份,屆時逃生艙提款的抗審查性,將不再像今天這樣接近於Trustless。

4844後,我們需要信任,數量較為有限的、存儲了全部歷史數據的以太坊節點,願意提供數據給你(Layer2原生的節點往往很少,暫且不考慮進來)。屆時,Layer1歷史數據可檢索/Layer2逃生艙提款的信任假設,將從今天的Trustless或0,變為1/N,即假設N個節點中能有1個為你提供數據。

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

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图23

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

在這裡我們再度概括下:逃生艙就是讓你通過Merkle Proof,證明自己的Layer2資產狀況,在Layer1上去信任的提款。

而Vitalik之所以提到,提款涉及的資產安全需要有DA作為前提,主要是指Validium方案可以因“數據扣留攻擊”而無法提款。(只發布stateroot,不發佈對應的交易數據)。

具體原理是:排序器可能扣住交易數據不放,只向以太坊鏈上發佈一個Merkle Root(Stateroot),然後通過有效性證明,設法讓新的Stateroot通過驗證,成為當前的合法Stateroot。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图25

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图27

這時候,大家不知道合法Stateroot對應的完整狀態,無法構造出對應的Merkle Proof來發動逃生艙提款。除非排序器願意釋放數據給你,你才能提款,這被Arbitrum的某位技術負責人形象的稱為“贖金問題”(我個人更喜歡稱之為勒索攻擊)。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图29

但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安全模型與風險指標》

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图31

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

說完了逃生艙與DA的關係,我們再來回看DA本身:Layer2也不是非要把DA數據發佈到以太坊上,才能避免排序器搞“數據扣留”。

Redstone和Arbitrum、Metis等都在研發“數據可用性挑戰”機制,允許排序器只在鏈上發佈DA Commitment(datahash)+Stateroot,聲明已經在鏈下發布狀態轉換參數(交易數據)。如果有人無法在鏈下獲取到新產生的數據,則可以針對鏈上的DA Commitment發起挑戰,要求排序器將數據披露到鏈上。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图33

如果排序器被挑戰後,沒有及時在ETH鏈上發佈數據,則它之前發佈的datahash/commitment會被視為無效,關聯在一起的stateroot也會無效。顯然,這直接解決了數據扣留問題(只發布stateroot,不發佈對應的交易數據)。

顯而易見,這比起Validium和Optimium這類DA offchain的Layer2,多出了一個“數據可用性挑戰”。但這麼一個簡單的設計,就足以對Celestia和Avail、EigenDA等造成有力競爭。自己設置一個DAC,引入數據可用性挑戰,則不需要再依賴於Celestia。

但相對的,數據可用性挑戰也有需要解決的經濟問題。ZkSync創始人在和Arbitrum技術負責人battle時指出,數據可用性挑戰在理論上容易遭到Dos攻擊。比如,排序器快速在鏈上發佈數千個DA commitment,然後扣住對應的完整數據不發佈。它可以通過這種方式耗盡所有挑戰者的資金,然後發佈一個無效區塊,盜取用戶資產。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图35

當然,這種假設過於極端,本質是一個攻守雙方的博弈論問題,並且實際上,排序器更容易被惡意挑戰者dos攻擊,遭到連續挑戰後退化為Rollup。圍繞著數據可用性挑戰的攻守雙方之間的博弈情形,其實非常有趣,對應的機制設計也會充分考驗Arbitrum和Redstone以及Metis專案方的智慧(這個話題可以單獨成文了)。

糾正 Vitalik 關於 DA 問題與抗審查提款的不嚴謹言論插图37

但無論如何,數據可用性挑戰都將為Layer2的DA方案設計帶來更多的創新,這種方案也將在位元幣Layer2生態畫上濃墨重彩的一筆。

聯系郵箱:0xniumao@gmail.com