原文標題:《Different types of layer 2s》
撰文:Vitalik Buterin
編譯:BlockBeats
生態系統在過去一年中迅速擴展。傳統上以StarkNet、Arbitrum、Optimism 和Scroll 為代表的ZK-EVM rollup 生態系統進展迅速,不斷提高其安全性,L2beat 頁面很好地總結了每個專案的狀態。
此外,我們也看到一些團隊正在建立側鏈,同時也開始建立rollup 方案(如Polygon),有些L1 專案試圖朝著有效性驗證方向發展(如Celo),還有全新的嘗試(如Linea、Zeth …)。
其中不可避免的結果之一是,我們看到L2 項目趨向更加heterogeneous(即「異構化」。譯者註:在加密領域,「異構化」指的是不同種類或不同性質的事物共存或混合在一起的情況。這個詞通常用於描述不同的區塊鏈、協議、技術或資產,它們具有不同的特性、規則或屬性)。我預期這一趨勢將持續下去,原因如下:
目前,一些獨立的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 之間的一個spectrum 上。但是,是什麼促使應用程式選擇該spectrum 上的特定點,而不是更左邊或更右邊的某個點呢?在這裡,有兩個主要因素:
1. 以太坊原生資料可用性的成本,隨著技術的發展,此成本將隨著時間的推移而降低。以太坊的下一個硬分叉Dencun 引入了EIP-4844( 又稱“proto-danksharding”),它提供了大約32 kB/ 秒的鏈上資料可用性。
預計在未來幾年,隨著完整的danksharding 推出,這項數據可用性將逐步提高,最終目標約為1.3 MB/ 秒的數據可用性。同時,資料壓縮的改進將讓我們在相同資料量下實現更多功能。
2. 應用程式的自身需求:使用者在高費用方面的損失,相對於應用程式出現問題,有多嚴重?金融應用程式會因為應用程式的故障而損失更多;遊戲和社交媒體涉及大量的用戶活動,且相對較低價值的活動,因此對於它們來說,不同的安全權衡是有意義的。
這種權衡大致上看起來如圖所示:
另一種值得一提的類型是預先確認(pre-confirmations)。預先確認是由一組參與者在rollup 或validium 中簽署的訊息,表示「我們證明這些交易按此順序包含在其中,而post-state root 是這個」。這些參與者可能會簽署一個與現實不符的預先確認,但如果確實如此,他們的押金將被銷毀。
這對於低價值應用(如消費者支付)非常有用,而高價值應用(如數百萬美元的金融轉帳)可能會等待由系統完整安全性支援的「常規」確認。
預先確認可以被視為另一個混合系統的例子,類似於上文提到的“plasma/validium 混合”,但這次是在具有完整安全性但高延遲的rollup(或validium)與具有較低安全級別但低延遲的系統之間進行混合。需要較低延遲的應用會獲得較低的安全性,但可以與那些願意為獲得最大安全性而承受較高延遲的應用共存於同一生態系統中。
無需信任地讀取以太坊
另一種較少被考慮但仍然非常重要的連接形式,與系統讀取以太坊區塊鏈的能力有關。具體而言,這包括系統能夠在以太坊發生回滾時進行回滾的能力。要了解為什麼這是有價值的,請考慮以下情況:
假設如圖所示,以太坊區塊鏈發生回溯。這可能是在一個紀元內的臨時中斷,此時區塊鏈尚未最終確定;或者可能是因為過多的驗證者離線,而導致區塊鏈在較長時間內無法最終確定的非活動洩漏期。
由此可能產生的最糟糕情況如下所示:假設頂部鏈(top chain)的第一個區塊從以太坊鏈的最左側區塊中讀取某些資料。例如,有人在以太坊上存入了100 個ETH 到頂部鏈中。然後以太坊發生回滾,然而頂部鏈沒有回滾。結果是,頂部鏈的未來區塊正確地跟隨新的、正確的以太坊區塊鏈上的區塊,但錯誤的交易(即100 個ETH 的存款)仍然存在於頂部鏈中。這種漏洞可能導致貨幣的增發,將頂部鏈上的橋接ETH 轉變為部分準備金。
有兩種方法可以解決這個問題:
1. 頂部鏈只能讀取以太坊已最終確定的區塊,因此它永遠不需要進行回滾;
2. 如果以太坊發生回滾,頂部鏈也可能發生回滾。兩者都可以防止這個問題。前者更容易實施,但如果以太坊進入非活動洩漏期,可能會導致功能在較長時間內喪失。後者更難實施,但可以確保始終具有最佳功能。
請注意,第一種方法確實存在一種特殊情況。如果以太坊發生了51% 攻擊,導致同時出現兩個新的不相容區塊,它們都看起來已經最終確定,那麼頂部鏈可能會選擇錯誤的區塊(即以太坊社會共識最終不支持的區區塊),並且需要回滾以切換到正確的區塊。可以說,事先編寫程式碼來處理這種情況是沒有必要的;可以透過對頂部鏈進行硬分叉來處理這個問題。
區塊鏈能夠在無需信任的情況下讀取以太坊的能力有兩個重要原因:
首先,這種能力可以降低將在以太坊(或其他第二層解決方案)上發行的代幣橋接到該鏈上涉及的安全問題;
其次,這種能力使得使用共享金鑰儲存結構的帳戶抽象錢包,能夠安全地持有該鏈上的資產。
儘管有爭議,但第一種方法的重要性已被廣泛認可。同樣,第二種方法也很重要,因為它意味著你可以擁有一個錢包,可以輕鬆更改金鑰,並在許多不同的鏈上持有資產。
擁有橋接器是否能成為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% 攻擊和硬分叉等邊緣情境時的社會承諾程度來衡量。
在這個設計空間的許多區域中都存在著專案的價值。對於某些應用程序,高度的安全性和緊密的連接至關重要。對於其他應用程序,為了獲得更大的可擴展性,可以接受更寬鬆的條件。在許多情況下,從今天開始使用較寬鬆的條件,隨著技術的改進,在未來十年逐漸過渡到更緊密的耦合可能是最佳選擇。