开除Validium?從Danksharding提出者的視角重新理解Layer2

2023-08-19 16:08:23

原文作者:Faust

原文來源: 極客 Web3

導語:近日,Danksharding 的提出者、以太坊基金會的研究員 Dankrad Feist 在推特上發表了一番頗具爭議的言論。他明確指出,不採用 ETH 作 DA 層(數據可用性層)的模塊化區塊鏈不是 Rollup,同時也不是以太坊 Layer 2 。如果按照 Dankrad 的說法, Arbitrum Nova 和 Immutable X、 Mantle 都要從 Layer 2 名單裏「除名」,因為它們只在 ETH 之外(自己構建了名為 DAC 的鏈下 DA 網絡)披露交易數據。

同時,Dankrad 還表示,像 Plasmas 和狀態通道這種不需要鏈上數據可用性(Data Availability)來確保安全的方案仍算是 Layer 2 ,但 Validium(不用 ETH 作 DA 層的 ZKRollup)不算 Layer 2 。

Dankrad 此言一出,便引來了諸多 Rollup 領域的 Founder 或 Researcher 質疑。畢竟有許多「Layer 2 」項目為了節約成本,並沒有採用 ETH 作為 DA( 數據可用性 ) 層,如果把這些項目踢出 L2 名單,必然波及到相當多的擴容網絡;同時,如果 validium 不算 L2,Plasma 應該也沒資格算作 L2。

對此,Dankrad 表示,Plasma 用戶在 DA 不可用時(就是指鏈下的 DA 層網絡搞數據扣留,不公开交易數據),仍然可以把自己的資產安全撤出至 L1;但相同的情況下,Validium(大多數採用 StarkEx 方案的項目都是 validium)卻可以讓用戶無法撤資至 L1,把錢凍住。

顯然,Dankrad 打算從「是否安全」來界定一個擴容項目是否為以太坊 Layer 2 。如果從「安全性」的角度來考量,Validium 在定序器故障 + DA 層發動數據扣留攻擊 ( 隱瞞新數據 ) 的極端情況下,的確可以把用戶資產凍結在 L2 無法提到 L1;Plasma 因在設計上與 Validium 不同,雖然多數時候安全保障不及 Validium,但在定序器故障 + DA 層發動數據扣留攻擊 ( 隱瞞新數據 ) 時,卻允許用戶把資產安全撤離至 L1。所以 Dankrad 的說辭不無道理。

本文打算從 Dankrad 的視角出發,通過對 Layer 2 的細節作進一步分析,來深入理解為何 Validium 不是嚴格意義上的「Layer 2 」。

到底怎么定義 Layer 2 ?

按照 ethereum.org 網站和多數以太坊社區成員的定義,Layer 2 是「給以太坊擴容 + 繼承以太坊安全性 的獨立區塊鏈」。首先,「給以太坊擴容」就是指分流以太坊無法承載的流量,分擔 TPS 方面的壓力。而「繼承以太坊安全性」,其實可以轉譯為「借助以太坊保障自身安全性」。

比如,Layer 2 上所有的交易 Tx 都要在 ETH 上完成最終結算 Finalize,數據有錯誤的 Tx 不會被放行;如果要回滾 Layer 2 的區塊,要先回滾以太坊區塊,只要以太坊主網不發生類似 51% 攻擊的區塊回滾,L2 區塊就不會回滾。

如果我們更進一步探討 Layer 2 的安全性,其實還要考慮許多極端情況。比如,如果 L2 項目方跑路、定序器 Sequencer 故障、鏈下 DA 層掛掉,在這些極端事件發生時,用戶能否把自己在 L2 上的資金安全撤出到 L1 上?

Layer 2 的「強制提款」機制

不考慮 L2 合約升級 / 多籤隱患等因素,其實如 Arbitrum 或 StarkEx 都有為用戶設置強制提款的出口。假設 L2 的定序器發動審查攻擊,故意拒絕用戶的交易 / 提款請求,或幹脆永久宕機,Arbitrum 用戶可以調用 L1 上 Sequencer Inbox 合約的 force Inclusion 函數,將交易數據直接提交至 L1;如果在 24 小時內,定序器沒有處理這筆需要「強制包含」的交易 / 提款,該交易會被直接包含進 Rollup 账本的交易序列中,這就為 L2 用戶創造了一個可強制提款的「安全出口」。

相比之下,有逃生艙 Escape Hetch 機制的 StarkEx 方案要有過之無不及。如果 L2 用戶在 L1 提交的 Forced Withdrawal 請求在 7 天窗口期結束時,未得到定序器響應,則該用戶可以調用 freeze Request 功能讓 L2 進入凍結期。此時,L2 定序器將無法在 L1 上更新 L2 的狀態,L2 狀態凍結後要過 1 年才能解凍。

L2 狀態凍結後,用戶可以構造與當前狀態相關的 Merkle Proof,證明自己在 L2 上有 XX 數額的資金,通過 L1 上的逃生艙 Escape Hetch 相關合約來提款。這便是 StarkEx 方案所提供的「全額提款」服務。即便 L2 項目方沒了,定序器永久故障了,用戶還是有辦法把資金撤出 L2。

但這裏存在一個問題:用 StarkEx 方案的 L2 大多是 Validium(比如 Immutable X 和 ApeX ),並不會把 DA 所需的數據發布到 ETH,構造當前 L2 狀態樹的信息都存在鏈下。如果用戶無法在鏈下獲取構造 Merkle Proof 的數據(比如鏈下 DA 層發動數據扣留攻擊),是無法通過逃生艙來提款的。

至此,文章开頭提到的 Dankrad 認為 Validium 不安全的原因,其實很明確了:因為 Validium 不像 Rollup 一樣把 DA 的數據發到鏈上,所以用戶可能無法構造出「強制提款」所需的 Merkle Proof。

Validium 和 Plasma 在發生數據扣留攻擊時的區別

事實上,Validium 的定序器只在 L1 鏈上發布 L2 最新的 Stateroot(狀態樹的根),再提交一個 Validity Proof(ZK Proof),證明新的 Stateroot 生成過程涉及的狀態轉換(用戶資金變化),都是正確的。

(圖源:eckoDAO)

但單憑 stateroot 無法還原出此刻的狀態樹 world state trie,也就無法知曉每個 L2 账戶的具體狀態(包含資金余額),L2 用戶就無法構造對應當前合法 Stateroot 的 Merkle Proof。這便是 Validium 不利的地方。

(Merkle Proof 其實就是 root 生成過程中所需的數據,也就是圖中暗色的部分。要構造對應 Stateroot 的 Merkle Proof,必須要知道狀態樹的構造,需要有 DA 數據)

這裏必須要強調下 DAC 這個東西。Validium 的 DA 所涉數據,比如定序器最新處理的一批交易,會同步給名為數據可用性委員會 DAC(Data Availability Committee)的 L2 專屬 DA 網絡,DAC 由多臺節點服務器構成,一般由 L2 官方和社區成員或其他單位負責運行和監督(但這只是表面上的,實際上 DAC 成員都有誰,外界很難查證)。

有意思的地方在於,Validium 的 DAC 成員需要頻繁在 L1 提交多籤,證明 L2 定序器在 L1 提交的新 Stateroot 和 Validity Proof,與 DAC 同步到的 DA 數據能對上號。DAC 的多籤提交後,新的 Stateroot 和 Validity Proof 才會被認為是合法的。

目前 Immutable X 的 DAC 採用 5/7 多籤, dYdX 雖然是 ZKRollup,但也有 DAC,用的是 1/2 多籤。(dYdX 只在 L1 發布 State diff 即狀態變化,而非完整交易數據。但獲取了歷史記錄裏的 State diff,就可以還原全部 L2 地址的資產余額,此時就可以構造 Merkle Proof 來全額提款)。

Dankrad 的觀點不無道理。Validium 的 DAC 成員如果合謀,發起數據扣留攻擊,不讓其他 L2 節點同步此刻的最新數據,並且更新此刻 L2 的合法 Stateroot,用戶無法構造此刻合法 root 對應的 Merkle Proof 來提款(因為此刻往後的 DA 數據不可用了,可用的是以前的 DA 數據)。

但 Dankrad 考慮的只是理論上的極端情況,現實中大多數 Validium 定序器都會實時的把新處理的交易數據廣播給其他 L2 節點,其中不乏誠實節點。只要有 1 個誠實節點能夠及時獲取 DA 數據,用戶就可以從 L2 全身而退。

可理論上存在於 Validium 身上的問題,為何不存在於 Plasma 身上?這是因為 Plasma 判定合法 Stateroot 的方式,和 Validium 不同,有欺詐證明窗口期的緣故。Plasma 是 OPRollup 之前的 L2 擴容方案,與 OPR 一樣靠欺詐證明保證 L2 的安全。

Plasma 與 OPR 一樣有窗口期的設定,定序器發布的新 stateroot 不會立刻判定為合法,要等窗口期 close 且沒有 L2 節點發布欺詐證明。所以 Plasma 和 OPR 的當前合法 Stateroot,都是幾天以前提交的(這就好比我們看到的星光,其實都是很久以前發出的),而用戶往往可以獲取過去時刻的 DA 數據。

同時,欺詐證明機制能在此刻生效的前提,是此刻 L2 的 DA 可用,也即 Plasma 的 Verifier 節點可以獲取此刻的 DA 所涉數據,這樣才能生成此刻的欺詐證明 ( 如果有必要的話)。

那么一切都很簡單了:Plasma 正常工作的前提是此刻 L2 的 DA 數據可用。如果從此刻开始,L2 的 DA 不可用了,用戶能安全撤資嗎?

這個問題不難分析,假設 Plasma 的窗口期是 7 天,如果從某個時間點 T 0 开始,新的 DA 數據就不可用(DAC 發動數據扣留攻擊,不讓誠實的 L2 節點獲取 T 0 往後的數據)。因為 T 0 及此後一段時間內的合法 Stateroot,是 T 0 時刻前提交的,而 T 0 時刻前的歷史數據可追溯,所以用戶可以構造 Merkle Proof 來強制提款。

即便很多人無法立刻察覺異常,但因為有窗口期存在(OP 是 7 天),只要 T 0 時刻提交的 Stateroot 還未合法化,且 T 0 之前的 DA 數據可追溯,用戶就可以把錢安全撤出 L2。

總結

至此我們大致可以理清楚 Validium 和 Plasma 在安全性上的區別:

Validium 的定序器發布 Stateroot 後,只要立刻發布 Validity Proof 和 DAC 多籤,就可以使其合法,成為最新的合法 Stateroot;如果用戶和誠實 L2 節點遭遇數據扣留攻擊,無法構造當前合法 Stateroot 對應的 Merkle Proof,就無法提款到 L1。

而 Plasma 提交新的 Stateroot 後,要等窗口期結束才能合法,此時的合法 Stateroot 是過去提交的。因為有窗口期(ARB 是 3 天,OP 是 7 天)存在,即便新提交的 Stateroot 的 DA 數據不可用,用戶也有當前合法 Stateroot 的 DA 數據(合法 root 是過去提交的),有足夠的時間強制提款到 L1。

所以,Dankrad 說的話有道理。當發生數據扣留攻擊時,Validium 存在把用戶資產困在 L2 的可能,但 Plasma 並不存在這個問題。

(下圖中 Dankrad 說的有一點不對,Plasma 應該不允許構造過時的合法 Stateroot 對應的默克爾證明來提款,因為這會導致雙重支付)

所以,鏈下 DA 層的數據扣留攻擊會造成許多安全隱患,但 Celestia 嘗試解決的正是這個問題。此外,因為大多數 Layer 2 項目都會提供讓 L2 節點與定序器保持鏈下同步的服務端口,所以 Dankrad 的憂慮其實往往只是理論上的,而不是現實中的。

如果我們用雞蛋裏挑骨頭的態度,再提出更極端的假設:所有的 Plasma 鏈下節點都不可用了,那么那些沒跑過 L2 節點的普通用戶都無法強制提款到 L1。但這種事情發生的概率,等價於一條公鏈的所有節點集體永久性宕機的概率,可能永遠不會發生。

所以,很多時候,大家只是在談論一些根本就不會發生的事情。正如美劇《切爾諾貝利》裏克格勃副主席對主角說的那段金句:「為何要擔心根本就不會發生的事情呢?」

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

MicroStrategy躋身納指100後,比特幣的买盤飛輪开啓

原文作者: Marco Manoppo 編譯|Odaily星球日報( @OdailyChina )...

星球日報
2 2小時前

盤點2024年度Web3最具影響力的十大攻擊事件

原文來源: Beosin 2024 年,區塊鏈行業在技術創新和生態擴展的同時,也面臨着越來越嚴峻的...

星球日報
3 2小時前

AI「生娃」?一文讀懂自主AI繁殖與進化的實驗平臺Spore.fun

原文標題:Love Death Robots 編者按: 本文主要介紹了 Spore.fun,一個實...

星球日報
2 2小時前

融資4300萬美元的Sahara AI,能否構建真正的“AI Chain”?

@OdailyChina @wenser 2010 屬於加密貨幣的曲折而又壯闊的 2024 年即將...

星球日報
3 2小時前

Matrixport市場觀察:BTC年末盤整,加密市場亟待催化劑

經過連續四周上攻,BTC 價格自 17 日觸達 $ 108, 353 的歷史高點後突現跳水行情,...

星球日報
2 2小時前

LBank Research:數據分析Cardano快速增長背後的驅動力

前言 自 2017 年啓動以來,Cardano(ADA)已成長為一個旨在推動區塊鏈技術極限的 Po...

星球日報
2 2小時前