Vitalik 博文:我對 L2s 多樣化趨勢的思考



作者 | Vitalik Buterin

英文鏈接:

https://vitalik.eth.limo/general/2023/10/31/l2types.html

中文鏈接:

https://www.theblockbeats.info/news/46888

附加引用:

https://twitter.com/tmel0211/status/1719587614351913138

注:本文是上述中文版本的基礎上進行節選編譯,可能有些細節或資訊被刪除。我們建議讀者在閱讀本文時同時參考原文,以獲取更全面的資訊。

生態系統在過去一年中迅速擴展。傳統上以 StarkNet、Arbitrum、Optimism 和 Scroll 為代表的 ZK-EVM Rollup 生態系統進展迅速,不斷提高其安全性,L2beat 網站很好地總結了每個專案的狀態。此外,我們還看到一些團隊正在構建側鏈,同時也開始構建 Rollup 方案(如 Polygon),一些 L1 專案試圖往validiums 方向發展(如 Celo),還有全新的嘗試(如 Linea、Zeth 等)。最後,還有圍繞 EVM做文章的這類 L2生態,如:“近乎 EVM 等效” 的 Zksync, Arbitrum Stylus 這類擴展插件,甚至更廣泛的嘗試如 Starknet 生態、Fuel 等。

一個不可避免的結果是,我們看到了 L2 專案變得更加異構的趨勢。我預計這一趨勢將持續下去,原因如下:

● 目前,一些獨立的 L1 專案正尋求更緊密地與以太坊生態系統對接,並有可能轉變為 L2 專案。這些專案可能希望採取分階段的過渡方式。立即進行整體過渡將降低可用性,因為技術尚未準備好將所有內容放入 rollup 方案中。如果在晚些時候進行轉型,可能會犧牲發展勢頭,而且太遲而失去意義。

● 一些中心化專案希望為其用戶提供更多的安全保障,並正在探索基於區塊鏈的途徑。在許多情況下,這些專案過去可能會研究「許可聯盟鏈」。實際上,它們可能只需要達到「半中心化」水準的程度。此外,它們通常具有非常高的吞吐量,至少在短期內不適合使用 rollup 方案。

● 非金融應用,如遊戲或社交媒體,希望去中心化,但只需要一定程度的安全性。以社交媒體應用為例,實際上涉及以不同方式處理應用的不同部分:像用戶名註冊和賬戶恢復這樣的罕見且具有高價值的活動應該在 rollup 方案中完成,但像帖子和投票這樣頻繁且低價值的活動需要較少的安全保障,如果區塊鏈失敗導致您的帖子消失,那是可以接受的代價;但如果區塊鏈失敗導致您丟失了您的帳戶,那將是一個更大的問題。

一個重要的主題是,儘管目前位於以太坊 L1 的應用和用戶在短期內願意支付較小但仍然明顯的 rollup 費用,但來自非區塊鏈世界的用戶不太願意這樣做:如果您之前支付了 1 美元,那麼支付 0.10 美元就更容易接受,而如果之前支付了 0 美元,那就難以接受。這適用於今天仍然中心化的應用,以及通常在其用戶群體較小的情況下擁有極低費用的較小的 L1 專案。

一個自然而然的問題是:對於具體的特定應用,rollup 方案、validiums(有效性驗證)和其他系統之間的這些複雜權衡中,哪一個對其而言是合理的?

Rollups vs Validiums vs Disconnected Systems

我們將探討的安全性與擴展性的第一個維度可以描述如下:如果您擁有一個在 L1 上發行的資產,然後將其存入 L2,再將其轉移到您手中,那麼您能獲得多大程度的保證可以將資產取回到 L1?

同時還有一個相關問題:是什麼技術選擇導致了這種保證程度,以及該技術選擇的權衡是什麼?

我們可以用一個簡單的圖表來描述這個問題:

值得一提的是,這是一個簡化的方案,其中存在許多中間選項。例如:

● 在 rollup 和 validium 之間:在 validium,任何人可以進行鏈上支付以支付交易費用,此時,操作者將被迫將一些數據提供到鏈上,否則將損失押金。

● 在 plasma 和 validium 之間:一個 Plasma 系統提供類似 rollup 的安全保證,具有鏈下數據可用性,但它僅支持有限數量的應用程式。一個系統可以提供完整的 EVM,並為那些不使用這些較複雜應用程式的用戶提供 Plasma 級別的保證,以及為使用這些應用程式的用戶提供 validium 級別的保證。

這些中間選項可以看作是在 rollup 和 validium 之間的一個可選範圍上。但是,是什麼促使應用選擇該可選範圍上的特定點,而不是更左邊或更右邊的某個點呢?在這裡,有兩個主要因素:

1.以太坊原生數據可用性的成本,隨著技術的發展,這一成本將隨著時間的推移而降低。以太坊的下一個硬分叉 Dencun 引入了 EIP-4844(又稱 「proto-danksharding」),它提供了大約 32 kB/秒的鏈上數據可用性。預計在未來幾年,隨著完整的 danksharding 推出,這一數據可用性將逐步提高,最終目標約為 1.3 MB/秒的數據可用性。同時,資料壓縮的改進將讓我們在相同數據量下實現更多功能。

2.應用程式的自身需求:用戶在高費用方面的損失,相對於應用程式出現問題,有多嚴重?金融應用程式會因為應用程式的故障而損失更多;遊戲和社交媒體涉及大量的用戶活動,且相對較低價值的活動,因此對於它們來說,不同的安全權衡是有意義的。

這種權衡大致上看起來如圖所示:

另一種值得一提的類型是預確認(pre-confirmations)。預確認是由一組參與者在 rollup 或 validium 中簽署的消息,表示「我們證明這些交易按此順序包含在其中,且 post-state root 是這個」。這些參與者可能會簽署一個與現實不符的預確認,但如果確實如此,他們的押金將被銷毀。

這對於低價值應用(如消費者支付)非常有用,而高價值應用(如數百萬美元的金融轉賬)可能會等待由系統完整安全性支持的「常規」確認。

預確認可以被視為另一個混合系統的例子,類似於上文提到的「plasma/validium 混合」,但這次是在具有完整安全性但高延遲的 rollup(或 validium)與具有較低安全級別但低延遲的系統之間進行混合。需要較低延遲的應用會獲得較低的安全性,但可以與那些願意為獲得最大安全性而承受較高延遲的應用共存於同一生態系統中。

無需信任地讀取以太坊

另一種較少被考慮但仍然非常重要的連接形式,與系統讀取以太坊區塊鏈的能力有關。具體而言,這包括系統能夠在以太坊發生回滾時進行回滾的能力。要了解為什麼這是有價值的,請考慮以下情況:

假設如圖所示,以太坊區塊鏈發生回滾。這可能是在一個epoch內的臨時中斷,此時區塊鏈尚未最終確定(finalized);或者可能是因為過多的驗證者離線,而導致區塊鏈在較長時間內無法最終確定的不活躍洩漏期(inactivity leak)。

由此可能產生的最糟糕情況如下所示:假設上圖中的頂部鏈的第一個區塊從以太坊鏈的最左側區塊中讀取某些數據。例如,有人在以太坊上存入了 100 個 ETH 到頂部鏈中,然後以太坊發生回滾,然而頂部鏈沒有回滾。結果是,頂部鏈的未來區塊正確地跟隨新的、正確的以太坊區塊鏈上的區塊,但錯誤的交易(即 100 個 ETH 的存款)仍然存在於頂部鏈中。這種漏洞可能導致貨幣的增發,將頂部鏈上的橋接 ETH 轉變為部分準備金。

有兩種方法可以解決這個問題:

1.頂部鏈只能讀取以太坊已最終確定的區塊,因此它永遠不需要進行回滾;

2.如果以太坊發生回滾,頂部鏈也可能發生回滾。兩者都可以防止這個問題。前者更容易實施,但如果以太坊進入不活躍洩漏期,可能會導致功能在較長時間內喪失。後者更難實施,但可以確保始終具有最佳功能。

請注意,第一種方法確實存在一種特殊情況。如果以太坊發生了 51% 攻擊,導致同時出現兩個新的不相容區塊,它們都看起來已經最終確定,那麼頂部鏈可能會選擇錯誤的區塊(即以太坊社會共識最終不支持的區塊),並且需要回滾以切換到正確的區塊。可以說,事先編寫代碼來處理這種情況是沒有必要的;可以通過對頂部鏈進行硬分叉來處理這個問題。

區塊鏈能夠在無需信任的情況下讀取以太坊的能力有兩個重要原因:

1.首先,這種能力可以降低將在以太坊(或其他第二層解決方案)上發行的代幣橋接到該鏈上涉及的安全問題;

2.其次,這種能力使得使用共享密鑰存儲結構的賬戶抽象錢包,能夠安全地持有該鏈上的資產。

儘管有爭議,但第一種方法的重要性已經被廣泛認可。同樣,第二種方法也很重要,因為它意味著你可以擁有一個錢包,可以輕鬆更改密鑰,並在許多不同的鏈上持有資產。

擁有跨鏈橋是否意味著你是有效性網路(validium)?

假設頂部鏈最初是作為一個獨立鏈啟動的,然後有人在以太坊上部署了一個橋接合約。橋接合約只是一個接受頂部鏈區塊頭(block headers)的合約,它會驗證提交給它的任何區塊頭是否附帶有效的證書,證明該區塊頭已被頂部鏈的共識接受,並將該區塊頭添加到列表中。

應用程式可以在此基礎上構建功能,如代幣的存款和提取。一旦這樣的橋建立起來,它是否提供了我們之前提到的任何資產安全保障呢?

到目前為止,還沒有!有兩個原因:

1.我們是有驗證區塊的簽名,但沒有驗證狀態轉換是否正確。因此,如果您將在以太坊上發行的資產存入頂部鏈,並且頂部鏈的驗證器變得不誠實,他們可以簽署一個無效的狀態轉換,從而竊取這些資產;

2.頂部鏈仍然無法讀取以太坊。因此,您無法將以太坊本地資產存入頂部鏈,除非依賴於其他(可能不安全)的第三方橋接。

現在,讓我們將橋構建為驗證型橋:它不僅驗證共識,還驗證了使用 ZK-SNARK 證明計算出的任何新區塊的狀態是否正確。

一旦完成這一步驟,頂部鏈的驗證器將無法竊取您的資金。他們可以發佈一個包含不可用數據的區塊,阻止所有人提取資金,但他們無法竊取資金(除非試圖通過向用戶索要贖金來揭示允許其提取資金的數據)。這與 validium 具有相同的安全模型。

然而,我們仍然沒有解決第二個問題:頂部鏈無法讀取以太坊的數據。為了實現這一點,我們需要採取以下兩種方式之一:

1.在頂部鏈中放置一個驗證已最終確定的以太坊區塊的橋合約;

2.讓頂部鏈中的每個區塊包含一個最近以太坊區塊的哈希,並制定一個分叉選擇規則來強制執行這些哈希鏈接。也就是說,如果頂部鏈的一個區塊鏈接到一個不在主鏈中的以太坊區塊,那麼該頂部鏈區塊也將被視為非主鏈的。如果一個頂部鏈區塊鏈接到了最初在主鏈上的以太坊區塊,但後來變成非主鏈區塊,那麼該頂部鏈區塊也必須被標記為非主鏈的。

這些紫色的鏈接可以是哈希鏈接,也可以是驗證以太坊共識的橋接合約

這就夠了嗎?實際上,還不夠,因為存在一些小的邊緣情況:

1.如果以太坊遭受了 51% 攻擊,會發生什麼?

2.如何處理以太坊的硬分叉升級?

3.如何處理您的鏈的硬分叉升級?

對以太坊的 51% 攻擊會導致與頂部鏈的 51% 攻擊類似的後果,但情況相反。以太坊的硬分叉可能會使頂部鏈內的以太坊橋失效。一個社會承諾(social commitment),即如果以太坊還原了一個已最終確定的區塊,就會還原,如果以太坊進行了硬分叉,就會進行硬分叉,是解決這個問題最乾淨的方式。

這樣的承諾實際上可能永遠不需要真正執行:如果頂部鏈的治理機構發現可能發生攻擊或硬分叉的證據,可以激活治理機構,僅在治理機構失敗時才對頂部鏈進行硬分叉。

對於第三個問題,唯一可行的答案是,在以太坊上設置某種形式的治理機構,使其能夠讓以太坊上的橋接合約意識到頂部鏈的硬分叉升級。

總結:雙向驗證橋接幾乎足以使區塊鏈成為 validium。主要剩下的要素是一種社會承諾,即如果以太坊發生異常情況導致橋接合約無法正常工作,另一條區塊鏈將進行硬分叉作出回應。

結論

「與以太坊連接」有兩個關鍵維度:

1.提取到以太坊的安全性;

2.讀取以太坊的安全性。

這兩者都非常重要,並有不同的考慮因素。在這兩種情況下都存在一個範疇:

請注意,每個維度都有兩種不同的衡量方式(實際上有四個維度):提取安全性可以通過(i)安全級別,和(ii)多少用戶或使用情況受益於最高安全級別來衡量。

而讀取安全性可以通過(i)其他區塊鏈網路能夠多快讀取以太坊的區塊,特別是最終確定的區塊與任何區塊的區別,以及(ii)其他區塊鏈網路在處理諸如 51% 攻擊和硬分叉等邊緣情況時的社會承諾程度來衡量。

在這個設計空間的許多區域中都存在專案的價值。對於某些應用程式,高度的安全性和緊密的連接至關重要。對於其他應用程式,為了獲得更大的可擴展性,可以接受更寬鬆的條件。在許多情況下,從今天開始使用較寬鬆的條件,隨著技術的改進,在未來十年內逐漸過渡到更緊密的耦合可能是最優選擇。

評論

針對 Vitalik 的此篇文章,推特用戶 @tmel0211 認為,Vitalik 此文明裡暗裡在給以太坊 L2 畫邊界和樹標準,併發表見解:

● 靠攏以太坊可以獲得生態同時,一部分過於中心化的專案接軌以太坊也能獲得共識安全性,因此以太坊 L2 成了眾星捧月般的存在。

● Plasma和Rollup以及Validium,都是 L2 擴容方案,各有優缺點。Rollup 要依賴以太坊做 DA 資產最安全,但成本比較大,Vailidum 放棄了 DA 的依賴,節省了成本,但是安全性受影響;Plasma 這類獨立鏈很便宜,但需第三方信任,無法依賴以太坊做安全和共識。針對這個問題, Vitalik 的觀點是 DA 成本問題只是暫時,坎昆升級和 danksharding 後這一問題會得到解決;而至於用哪種方案,應用應考慮自身特性,越偏金融和資產保護就應該偏 Rollup 類型的 L2,反之遊戲或者非金融應用就可以用 validium 以及獨立側鏈;擴容方案的類型適用範圍其實很清楚,但眼下卻清一色的 Rollup 解決方案,尤其是 OP Stack 放大了一鍵發鏈效應,但 L2 發鏈更應該根據應用場景適配鏈類型。

● 以太坊 layer2 有兩個關鍵性:1、提款到以太坊的安全性;2、讀取以太坊的安全性。提款安全性的核心無疑導向了 DA 在以太坊的 Rollup 解決方案,而長期來看,讀取以太坊的安全性,則指向一些有獨立安全和共識保障的 Validium 方案。按照這個標準,ZK-Rollup 的安全性最高,其次 OP-Rollup,之後才是 Validium、Plasma 這些。

 

聯系郵箱:0xniumao@gmail.com