Vitalik 遺漏了 Arbitrum 和 Redstone 的「數(shù)據(jù)可用性挑戰(zhàn)」,這東西堪稱 Celestia 殺手。
撰文:Faust,極客 web3
2024 年 1 月 16 日,在一條由以太坊 Layer2 項(xiàng)目 Taiko 創(chuàng)始人 DanielWang 發(fā)起,與 AA 錢包 Soul Wallet 創(chuàng)始人曾嘉俊互動(dòng)的推文下,Vitalik 說(shuō):「Rollup 的關(guān)鍵在于無(wú)條件的安全保障:即使你被所有人針對(duì),你依然能將資產(chǎn)取走。如果 DA 依賴于外部系統(tǒng)(以太坊之外),就無(wú)法做到這一點(diǎn)?!?/strong>
逃生艙:Viatlik 口中的「無(wú)需條件的安全提款」
由于 Vitalik 在這條推文的后半段談到了自己對(duì) Validium 的看法(Validium 是指不用以太坊實(shí)現(xiàn) DA 數(shù)據(jù)發(fā)布的 ZK 二層),所以得到了很多人的關(guān)注(此前坊間盛傳,以太坊基金會(huì)認(rèn)為 Layer2=Rollup)。
(需要強(qiáng)調(diào):以太坊社區(qū)談?wù)摰?DA 概念,指的是你能否獲取到 Layer2 新產(chǎn)生的數(shù)據(jù),不是說(shuō)你能否檢索到很久前的歷史數(shù)據(jù)。如果不在以太坊鏈上發(fā)布新數(shù)據(jù),Layer2 節(jié)點(diǎn)可能無(wú)法順利解析出最新的 L2 區(qū)塊)
但「以太坊 Layer2 定義之爭(zhēng)」及「DA War」早已被無(wú)數(shù)人聽聞,本文不打算對(duì)此類話題作出任何探討,旨在將更多精力聚焦在 Vitalik 發(fā)言的前半段,也就是本文開頭涉及的那番話。
Vitalik 在此表明,Rollup 能夠?qū)崿F(xiàn)去信任化的抗審查提款,即便所有的 Layer2 節(jié)點(diǎn)不配合你,你也能夠把自己的資產(chǎn)撤離 Layer2;而且,他指出,只有 rollup 能實(shí)現(xiàn)這種「無(wú)條件的安全提款」,而依賴于其他 DA 數(shù)據(jù)發(fā)布方式的 Layer2,都不能這么做。
但實(shí)際上,Vitalik 的這番話并不嚴(yán)謹(jǐn)。
首先,只有 Layer1 橋接到 Layer2 的資產(chǎn)才可以跨回到 ETH 鏈上,單純的 Layer2 原生資產(chǎn)無(wú)法跨到 Layer1(除非 Layer2 原生資產(chǎn)在 Layer1 上部署了橋接資產(chǎn)合約)。?
如果像 Vitalik 說(shuō)的那樣,「所有人都針對(duì)你」,你最多可以把 L1-L2 橋接資產(chǎn)提走,但無(wú)法把自己的「Layer2 原生 Token」提走,此時(shí)無(wú)論是走普通的 withdraw,還是走 forced withdraw,或是走 Escape Hatch,都沒用。
其次,「無(wú)需條件的安全提款」不是非要依賴于 DA 系統(tǒng)。Rollup 之前的早期 Layer2 方案、在以太坊鏈下實(shí)現(xiàn) DA 數(shù)據(jù)發(fā)布的 Plasma,DA 系統(tǒng)故障時(shí)(就是指數(shù)據(jù)扣留發(fā)生,除了排序器 / 委員會(huì)之外,其他人無(wú)法收到新的交易數(shù)據(jù) / 狀態(tài)轉(zhuǎn)換信息),一樣允許用戶通過(guò)歷史數(shù)據(jù)來(lái)提交資產(chǎn)證明,安全逃離 Layer2。
換言之,Plasma 的安全提款對(duì) DA 系統(tǒng)沒有依賴,抗審查提款也不是非要對(duì) DA 系統(tǒng)有依賴(但要保證歷史數(shù)據(jù)可獲?。粵r且,這番話是以太坊基金會(huì)的 Dankrad(Danksharding 提出者)親口說(shuō)的,同時(shí)也是放之四海皆公理的。
參考極客 Web3 過(guò)往文章:《數(shù)據(jù)扣留與欺詐證明:Plasma 不支持智能合約的原因》
其次,拋開 Celestia 及 Blobstream 不說(shuō),數(shù)據(jù)扣留 /DA 故障問題,就算不用 ETH 作為 DA 層,也可以解決。單說(shuō) Arbitrum 團(tuán)隊(duì)與 Redstone 團(tuán)隊(duì)正在實(shí)現(xiàn)的「數(shù)據(jù)可用性挑戰(zhàn)」,允許排序器只在鏈上發(fā)布一個(gè) DA Commitment(其實(shí)就是 datahash),聲明已經(jīng)在鏈下發(fā)布數(shù)據(jù)。如果有人無(wú)法在鏈下獲取到新產(chǎn)生的數(shù)據(jù),則可以針對(duì)鏈上的 DA Commitment 發(fā)起挑戰(zhàn),要求排序器將數(shù)據(jù)披露到鏈上。
這種機(jī)制設(shè)計(jì)很簡(jiǎn)潔,而且不需要依賴于 Celestia、Avail 或 EigenDA 等第三方 DA,只需要 Layer2 項(xiàng)目方自己設(shè)置鏈下 DAC 節(jié)點(diǎn)即可,堪稱 Celestia 殺手。
下文中,作者打算對(duì) Vitalik 口中的「無(wú)需條件的安全提款」和他所沒有提及的「數(shù)據(jù)可用性挑戰(zhàn)」進(jìn)行解讀,嘗試告訴大家:為何 Celestia 和 Avail、EigenDA 等第三方 DA 項(xiàng)目,不是 DA offchain 且追求安全性的 Layer2 的必選項(xiàng)?
此外,我們之前曾在闡述「比特幣 Layer2 風(fēng)險(xiǎn)評(píng)估指標(biāo)」的文章中,談到抗審查提款比 DA 系統(tǒng)更基礎(chǔ)、更關(guān)鍵,今天這篇文章也將就這個(gè)觀點(diǎn)做出進(jìn)一步解釋。
其實(shí),Vitalik 的這番話不難推敲,是在談?wù)?ZK Rollup 的逃生艙。逃生艙又名 Escape Hatch,是一種在 Layer1 上直接觸發(fā)的提款模式。該模式一旦被觸發(fā),Rollup 合約將進(jìn)入凍結(jié)狀態(tài),拒收 Sequencer 提交的新數(shù)據(jù),并允許任何人出示 Merkle Proof,證明自己在 Layer2 上的資產(chǎn)余額,將屬于自己的資產(chǎn)從 Layer2 官方橋存款地址中轉(zhuǎn)走。
更進(jìn)一步說(shuō),逃生艙模式是在用戶交易遭到 Layer2 排序器長(zhǎng)時(shí)間的拒絕后,可以由當(dāng)事人在 Layer1 上手動(dòng)觸發(fā)的「去信任化提款機(jī)制」。
不過(guò),在激活逃生艙模式前,被排序器拒絕的用戶,要先調(diào)用 Layer1 上 Rollup 合約中的強(qiáng)制提款函數(shù),發(fā)起強(qiáng)制提款請(qǐng)求,并拋出一個(gè)事件讓 Layer2 節(jié)點(diǎn)知曉:有人發(fā)起了強(qiáng)制提款請(qǐng)求。
由于 Layer2 節(jié)點(diǎn)都會(huì)運(yùn)行以太坊 geth 客戶端,會(huì)接收到以太坊區(qū)塊,所以能夠監(jiān)聽到強(qiáng)制提款事件的觸發(fā)
如果強(qiáng)制提款請(qǐng)求被長(zhǎng)時(shí)間無(wú)視,用戶就可以主動(dòng)觸發(fā)逃生艙模式(路印協(xié)議默認(rèn)這個(gè)等待期為 15 天,StarkEx 方案是 7 天)。然后,其操作流程就如同本文開篇所談,用戶提交對(duì)應(yīng)自己資產(chǎn)的 Merkle Proof,證明自己在 Layer2 的資產(chǎn)狀況,然后從 Rollup 相關(guān)合約中把資產(chǎn)提走。
但要構(gòu)造 Merkle Proof,需要先獲知完整的 L2 狀態(tài),要找一個(gè) L2 全節(jié)點(diǎn)索要數(shù)據(jù)。如果 Vitalik 所說(shuō)的那種極端情況發(fā)生,沒有 Layer2 節(jié)點(diǎn)配合你,你可以自己?jiǎn)?dòng)一個(gè) Layer2 全節(jié)點(diǎn),通過(guò)以太坊網(wǎng)絡(luò),獲取 L2 排序器發(fā)布到以太坊上的歷史數(shù)據(jù),從 Layer2 創(chuàng)世區(qū)塊開始一個(gè)個(gè)同步,直到算出最后的狀態(tài),構(gòu)造出 Merkle Proof,就可以通過(guò)逃生艙來(lái)安全提款。
顯然,這時(shí)的「抗審查性」,與以太坊 /Layer1 本身等價(jià)。只要有以太坊全節(jié)點(diǎn)提供很久前的歷史數(shù)據(jù)給你就行,接近于去信任化。
但 EIP-4844 后,以太坊全節(jié)點(diǎn)會(huì)自動(dòng)丟掉部分歷史數(shù)據(jù),使得 Layer2 超 18 天的歷史數(shù)據(jù)不再被 ETH 節(jié)點(diǎn)全網(wǎng)備份,屆時(shí)逃生艙提款的抗審查性,將不再像今天這樣接近于 Trustless。
4844 后,我們需要信任,數(shù)量較為有限的、存儲(chǔ)了全部歷史數(shù)據(jù)的以太坊節(jié)點(diǎn),愿意提供數(shù)據(jù)給你(Layer2 原生的節(jié)點(diǎn)往往很少,暫且不考慮進(jìn)來(lái))。屆時(shí),Layer1 歷史數(shù)據(jù)可檢索 /Layer2 逃生艙提款的信任假設(shè),將從今天的 Trustless 或 0,變?yōu)?1/N,即假設(shè) N 個(gè)節(jié)點(diǎn)中能有 1 個(gè)為你提供數(shù)據(jù)。
EthStorage 團(tuán)隊(duì)似乎致力于將這個(gè) N 擴(kuò)大,激勵(lì)更多節(jié)點(diǎn)存儲(chǔ)很久前的歷史數(shù)據(jù)。如果 1/N 的分母足夠大,分?jǐn)?shù)還是接近于 0,接近于沒有引入信任假設(shè)。這或許可以適當(dāng)解決 4844 后的歷史數(shù)據(jù)檢索問題。
逃生艙與 DA 的關(guān)系——Validium 的勒索攻擊
在這里我們?cè)俣雀爬ㄏ拢?strong>逃生艙就是讓你通過(guò) Merkle Proof,證明自己的 Layer2 資產(chǎn)狀況,在 Layer1 上去信任的提款。
而 Vitalik 之所以提到,提款涉及的資產(chǎn)安全需要有 DA 作為前提,主要是指 Validium 方案可以因「數(shù)據(jù)扣留攻擊」而無(wú)法提款。(只發(fā)布 stateroot,不發(fā)布對(duì)應(yīng)的交易數(shù)據(jù))。
具體原理是:排序器可能扣住交易數(shù)據(jù)不放,只向以太坊鏈上發(fā)布一個(gè) Merkle Root(Stateroot),然后通過(guò)有效性證明,設(shè)法讓新的 Stateroot 通過(guò)驗(yàn)證,成為當(dāng)前的合法 Stateroot。
這時(shí)候,大家不知道合法 Stateroot 對(duì)應(yīng)的完整狀態(tài),無(wú)法構(gòu)造出對(duì)應(yīng)的 Merkle Proof 來(lái)發(fā)動(dòng)逃生艙提款。除非排序器愿意釋放數(shù)據(jù)給你,你才能提款,這被 Arbitrum 的某位技術(shù)負(fù)責(zé)人形象的稱為「贖金問題」(我個(gè)人更喜歡稱之為勒索攻擊)。
但 DA 在鏈下的 Validium,之所以容易出現(xiàn)「勒索攻擊」,是因?yàn)樗约旱臋C(jī)制設(shè)計(jì)不夠完善,如果引入和提款行為相關(guān)的挑戰(zhàn)機(jī)制,或者引入數(shù)據(jù)可用性挑戰(zhàn),理論上可以解決勒索攻擊問題。
By the way,前文曾提到,允許用戶通過(guò)很久前的歷史數(shù)據(jù)來(lái)提款的Plasma,就不會(huì)出現(xiàn) Validium 這樣的「勒索攻擊」,而 Plasma 也是 DA 在鏈下的(鏈下 DA+ 鏈上驗(yàn)證欺詐證明)。
參考資料:數(shù)據(jù)扣留與欺詐證明:Plasma 不支持智能合約的原因
所以說(shuō),抗審查提款 / 逃生艙并不是非要依賴于 DA,一切取決于提款流程的機(jī)制設(shè)計(jì)。Vitalik 之所以認(rèn)為,抗審查提款與 DA 綁定,是因?yàn)樗窍热霝橹鞯膹?Validium、智能合約型 Rollup 等既有方案出發(fā),腦海中已經(jīng)存在了一種思維定式。
但這不代表天底下所有 DA offchain 的 Layer2 都面臨和 Validium 一樣的問題,不代表智能合約型 Rollup 就是一切的終點(diǎn),創(chuàng)新隨時(shí)都可能發(fā)生(比如后文提到的數(shù)據(jù)可用性挑戰(zhàn))。
反過(guò)來(lái),如果你的 Layer2 方案從一開始就不考慮有逃生艙、抗審查提款這類設(shè)計(jì),你的 Layer2 就肯定不夠去信任 / 安全。換言之,好的 DA 和證明系統(tǒng),是實(shí)現(xiàn)抗審查提款的充分條件,但不是必要條件。
所以我們此前的文章中,提到 Layer2 木桶效應(yīng)中,抗審查提款是比 DA 和證明系統(tǒng)更基礎(chǔ)的短板,是有理由的。
參考資料:《用木桶理論拆解比特幣 / 以太坊 Layer2 安全模型與風(fēng)險(xiǎn)指標(biāo)》
Celestia 殺手:Arbitrum 和 Redstone 的數(shù)據(jù)可用性挑戰(zhàn)
說(shuō)完了逃生艙與 DA 的關(guān)系,我們?cè)賮?lái)回看 DA 本身:Layer2 也不是非要把 DA 數(shù)據(jù)發(fā)布到以太坊上,才能避免排序器搞「數(shù)據(jù)扣留」。
Redstone 和 Arbitrum、Metis 等都在研發(fā)「數(shù)據(jù)可用性挑戰(zhàn)」機(jī)制,允許排序器只在鏈上發(fā)布 DA Commitment(datahash)+Stateroot,聲明已經(jīng)在鏈下發(fā)布狀態(tài)轉(zhuǎn)換參數(shù)(交易數(shù)據(jù))。如果有人無(wú)法在鏈下獲取到新產(chǎn)生的數(shù)據(jù),則可以針對(duì)鏈上的 DA Commitment 發(fā)起挑戰(zhàn),要求排序器將數(shù)據(jù)披露到鏈上。
如果排序器被挑戰(zhàn)后,沒有及時(shí)在 ETH 鏈上發(fā)布數(shù)據(jù),則它之前發(fā)布的 datahash/commitment 會(huì)被視為無(wú)效,關(guān)聯(lián)在一起的 stateroot 也會(huì)無(wú)效。顯然,這直接解決了數(shù)據(jù)扣留問題(只發(fā)布 stateroot,不發(fā)布對(duì)應(yīng)的交易數(shù)據(jù))。
顯而易見,這比起 Validium 和 Optimium 這類 DA offchain 的 Layer2,多出了一個(gè)「數(shù)據(jù)可用性挑戰(zhàn)」。但這么一個(gè)簡(jiǎn)單的設(shè)計(jì),就足以對(duì) Celestia 和 Avail、EigenDA 等造成有力競(jìng)爭(zhēng)。自己設(shè)置一個(gè) DAC,引入數(shù)據(jù)可用性挑戰(zhàn),則不需要再依賴于 Celestia。
但相對(duì)的,數(shù)據(jù)可用性挑戰(zhàn)也有需要解決的經(jīng)濟(jì)問題。ZkSync 創(chuàng)始人在和 Arbitrum 技術(shù)負(fù)責(zé)人 battle 時(shí)指出,數(shù)據(jù)可用性挑戰(zhàn)在理論上容易遭到 Dos 攻擊。比如,排序器快速在鏈上發(fā)布數(shù)千個(gè) DA commitment,然后扣住對(duì)應(yīng)的完整數(shù)據(jù)不發(fā)布。它可以通過(guò)這種方式耗盡所有挑戰(zhàn)者的資金,然后發(fā)布一個(gè)無(wú)效區(qū)塊,盜取用戶資產(chǎn)。
當(dāng)然,這種假設(shè)過(guò)于極端,本質(zhì)是一個(gè)攻守雙方的博弈論問題,并且實(shí)際上,排序器更容易被惡意挑戰(zhàn)者 dos 攻擊,遭到連續(xù)挑戰(zhàn)后退化為 Rollup。圍繞著數(shù)據(jù)可用性挑戰(zhàn)的攻守雙方之間的博弈情形,其實(shí)非常有趣,對(duì)應(yīng)的機(jī)制設(shè)計(jì)也會(huì)充分考驗(yàn) Arbitrum 和 Redstone 以及 Metis 項(xiàng)目方的智慧(這個(gè)話題可以單獨(dú)成文了)。
但無(wú)論如何,數(shù)據(jù)可用性挑戰(zhàn)都將為 Layer2 的 DA 方案設(shè)計(jì)帶來(lái)更多的創(chuàng)新,這種方案也將在比特幣 Layer2 生態(tài)畫上濃墨重彩的一筆。