「教皇維塔林克一世」重新定義L2
原文作者 | Vitalik.eth
編譯 | Odaily 星球日報 0xAyA
特別感謝 Karl Floersch 的反饋和審查
以太坊 Layer 2 生態系統在過去一年中一直在迅速擴張。以 StarkNet、 Arbitrum 、 Optimism 和 Scroll 為代表的 ZK-EVM Rollup 生態系統,在提升安全性方面取得了巨大進展, L2beat 頁面對每個項目的狀態進行了很好的總結。此外,我們還看到一些構建側鏈的團隊也开始構建 Rollup ( Polygon ), 一些 Layer 1 項目試圖向有效性驗證(Validium)遷移( Celo )以及作出新的努力( Linea 、Zeth 等)。
結果就是,Layer 2 項目出現更加異構的趨勢。 我預計這一趨勢將持續下去,原因如下:
-
一些目前獨立的 Layer 1 項目正在尋求更接近以太坊生態系統 , 並可能成為 Layer 2 。 這些項目可能需要逐步過渡。倘若在現在就進行轉換會導致可用性下降,因為技術還沒有准備好將所有內容放在 Rollup 上;但過晚轉換則可能會犧牲發展動能,而且為時已晚,沒有任何意義。
-
一些中心化項目希望為用戶提供更多的安全保證,並正在探索基於區塊鏈的途徑。 在很多情況下,這些項目在此前可能會探索“許可聯盟鏈”(permissioned consortium chains)。實際上,他們可能只需要一個“中間層”級別的去中心化。此外,它們通常具有非常高的吞吐量,使它們甚至不適合 Rollup,至少短期內是這樣。
-
非金融應用程序,如遊戲或社交媒體,希望去中心化,但只需要一種“中間層”的安全性。 比如社交媒體,實際上涉及對應用程序的不同部分進行不同處理:像用戶名注冊和账戶恢復這樣的低頻且高價值的活動,應該在 Rollup 上進行;像發布帖子和投票這樣高頻且低價值的活動,則需要較低的安全性。如果因為鏈的故障導致你的帖子消失,那是可以接受的代價;但如果鏈的故障導致你失去账戶,那就是一個很大的問題。
一個重要的問題是,對目前以太坊 Layer 1 的應用程序和用戶來說,在 短期內支付較小但仍可見的 Rollup 費用是可以接受的,但對區塊鏈世界以外的用戶來說不會接受:如果你之前支付的費用是 1 美元,那么支付 0.10 美元是更容易接受的;但如果你之前支付的費用是 0 美元,那么支付 0.10 美元是難以接受的。這既適用於當前中心化的應用程序,也適用於較小的 Layer 1 ,這些項目通常在其用戶基數較小的情況下確實具有非常低的費用。
由此產生的問題是:對於一個特定的應用程序,在 Rollup、Validium 和其他系統之間進行的這些復雜權衡中,哪種方案是合理的?
Rollups、Validiums、Disconnected
我們將探討的安全性與規模的第一個維度可以描述如下: 如果你擁有在 Layer 1 上發行的資產,然後將其存入 Layer 2 ,然後轉移到你的账戶,那么你能否確保可以將該資產取回 Layer 1 ?
同時還有一個類似的問題: 導致這種保證的技術選擇是什么,並且這種技術選擇背後的權衡又是什么?
我們可以簡單地使用一個表格來描述這個問題:
值得一提的是, 這是一個簡化的架構,並且有很多中間項可選 。例如:
-
介於 Rollup 和 Validium 之間:一種 Validium 可以讓任何人進行鏈上支付以支付交易費用,此時操作者將被迫提供一些數據到鏈上,否則將失去押金。
-
介於 Plasma 和 Validium 之間:Plasma 系統提供類似 Rollup 的安全性保證和鏈外數據可用性(Data availability,簡稱 DA),但只支持有限數量的應用。一個系統可以提供完整的 EVM ,並向不使用那些更復雜應用的用戶提供 Plasma 級別的保證,向使用這些應用的用戶提供 Validium 級別的保證。
這些中間選項可以被看作是在 Rollup 和 Validium 之間的一個技術光譜。但是是什么促使應用程序選擇譜系上的某個特定點,而不是極左或極右呢?這裏有兩個主要因素:
-
以太坊本身的數據可用性成本將隨着技術的改進而逐漸降低 。以太坊的下一個硬分叉,Dencun,引入了 EIP-4844 (也稱為"proto-danksharding"),提供約 32 kB/sec 的鏈上 DA。在接下來的幾年裏,隨着完整的 danksharding 推出,這個數字預計會逐步增加,最終達成約為 1.3 MB/sec 的 DA 目標。同時,數據壓縮的改進,將使我們能夠在相同數量的數據上做更多的事情。
-
應用程序自身的需求:相對於應用程序出現問題,用戶因高費用而遭受的損失有多大? 金融應用程序會因應用程序故障而損失更多;遊戲和社交媒體涉及每個用戶大量的活動,且活動價值相對較低,因此對於它們來說,安全性的權衡是不同的。
這個權衡大致上看起來是這樣的:
另一種值得一提的部分保證是 預確認 (pre-confirmations) 。預確認是由 Rollup 或 Validium 中的一些參與者籤署的消息,它們表示“我們證明這些交易包含在此次順序中,並且 the post-state root 就是這個”。這些參與者可能會籤署一個與後來的實際情況不符的預確認;但如果他們這樣做,就會燒掉一筆押金。這對於低價值的應用程序(如消費支付)非常有用,而像數百萬美元的金融轉账這樣的高價值應用程序可能會等待系統的完全安全性支持的“常規”確認。
預確認可以被看作是另一個混合系統的例子,類似於上面提到的“Plasma/Validium 混合系統”,但這次是在具有完全安全性但延遲較高的 Rollup(或 Validium)和具有較低安全級別但延遲較低的系統之間進行混合。需要較低延遲的應用程序獲得較低的安全性,但可以與需要較高延遲以換取最大安全性的應用程序共存於同一生態系統中。
無許信任地讀取以太坊
另一種較少考慮但仍然非常重要的連接形式與 系統讀取以太坊區塊鏈的能力有關。 特別是,這包括能夠在以太坊需要回滾時進行回滾。要了解為什么這很有價值,請考慮以下情況:
假設,如圖所示,以太坊鏈發生回滾。這可能是在一個 epoch 內暫時的故障,鏈沒有最終確定,也可能是網絡驗證着不活躍,太多的驗證者離线 而導致鏈在一個較長時間內沒有最終確定。
這可能導致的最糟糕情況如下。假設頂鏈(the top chain)的第一個區塊從以太坊鏈的最左邊的區塊中讀取了一些數據。例如,有人在以太坊上存入了 100 個 ETH 到頂鏈中。然後,以太坊發生回滾。然而,頂鏈沒有回滾。結果,頂鏈的未來區塊正確地遵循了新的正確的以太坊鏈的新區塊,但現在錯誤的舊鏈(即 100 個 ETH 的存款)的結果仍然存在於頂鏈中。這種漏洞可能允許制造貨幣,將頂鏈上的橋接 ETH 轉變為部分儲備。
有兩種方法可以解決這個問題:
-
頂鏈可以只讀取已經最終確定的以太坊區塊,這樣就不需要進行回滾操作。
-
如果以太坊發生回滾,頂鏈也可以進行回滾。
兩者都可以防止此問題發生。前者更容易實現,但如果以太坊進入不活躍期,可能會導致長時間喪失功能。後者更難實現,但始終確保最佳的功能。
需要注意的是,第一種方法(1)存在一種特殊情況。如果 51% 攻擊在以太坊上創建了兩個不兼容的區塊,並且兩個區塊同時出現最終確定狀態,那么頂鏈可能會選擇錯誤的區塊(即以太坊社區共識最終不支持的區塊),並且必須進行回滾以切換到正確的區塊。可以說,沒有必要提前編寫處理這種情況的代碼;它可以通過對頂 鏈進行硬分叉來處理這個問題。
鏈能夠無需許可地讀取以太坊上的數據非常有價值,原因如下:
-
減少將在以太坊(或其他 Layer 2)上發行的代幣跨鏈到該鏈上時涉及的安全問題。
-
允許使用共享密鑰存儲結構的账戶抽象錢包安全地在該鏈上持有資產。
第一個原因很重要,盡管這種重要性可能已經被廣泛認可;而第二個原因同樣重要,因為它意味着你可以擁有一個錢包,可以輕松更改密鑰,並在許多不同的鏈上持有資產。
擁有一座橋會可以讓鏈成為 Validium 嗎?
假設頂鏈开始時是一條單獨的鏈,然後有人將跨鏈合約放到以太坊上。跨鏈合約只是一個合約,它接受頂鏈的區塊頭,驗證提交給它的任何頭都帶有一個有效的證書,表明它被頂鏈的共識所接受,並將該頭添加到列表中。應用程序可以在此基礎上構建,以實現存入和提取代幣等功能。一旦這樣的橋梁到位,它是否提供了我們之前提到的任何資產安全保障?
到目前為止,還沒有!原因有兩個:
-
我們正在驗證塊是否 已籤名 ,但未驗證狀態轉換是 否正確 。因此,如果你在以太坊上發行的資產存入了頂鏈,而頂鏈的驗證者耍流氓,他們可以籤署一個無效的狀態轉換,竊取這些資產。
-
頂鏈仍然沒有辦法讀取以太坊數據。因此,如果不依賴其他(可能不安全的)第三方橋,您甚至無法將以太坊原生資產存入頂鏈。
現在,讓我們讓這座橋成為驗證橋:它不僅檢查共識,還檢查一個 ZK-SNARK,證明任何新區塊的狀態都計算正確。
一旦完成,頂鏈的驗證者就無法再竊取您的資金。他們可以發布一個包含不可用數據的區塊,阻止所有人退出,但他們不能竊取(除非試圖為用戶提取贖金以換取泄露允許他們退出的數據)。這與 Validium 的安全模型相同。
但是,我們仍然沒有解決第二個問題:頂鏈無法讀取以太坊。
為此,我們需要做以下兩件事之一:
-
將驗證最終以太坊區塊的跨鏈合約放在頂鏈內。
-
讓頂鏈中的每個區塊都包含最近以太坊區塊的哈希值,並有一個強制執行哈希鏈接的分叉選擇規則。也就是說,鏈接到不在規範鏈中的以太坊區塊的頂鏈區塊本身是非規範的,如果頂鏈區塊鏈接到一個以太坊區塊,該區塊最初是規範的,但後來變成了非規範的,那么頂部鏈區塊也必須成為非規範的。
圖中紫色的鏈接可以是哈希鏈接,也可以是驗證以太坊共識的橋接合約。
這樣就足夠了嗎?事實證明,還不夠,因為存在一些小的特殊情況:
-
如果以太坊受到 51% 攻擊會怎樣?
-
如何處理以太坊硬分叉升級?
-
如何處理頂鏈的硬分叉升級?
以太坊的 51% 攻擊會產生與頂鏈的 51% 攻擊類似的後果,但方向相反 。以太坊的硬分叉可能使頂鏈內的以太坊橋接不再有效。對於這個問題,最幹淨的解決方式是承諾如果以太坊回滾了一個已最終確定的區塊,頂鏈也會回滾,並且如果以太坊進行硬分叉,頂鏈也會進行硬分叉。這樣的承諾可能永遠不需要真正執行:你可以在頂鏈上激活一個治理機制,如果它看到可能發生攻擊或硬分叉的證據,只有當治理機制失敗時才對頂鏈進行硬分叉。
對於問題(3),唯一可行的答案是,在以太坊上擁有某種形式的治理機制,可以使以太坊上的橋接合約意識到頂鏈的硬分叉升級。
總結:雙向驗證橋接幾乎足以使鏈成為 Validium。剩下的主要問題是,在以太坊發生異常情況導致橋接無法工作時,另一條鏈將進行硬分叉的社會承諾。
結論
“與以太坊的連接”有兩個關鍵維度:
-
提現到以太坊的安全性
-
讀取以太坊數據的安全性
這兩個維度都很重要,並且有不同的考慮因素。在這兩種情況下都存在一個譜系:
請注意,每個維度都有兩種不同的衡量方式(所以實際上有四個維度?):提取安全性可以通過(i)安全級別和(ii)從最高安全級別中獲益的用戶或用例的百分比來衡量,而讀取安全性可以通過(i)鏈路能夠快速讀取以太坊的區塊,特別是已經最終確定的區塊與任何區塊的區別,以及(ii)鏈路在處理 51% 攻擊和硬分叉等邊緣情況時的社會承諾的強度。
在這個設計空間中,有許多項目都具有價值。對於某些應用程序來說,高安全性和緊密的連接性很重要。對於其他應用程序來說,為了獲得更高的可擴展性,可以接受一些較為寬松的連接性。在許多情況下,從今天开始使用一些較為寬松的方法,並在未來十年隨着技術的改進逐漸過渡到更緊密的連接可能是最佳選擇。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。