作者:Vitalik,以太坊創辦人;翻譯:金色財經0xjs
以太坊L2生態系在過去一年迅速擴張。 ZK-EVM Rollup生態系統傳統上以StarkNet、Arbitrum、Optimism和Scroll為主,目前進展迅速,在提高安全性方面取得了長足進步;L2beat頁面很好地總結了每個專案的狀態。此外,我們也看到建構側鏈的團隊也開始建構rollups ( Polygon )、尋求成為validiums 的L1專案( Celo ) 以及全新的工作( Linea、Zeth …)。
其不可避免的後果之一是我們看到Layer 2計畫變得更加異質的趨勢。
我預期這種趨勢將持續下去,原因如下:
-
一些目前獨立的Layer 1的項目正在尋求更接近以太坊生態系統,並可能成為Layer 2。這些項目可能需要逐步過渡。現在一次性全部轉換會導致可用性下降,因為該技術尚未準備好將所有內容rollup起來。稍後一次性全部轉型可能會犧牲動力,而且為時已晚,沒有任何意義。
-
一些中心化專案希望給用戶更多的安全保證,並正在探索基於區塊鏈的路線。在很多情況下,這些項目在以前的時代都會探索「許可聯盟鏈」。實際上,他們可能只需要「妥協方案」(halfway-house)級別的去中心化。此外,它們通常具有非常高的吞吐量,因此甚至不適合rollup,至少在短期內是如此。
-
非金融應用程序,如遊戲或社交媒體,希望實現去中心化,但只需要中等程度的安全性。在社交媒體案例中,這實際上涉及以不同方式對待應用程式的不同部分:用戶名註冊和帳戶恢復等罕見且高價值的活動應在rollup上完成,但發布和投票等頻繁且低價值的活動則需要較低的安全性。如果鏈的故障導致你的貼文消失,這是可以接受的成本。如果鏈的故障導致你失去帳戶,那就是一個更大的問題。
一個重要主題是,雖然目前以太坊L1上的應用程式和用戶可以在短期內支付較小但仍然可見的Rollup費用,但來自非區塊鏈世界的用戶不會:如果你之前支付1美元,則更容易證明支付0.10 美元是合理的。但如果你之前支付0 美元,則會大不相同。這既適用於當今中心化的應用程序,也適用於較小的L1層,這些應用程式的費用通常非常低,而用戶群仍然很小。
一個自然出現的問題是:對於特定的應用程序,rollups、validiums和其他系統之間的複雜權衡中哪一個有意義?
Rollups、validiums、斷連繫統
我們要探討的安全性與擴展的第一個維度可以描述如下:如果你有一個在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中簽署的訊息,表示「我們證明這些交易包含在這個訂單中,而後狀態根就是這個」。這些參與者很可能會簽署與後來的實際情況不符的預確認,但如果他們這樣做,押金就會被燒毀。這對於消費者支付等低價值應用程式非常有用,而數百萬美元的金融轉帳等高價值應用程式可能會等待由系統完全安全性支援的「常規」確認。
預先確認可以被視為混合系統的另一個例子,類似於上面提到的“plasma/validium混合”,但這次是在具有完全安全性但高延遲的rollup(或validium)和具有安全級別低得多,延遲低。需要較低延遲的應用程式的安全性較低,但可以與可以接受較高延遲的應用程式生活在同一生態系統中,以換取最大的安全性。
無需信任地讀取以太坊
另一種較少被考慮但仍然非常重要的連接形式與系統讀取以太坊區塊鏈的能力有關。特別是,這包括在以太坊恢復時能夠恢復。要了解為什麼這是有價值的,請考慮以下情況:
假設如圖所示,以太坊鏈恢復。這可能是epoch內的暫時性問題,而鏈尚未最終確定,也可能是一個不活動漏洞( inactivity leak)期,其中鏈在較長時間內沒有最終確定,因為太多驗證者處於離線狀態。
由此可能出現的最壞情況如下。假設上面鏈的第一個區塊從以太坊鏈上最左邊的區塊讀取一些資料。例如,以太坊上有人將100 ETH 存入上面鏈。然後,以太坊恢復。然而,上面鏈不會恢復。因此,上面鏈的未來區塊正確地遵循來自新正確的以太坊鏈的新區塊,但現在錯誤的舊連結(即100 ETH 存款)的後果仍然是上面鏈的一部分。這種漏洞可以允許印鈔,將上面鏈上橋接的ETH 轉變為部分儲備。
有兩種方法可以解決這個問題:
1.上面鏈只能讀取以太坊的最終確定的區塊,因此它永遠不需要恢復。
2.如果以太坊恢復,上面鏈可能會恢復。兩者都可以防止這個問題。前者較容易實現,但如果以太坊進入不活動漏洞( inactivity leak)期,可能會導致長時間喪失功能。後者更難實現,但始終確保最佳的功能。
請注意,(1) 確實有一種邊緣情況。如果對以太坊的51% 攻擊創建了兩個新的不相容的區塊,並且這兩個區塊同時出現,那麼上面鏈很可能會鎖定錯誤的區塊(即以太坊社會共識最終不支持的區塊),並且會必須恢復以切換到正確的位置。可以說,沒有必要提前編寫程式碼來處理這種情況;它可以簡單地透過硬分叉上面鏈來處理。
一條鏈以無需許可方式讀取以太坊的能力很有價值,原因有兩個:
1、它減少了將以太坊(或其他L2)上發行的代幣橋接到該鏈所涉及的安全問題
2、它允許使用共享金鑰庫架構的帳戶抽象錢包安全地保存該鏈上的資產。
1很重要,儘管可以說這種需求已經被廣泛認可。 2也很重要,因為這意味著你可以擁有一個允許輕鬆更改密鑰並保存跨大量不同鏈的資產的錢包。
擁有一座橋會讓你成為valium嗎?
假設上面的鏈最初是一條單獨的鏈,然後有人在以太坊上放置了一個橋接合約。橋接合約只是一個接受上面鏈區塊頭的合約,驗證提交給它的任何區塊頭是否帶有有效證書,表明它已被上面鏈共識接受,並將該區塊頭添加到列表中。應用程式可以在此基礎上建立來實現諸如存入和提取代幣之類的功能。一旦這樣的橋樑就位,是否可以提供我們之前提到的任何資產安全保證?
到目前為止,還不能!有兩個原因:
1、我們正在驗證區塊是否已簽名,但不是狀態轉換是否正確。因此,如果你將在以太坊上發行的資產存入上面鏈,並且上面鏈的驗證者發生故障,他們可以簽署無效的狀態轉換來竊取這些資產。
2.上面鏈仍然沒有辦法讀取以太幣。因此,如果不依賴其他一些(可能不安全的)第三方橋,你甚至無法將以太坊原生資產存入上面鏈。
現在,讓我們將橋設為驗證橋:它不僅檢查共識,還檢查ZK-SNARK,證明任何新區塊的狀態都已正確計算。
完成此操作後,上面鏈的驗證者將無法再竊取你的資金。他們可以發布一個包含不可用資料的區塊,阻止所有人撤回,但他們無法竊取(除非試圖為用戶提取贖金,以換取允許他們撤回的資料)。這與validium 的安全模型相同。
然而,我們仍然沒有解決第二個問題:上面鏈無法讀取以太坊。
為此,我們需要執行以下兩件事之一:
1.在上面鏈中放置一個橋接合約來驗證最終確定的以太坊區塊。
2.讓上面鏈中的每個區塊都包含最近以太坊區塊的哈希值,並具有強制哈希連結的分叉選擇規則。也就是說,連結到不在規範鏈中的以太坊區塊的上面鏈區塊本身就是非規範的,如果上面鏈的區塊連結到最初是規範的以太坊區塊,但隨後變得非規範,上面鏈的區塊也必須變成非規範。
紫色鏈接可以是哈希鏈接,也可以是驗證以太坊共識的橋接合約。
這夠了嗎?事實證明,仍然不行,因為有一些小機率情況:
1.如果以太坊受到51%攻擊會發生什麼事?
2、如何處理以太坊硬分叉升級?
3、你如何處理鏈的硬分叉升級?
對以太坊的51% 攻擊與對上面鏈的51% 攻擊會產生類似的後果,但相反。以太坊的硬分叉可能會導致以太坊在頂上面鏈內的橋樑不再有效。如果以太坊恢復最終確定確定的區塊,則社會承諾恢復;如果以太坊硬分叉,則社會承諾進行硬分叉,是解決此問題的最乾淨的方法。這樣的承諾很可能永遠不需要實際執行:如果發現可能的攻擊或硬分叉的證據,你可以激活上面鏈上的治理小工具,並且只有在治理小工具失敗時才對上面鏈進行硬分叉。
不幸的是,對(3)的唯一可行答案是在以太坊上擁有某種形式的治理小工具,可以使以太坊上的橋接合約意識到頂鏈的硬分叉升級。
小結:雙向驗證橋幾乎足以使一條鏈成為validium。剩下的主要成分是社會承諾,如果以太坊發生異常情況導致橋樑不再工作,另一條鏈將硬分叉作為回應。
結論
「連結到以太坊」有兩個關鍵維度:
1.提現到以太坊的安全性
2、讀取以太坊的安全性
這些都很重要,並且有不同的考慮因素。兩種情況都有一個光譜:
請注意,這兩個維度都有兩種不同的衡量方法(所以真的有四個維度嗎?):提款的安全性可以透過(i) 安全等級和(ii) 受益於最高安全性的用戶或用例的百分比來衡量等級;讀取安全性可以透過以下指標來衡量:(i) 鏈讀取以太坊區塊的速度,特別是最終確定區塊與任何區塊的速度,以及(ii) 鏈處理邊緣情況(例如51% 攻擊和攻擊)的社會承諾的硬分叉強度。
該設計空間的許多區域的項目都具有價值。對於某些應用程序,高安全性和與以太坊的緊密連接性非常重要。對於其他人來說,為了獲得更大的可擴展性,更寬鬆的東西是可以接受的。在許多情況下,從今天較鬆散的耦合開始,並在未來十年隨著技術的進步轉向更緊密的耦合,很可能是最佳選擇。