「教皇維塔林克一世」重新定義L2

原文作者 | Vitalik.eth

編譯 | Odaily 星球日報 0xAyA

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-17bf55f5b7-dd1a6f-69ad2a.webp)

特別感謝 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 ? **

同時還有一個類似的問題:**導致這種保證的技術選擇是什麼,並且這種技術選擇背後的權衡又是什麼? **

我們可以簡單地使用一個表格來描述這個問題:

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-144dab5eab-dd1a6f-69ad2a.webp)

值得一提的是,這是一個簡化的架構,並且有很多中間項可選。 例如:

  • 介於 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 目標。 同時,數據壓縮的改進,將使我們能夠在相同數量的數據上做更多的事情。
  • **應用程式自身的需求:相對於應用程式出現問題,使用者因高費用而遭受的損失有多大? **金融應用程式會因應用程式故障而損失更多; 遊戲和社交媒體涉及每個使用者大量的活動,且活動價值相對較低,因此對於它們來說,安全性的權衡是不同的。

這個權衡大致上看起來是這樣的:

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-d6d63d0742-dd1a6f-69ad2a.webp)

另一種值得一提的部分保證是預確認 (pre-confirmations)。 預確認是由 Rollup 或 Validium 中的一些參與者簽署的消息,它們表示“我們證明這些交易包含在此次順序中,並且 the post-state root 就是這個”。 這些參與者可能會簽署一個與後來的實際情況不符的預確認; 但如果他們這樣做,就會燒掉一筆押金。 這對於低價值的應用程式(如消費支付)非常有用,而像數百萬美元的金融轉帳這樣的高價值應用程式可能會等待系統的完全安全性支援的「常規」確認。

預確認可以被看作是另一個混合系統的例子,類似於上面提到的“Plasma/Validium 混合系統”,但這次是在具有完全安全性但延遲較高的 Rollup(或 Validium)和具有較低安全級別但延遲較低的系統之間進行混合。 需要較低延遲的應用程式獲得較低的安全性,但可以與需要較高延遲以換取最大安全性的應用程式共存於同一生態系統中。

無許信任地讀取乙太坊

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

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-ccbb1fb3ee-dd1a6f-69ad2a.webp)

假設,如圖所示,乙太坊鏈發生回滾。 這可能是在一個 epoch 內暫時的故障,鏈沒有最終確定,也可能是網路驗證著不活躍,太多的驗證者離線而導致鏈在一個較長時間內沒有最終確定。

這可能導致的最糟糕情況如下。 假設頂鏈(the top chain)的第一個區塊從乙太坊鏈的最左邊的區塊中讀取了一些數據。 例如,有人在乙太坊上存入了 100 個 ETH 到頂鏈中。 然後,乙太坊發生回滾。 然而,頂鏈沒有回滾。 結果,頂鏈的未來區塊正確地遵循了新的正確的乙太坊鏈的新區塊,但現在錯誤的舊鏈(即 100 個 ETH 的存款)的結果仍然存在於頂鏈中。 這種漏洞可能允許製造貨幣,將頂鏈上的橋接ETH轉變為部分儲備。

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

  • **頂鏈可以只讀取已經最終確定的乙太坊區塊,這樣就不需要進行回滾操作。 **
  • **如果乙太坊發生回滾,頂鏈也可以進行回滾。 **

兩者都可以防止此問題發生。 前者更容易實現,但如果乙太坊進入不活躍期,可能會導致長時間喪失功能。 後者更難實現,但始終確保最佳的功能。

需要注意的是,第一種方法(1)存在一種特殊情況。 如果 51% 攻擊在乙太坊上創建了兩個不相容的區塊,並且兩個區塊同時出現最終確定狀態,那麼頂鏈可能會選擇錯誤的區塊(即乙太坊社區共識最終不支援的區塊),並且必須進行回滾以切換到正確的區塊。 可以說,沒有必要提前編寫處理這種情況的代碼; 它可以通過對頂鏈進行硬分叉來處理這個問題。

鏈能夠無需許可地讀取乙太坊上的數據非常有價值,原因如下:

  • 減少將在乙太坊(或其他 Layer 2)上發行的代幣跨鏈到該鏈上時涉及的安全問題。
  • 允許使用共用金鑰儲存結構的帳戶抽象錢包安全地在該鏈上持有資產。

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

擁有一座橋會可以讓鏈成為 Validium 嗎?

假設頂鏈開始時是一條單獨的鏈,然後有人將跨鏈合約放到乙太坊上。 跨鏈合約只是一個合約,它接受頂鏈的區塊頭,驗證提交給它的任何頭都帶有一個有效的證書,表明它被頂鏈的共識所接受,並將該頭添加到清單中。 應用程式可以在此基礎上構建,以實現存入和提取代幣等功能。 一旦這樣的橋樑到位,它是否提供了我們之前提到的任何資產安全保障?

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-77802047aa-dd1a6f-69ad2a.webp)

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

  • 我們正在驗證塊是否已簽名,但未驗證狀態轉換是否正確。 因此,如果你在乙太坊上發行的資產存入了頂鏈,而頂鏈的驗證者耍流氓,他們可以簽署一個無效的狀態轉換,竊取這些資產。
  • 頂鏈仍然沒有辦法讀取乙太坊數據。 因此,如果不依賴其他(可能不安全的)第三方橋,您甚至無法將乙太坊原生資產存入頂鏈。

現在,讓我們讓這座橋成為驗證橋:它不僅檢查共識,還檢查一個 ZK-SNARK,證明任何新區塊的狀態都計算正確。

一旦完成,頂鏈的驗證者就無法再竊取您的資金。 他們可以發佈一個包含不可用數據的區塊,阻止所有人退出,但他們不能竊取(除非試圖為使用者提取贖金以換取洩露允許他們退出的數據)。 這與 Validium 的安全模型相同。

但是,我們仍然沒有解決第二個問題:頂鏈無法讀取乙太坊。

為此,我們需要做以下兩件事之一:

  • 將驗證最終以太坊區塊的跨鏈合約放在頂鏈內。
  • 讓頂鏈中的每個區塊都包含最近乙太坊區塊的哈希值,並有一個強制執行哈希連結的分叉選擇規則。 也就是說,連結到不在規範鏈中的乙太坊區塊的頂鏈區塊本身是非規範的,如果頂鏈區塊鏈接到一個乙太坊區塊,該區塊最初是規範的,但後來變成了非規範的,那麼頂部鏈區塊也必須成為非規範的。

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-7340ab7dba-dd1a6f-69ad2a.webp)

圖中紫色的連結可以是哈希連結,也可以是驗證乙太坊共識的橋接合約。

這樣就足夠了嗎? 事實證明,還不夠,因為存在一些小的特殊情況:

  • **如果乙太坊受到 51% 攻擊會怎樣? **
  • **如何處理乙太坊硬分叉升級? **
  • 如何處理頂鏈的硬分叉升級?

乙太坊的 51% 攻擊會產生與頂鏈的 51% 攻擊類似的後果,但方向相反。 乙太坊的硬分叉可能使頂鏈內的乙太坊橋接不再有效。 對於這個問題,最乾淨的解決方式是承諾如果乙太坊回滾了一個已最終確定的區塊,頂鏈也會回滾,並且如果乙太坊進行硬分叉,頂鏈也會進行硬分叉。 這樣的承諾可能永遠不需要真正執行:你可以在頂鏈上啟動一個治理機制,如果它看到可能發生攻擊或硬分叉的證據,只有當治理機制失敗時才對頂鏈進行硬分叉。

對於問題(3),唯一可行的答案是,在乙太坊上擁有某種形式的治理機制,可以使乙太坊上的橋接合約意識到頂鏈的硬分叉升級。

總結:雙向驗證橋接幾乎足以使鏈成為 Validium。 剩下的主要問題是,在乙太坊發生異常情況導致橋接無法工作時,另一條鏈將進行硬分叉的社會承諾。

結論

“與乙太坊的連接”有兩個關鍵維度:

  • 提現到乙太坊的安全性
  • 讀取乙太坊數據的安全性

這兩個維度都很重要,並且有不同的考慮因素。 在這兩種情況下都存在一個譜系:

! [「教皇維塔林克一世」重新定義L2] (https://img-cdn.gateio.im/webp-social/moments-7f230462a9-be23ca98bb-dd1a6f-69ad2a.webp)

請注意,每個維度都有兩種不同的衡量方式(所以實際上有四個維度? ):提取安全性可以通過(i)安全級別和(ii)從最高安全級別中獲益的使用者或用例的百分比來衡量,而讀取安全性可以通過(i)鏈路能夠快速讀取乙太坊的區塊,特別是已經最終確定的區塊與任何區塊的區別,以及(ii)鏈路在處理 51% 攻擊和硬分叉等邊緣情況時的社會承諾的強度。

在這個設計空間中,有許多專案都具有價值。 對於某些應用程式來說,高安全性和緊密的連接性很重要。 對於其他應用程式來說,為了獲得更高的可擴充性,可以接受一些較為寬鬆的連接性。 在許多情況下,從今天開始使用一些較為寬鬆的方法,並在未來十年隨著技術的改進逐漸過渡到更緊密的連接可能是最佳選擇。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)