風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
为何V神关于「DA问题与抗审查提款」的发言并不严谨?
星球君的朋友们
Odaily资深作者
2024-01-17 11:28
本文約3649字,閱讀全文需要約6分鐘
Vitalik 遗漏了 Arbitrum 和 Redstone 的「数据可用性挑战」,这东西堪称 Celestia 杀手。

原文標題:《糾正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 生態畫上濃墨重彩的一筆。

原文連結

DA
Vitalik
安全