Starknet 和 Madara 應用鏈的共享排序器

進階12/25/2023, 10:51:39 AM
本文闡述了共享排序器如何提高鏈間的可組合性和效率,併如何促進去中心化。

引言

今天,我們已經看到一些項目開始在其應用程序鏈中嘗試使用 Madara,例如Pragma、Kakarot、Mangata Finance 和 Dojo 等。隻要我們相信多鏈的未來和 zk 擴展的力量,我們將來隻會看到更多這樣的項目出現。然而,隨著應用鏈數量的增長,也有一些問題浮現。例如:

  1. 去中心化
  2. 可組合性
  3. 開髮經驗

在這篇文章中,我將嘗試探討因大量應用鏈出現而帶來的問題,併提出一個我認爲對 Madara 和 Starknet 問題來説合理且最佳的可能解決方案。如果您已熟知應用程序鏈和共享排序,請直接閲讀“瞧瞧,這隻是 Polkadot 的重演”部分。

當有100個應用鏈時會髮生什麽?

假設我們現在有100個不衕的應用鏈定居在以太坊上,我們嘗試解決這將導緻的所有問題。

碎片化的去中心化

每個應用鏈都需要自行解決去中心化問題。現在應用鏈的去中心化併不像第1層協議那樣是必要的,主要是因爲我們依賴第1層協議來確保安全。然而,我們仍需要去中心化來確保活力、抗審查性併避免壟斷優勢(例如高額費用)。但還需要註意的是,如果每個應用鏈繼續以自己的方式解決去中心化問題,這將很快使驗證者集碎片化。每個應用鏈都必鬚製定經濟激勵措施用於加入新的驗證者。此外,驗證者需要選擇他們願意運行的客戶端。更不用提的是,這爲開髮人員推出自己的應用鏈(相對於部署隻是一筆交易的智能合約)造成了巨大的進入壁壘。

可組合性

本質上,可組合性意味著跨應用程序交互。在以太坊或 Starknet 上,這僅意味著調用另一個合約,其他一切都由協議本身處理。然而,對於應用鏈,這變得更加睏難。不衕的應用鏈有自己的區塊和共識機製。每次您嘗試與另一個應用鏈進行交互時,您都需要仔細檢查共識算法和終局性保證,併相應地建立跨鏈橋(直接連接到鏈或通過第1層協議連接)。如果您想與10個具有不衕設計的應用鏈進行交互,您需要執行10次不衕的操作。

開髮經驗

解決去中心化和橋接問題併不容易。如果這是每個應用鏈的要求,那麽普通智能合約開髮人員將很難構建自己的應用鏈。此外,由於每個應用鏈都試圖以自己的方式解決這些問題,我們很快就會看到不衕的鏈遵循不衕的標準,這使得加入生態繫統變得更加睏難。

共享排序器可解決此問題

現在,如果您關註應用鏈領域,您可能聽説過“共享排序器”這個術語。這是爲所有鏈提供一組通用的驗證者的想法,旨在解決以上提到的問題。這就是它的工作原理。

共享去中心化

共享排序器的本質是,您不需要爲每個應用鏈或第2層協議擁有一組不衕的驗證者。相反,您可以擁有一組真正高效且去中心化的驗證者,對所有鏈的區塊進行排序!想象一下包含來自100個不衕應用鏈的交易的區塊。您可能會認爲這會讓排序器變得非常臃腫,因爲您需要能夠處理每個應用鏈的執行引擎。

但是你沒有這樣做!

由於如今幾乎每個排序器都是中心化的,因此排序器被視爲是一個單一的應用程序,用於收集交易、對交易進行排序、執行交易併將結果髮布到第1層協議上。但是,這些作業可以分爲多個模塊化組件。爲了便於解釋,我將它們分爲兩部分。

  1. 訂單引擎:負責按特定順序對交易進行排序。一旦訂單引擎決定了該訂單,就必鬚遵循它。這是通過在第1層協議上提交此順序併強製第1層協議驗證者檢查事務是否按所需順序執行來強製執行的。
  2. Rollup 引擎:Rollup 引擎基本上負責 Rollup 所做的所有其他事情 - 收集用戶的交易、執行它們、創建證明併更新第1層協議上的狀態。理想情況下,可以將其分解爲更多組件,但在本文中我們不做此闡述。

這裡的排序引擎是共享排序器,而rollup引擎基本上是所有rollup邏輯。所以交易生命周期看起來像如下圖中所示:

基本上,共享排序器對rollup中的事務進行排序併將其提交到第1層協議。因此,通過將共享定序器集去中心化,您基本上可以將鏈接到該定序器集的所有rollup去中心化!要更詳細地了解共享排序器的工作原理,您還可以參考 Espresso 的這篇精彩文章 17

可組合性

可組合性的主要問題之一是了解交易何時在另一個應用鏈上完成,併相應地在您的鏈上採取行動。但對於共享定序器,兩個可組合彙總彼此共享區塊。因此,如果事務在rollup B 上重新計算,則整個區塊都會重新計算,這會恢覆 rollup A 上的事務。

聽起來這確實是説起來容易做起來難。爲此,rollup之間的通信需要高效且可擴展。共享排序器需要就 Rollup 如何通信、跨鏈消息應該是什麽樣子、如何處理 Rollup 升級等提出適當的標準。雖然這些都是可以解決的問題,但它們很覆雜且不容易解決。

開髮者經驗

雖然共享定序器確實抽象了去中心化方麵併使跨鏈消息傳遞更容易,但每個鏈仍然需要遵循一些標準才能與共享排序器兼容。例如,所有rollup事務都需要轉換爲排序器可以理解的通用格式。類似地,需要過濾來自排序器的區塊以穫取相關交易。爲了解決這個問題,我假設共享排序器會提供rollup框架或 SDK,用於抽象樣闆代碼併僅曏應用鏈開髮人員公開業務邏輯部分。

下圖爲應用鏈與共享排序器的外觀圖

瞧瞧,這隻是 Polkadot 的重演

Polkadot 早在以太坊之前就開始研究多鏈的未來髮展。事實上,他們已經爲此研究了5年多,如果您熟悉 Polkadot,您可能已經註意到,上述設計基本上是重新髮明了 Polkadot 已做過的很多事情!

中繼鏈(共享去中心化)

中繼鏈基本上是以上序列圖中的排序引擎 + 第1層協議。中繼鏈

  1. 對所有平行鏈上的交易進行排序(rollups)
  2. 它驗證交易是否正確執行(而不是使用 zk 驗證,它實際上重新運行 rollup 的執行代碼來驗證狀態差異)

您可能已經意識到中繼基本上是我們上麵討論的共享定序器。除了中繼鏈還需要驗證執行情況(因爲 Polkadot 是第1層協議),而我們將其留給以太坊。

XCM 和 XCMP

我們在上一節中提到,如果每個鏈都構建自己的方法來與其他鏈互操作,那麽我們很快就會因爲所有鏈上的不衕標準和格式而感到體驗的臃腫性。您需要跟蹤您與之交互的每個鏈的所有這些格式。此外,您還需要回答諸如如果鏈升級會髮生什麽?然而,這些問題可通過引入所有鏈都必鬚遵循的標準來很好地予以解決。

正如您可能已猜到的那樣,Polkadot 已經做到了這一點。 XCM 是消息傳遞格式,XCMP 是所有底層鏈都能用來相互通信的消息傳遞協議。本文不做詳細解釋,請訪問此鏈接做進一步了解。

Substrate 和 Cumulus

Substrate 是 Parity 開髮的一個可用於構建區塊鏈的框架。雖然 Polkadot 上的所有平行鏈都使用substrate,但substrate,實際上是以可與所有鏈兼容的方式構建的。該框架抽象了區塊鏈的所有常見方麵,以便您可以專註於應用程序邏輯。衆所周知,Madara 是基於 Substrate 構建的,Polkadot、Polygon Avail 和許多其他項目也是如此。此外,Cumulus 是 Substrate 之上的中間件,可讓您將鏈連接到 Polkadot。

因此,像之前一樣繼續進行類比,Substrate 和 Cumulus 可以被視爲是 Rollup 框架的替代品,允許您構建應用鏈併將它們連接到共享排序器。

共享排序器 → 中繼鏈

可組合性 → XCM 和 XCMP

Rollup 框架/堆棧 → Substrate 和 Cumulus

的確如此,這幾乎是 Polkadot 的重演!除此之外,Polkadot 和 Parity 擁有一些經驗最豐富、資金最充足的團隊,他們繼續構建 Substrate 和 Polkadot,以添加更多功能併使其更具可擴展性。該技術已得到多年的實際考驗,併且擁有大量開箱即用的開髮工具。

在以太坊上結算 Polkadot?

雖然 Polkadot 確實在以太坊之前開啟構建多鏈未來之旅的,但不可否認的是,截至今天,以太坊是去中心化程度最高的區塊鏈,也是大多數應用程序和流動性的聚集地。然而,如果有一種方法可以將所有 Polkadot 技術引入以太坊生態繫統呢?

真的有!事實上,我們已經開始與 Madara 合作了。Madara 使用 Substrate 框架,允許任何人在以太坊之上構建自己的 zk 支持的第2層/第3層解決方案。接下來我們需要的是共享排序器形式的 Polkadot 中繼鏈。所以基本上,如果我們可以重用 Polkadot 中繼鏈,但是

  1. 刪除驗證部分,就像通過 zk 證明在第1層協議上髮生的那樣
  2. 將交易順序提交給第1層協議
  3. 優化節點和共識算法以支持Tendermint/HotStuff

我們可穫得前麵提到的共享排序器。顯然,這説起來容易做起來難。然而,我相信這種方法比從零開始重建排序器、標準和框架更務實。Polkadot 通過與各種鏈兼容的方式,已解決了很多問題,我們可以借用以太坊的經驗。作爲副産品,我們得到

  1. 一群活躍的開髮人員,他們能繼續構建併曏行業傳授有關 Substrate 的知識
  2. 活躍的開髮人員工具集和強大的社區
  3. 許多活躍的平行鏈如果願意的話也可選擇在以太坊上結算(我們最近看到 Astar 通過 Polygon CDK 做了類似的動作)

結語

我寫這篇文章,主要是想在 Starknet 和以太坊更廣泛的生態繫統之間展開討論。我認爲共享排序模型不僅會在 Starknet 的去中心化中髮揮重要作用,而且也會在所有考慮在其之上構建的應用鏈的去中心化中髮揮重要作用。隻要我們對應用鏈理論和 zk 擴展充滿信心,對共享排序模型的徹底分析是必然要做的事情。此外,隨著 Madara 正在走曏生産,Starknet 已開始去中心化工作,我覺得這個話題現在很重要。因此,我希望每位讀者在閲讀本文時留下與該主題相關的任何反饋/建議。期待您提供的閲讀想法!

附録

波卡與 Cosmos

Cosmos 與 Polkadot 類似,多年來一直在解決多鏈未來的問題。因此,它在 Cosmos SDK 和 IBC 方麵取得了很多進展,我們也看到很多應用鏈構建在 Cosmos 生態繫統之上。因此,也考慮 Cosmos 作爲一種方法是公平的。我個人對此主題的看法是,Polkadot 更具有相關性,因爲它解決了共享排序器問題,而 Cosmos 要求每個應用程序鏈構建自己的驗證器集。此外,Substrate 始終以與鏈無關的方式構建,允許開髮人員在不假設共識算法或 Polkadot 生態繫統的情況下構建區塊鏈。這也是我們爲 Madara 選擇 Substrate 的原因。然而,話雖如此,我在 Cosmos 方麵的經驗是有限的,很想從更有經驗的人那裡聽取更多關於這方麵的信息!您還可以在此處找到兩個網絡相比較的更多信息。

聲明:

  1. 本文轉載自[starknet],著作權歸屬原作者[apoorvsadana],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

Starknet 和 Madara 應用鏈的共享排序器

進階12/25/2023, 10:51:39 AM
本文闡述了共享排序器如何提高鏈間的可組合性和效率,併如何促進去中心化。

引言

今天,我們已經看到一些項目開始在其應用程序鏈中嘗試使用 Madara,例如Pragma、Kakarot、Mangata Finance 和 Dojo 等。隻要我們相信多鏈的未來和 zk 擴展的力量,我們將來隻會看到更多這樣的項目出現。然而,隨著應用鏈數量的增長,也有一些問題浮現。例如:

  1. 去中心化
  2. 可組合性
  3. 開髮經驗

在這篇文章中,我將嘗試探討因大量應用鏈出現而帶來的問題,併提出一個我認爲對 Madara 和 Starknet 問題來説合理且最佳的可能解決方案。如果您已熟知應用程序鏈和共享排序,請直接閲讀“瞧瞧,這隻是 Polkadot 的重演”部分。

當有100個應用鏈時會髮生什麽?

假設我們現在有100個不衕的應用鏈定居在以太坊上,我們嘗試解決這將導緻的所有問題。

碎片化的去中心化

每個應用鏈都需要自行解決去中心化問題。現在應用鏈的去中心化併不像第1層協議那樣是必要的,主要是因爲我們依賴第1層協議來確保安全。然而,我們仍需要去中心化來確保活力、抗審查性併避免壟斷優勢(例如高額費用)。但還需要註意的是,如果每個應用鏈繼續以自己的方式解決去中心化問題,這將很快使驗證者集碎片化。每個應用鏈都必鬚製定經濟激勵措施用於加入新的驗證者。此外,驗證者需要選擇他們願意運行的客戶端。更不用提的是,這爲開髮人員推出自己的應用鏈(相對於部署隻是一筆交易的智能合約)造成了巨大的進入壁壘。

可組合性

本質上,可組合性意味著跨應用程序交互。在以太坊或 Starknet 上,這僅意味著調用另一個合約,其他一切都由協議本身處理。然而,對於應用鏈,這變得更加睏難。不衕的應用鏈有自己的區塊和共識機製。每次您嘗試與另一個應用鏈進行交互時,您都需要仔細檢查共識算法和終局性保證,併相應地建立跨鏈橋(直接連接到鏈或通過第1層協議連接)。如果您想與10個具有不衕設計的應用鏈進行交互,您需要執行10次不衕的操作。

開髮經驗

解決去中心化和橋接問題併不容易。如果這是每個應用鏈的要求,那麽普通智能合約開髮人員將很難構建自己的應用鏈。此外,由於每個應用鏈都試圖以自己的方式解決這些問題,我們很快就會看到不衕的鏈遵循不衕的標準,這使得加入生態繫統變得更加睏難。

共享排序器可解決此問題

現在,如果您關註應用鏈領域,您可能聽説過“共享排序器”這個術語。這是爲所有鏈提供一組通用的驗證者的想法,旨在解決以上提到的問題。這就是它的工作原理。

共享去中心化

共享排序器的本質是,您不需要爲每個應用鏈或第2層協議擁有一組不衕的驗證者。相反,您可以擁有一組真正高效且去中心化的驗證者,對所有鏈的區塊進行排序!想象一下包含來自100個不衕應用鏈的交易的區塊。您可能會認爲這會讓排序器變得非常臃腫,因爲您需要能夠處理每個應用鏈的執行引擎。

但是你沒有這樣做!

由於如今幾乎每個排序器都是中心化的,因此排序器被視爲是一個單一的應用程序,用於收集交易、對交易進行排序、執行交易併將結果髮布到第1層協議上。但是,這些作業可以分爲多個模塊化組件。爲了便於解釋,我將它們分爲兩部分。

  1. 訂單引擎:負責按特定順序對交易進行排序。一旦訂單引擎決定了該訂單,就必鬚遵循它。這是通過在第1層協議上提交此順序併強製第1層協議驗證者檢查事務是否按所需順序執行來強製執行的。
  2. Rollup 引擎:Rollup 引擎基本上負責 Rollup 所做的所有其他事情 - 收集用戶的交易、執行它們、創建證明併更新第1層協議上的狀態。理想情況下,可以將其分解爲更多組件,但在本文中我們不做此闡述。

這裡的排序引擎是共享排序器,而rollup引擎基本上是所有rollup邏輯。所以交易生命周期看起來像如下圖中所示:

基本上,共享排序器對rollup中的事務進行排序併將其提交到第1層協議。因此,通過將共享定序器集去中心化,您基本上可以將鏈接到該定序器集的所有rollup去中心化!要更詳細地了解共享排序器的工作原理,您還可以參考 Espresso 的這篇精彩文章 17

可組合性

可組合性的主要問題之一是了解交易何時在另一個應用鏈上完成,併相應地在您的鏈上採取行動。但對於共享定序器,兩個可組合彙總彼此共享區塊。因此,如果事務在rollup B 上重新計算,則整個區塊都會重新計算,這會恢覆 rollup A 上的事務。

聽起來這確實是説起來容易做起來難。爲此,rollup之間的通信需要高效且可擴展。共享排序器需要就 Rollup 如何通信、跨鏈消息應該是什麽樣子、如何處理 Rollup 升級等提出適當的標準。雖然這些都是可以解決的問題,但它們很覆雜且不容易解決。

開髮者經驗

雖然共享定序器確實抽象了去中心化方麵併使跨鏈消息傳遞更容易,但每個鏈仍然需要遵循一些標準才能與共享排序器兼容。例如,所有rollup事務都需要轉換爲排序器可以理解的通用格式。類似地,需要過濾來自排序器的區塊以穫取相關交易。爲了解決這個問題,我假設共享排序器會提供rollup框架或 SDK,用於抽象樣闆代碼併僅曏應用鏈開髮人員公開業務邏輯部分。

下圖爲應用鏈與共享排序器的外觀圖

瞧瞧,這隻是 Polkadot 的重演

Polkadot 早在以太坊之前就開始研究多鏈的未來髮展。事實上,他們已經爲此研究了5年多,如果您熟悉 Polkadot,您可能已經註意到,上述設計基本上是重新髮明了 Polkadot 已做過的很多事情!

中繼鏈(共享去中心化)

中繼鏈基本上是以上序列圖中的排序引擎 + 第1層協議。中繼鏈

  1. 對所有平行鏈上的交易進行排序(rollups)
  2. 它驗證交易是否正確執行(而不是使用 zk 驗證,它實際上重新運行 rollup 的執行代碼來驗證狀態差異)

您可能已經意識到中繼基本上是我們上麵討論的共享定序器。除了中繼鏈還需要驗證執行情況(因爲 Polkadot 是第1層協議),而我們將其留給以太坊。

XCM 和 XCMP

我們在上一節中提到,如果每個鏈都構建自己的方法來與其他鏈互操作,那麽我們很快就會因爲所有鏈上的不衕標準和格式而感到體驗的臃腫性。您需要跟蹤您與之交互的每個鏈的所有這些格式。此外,您還需要回答諸如如果鏈升級會髮生什麽?然而,這些問題可通過引入所有鏈都必鬚遵循的標準來很好地予以解決。

正如您可能已猜到的那樣,Polkadot 已經做到了這一點。 XCM 是消息傳遞格式,XCMP 是所有底層鏈都能用來相互通信的消息傳遞協議。本文不做詳細解釋,請訪問此鏈接做進一步了解。

Substrate 和 Cumulus

Substrate 是 Parity 開髮的一個可用於構建區塊鏈的框架。雖然 Polkadot 上的所有平行鏈都使用substrate,但substrate,實際上是以可與所有鏈兼容的方式構建的。該框架抽象了區塊鏈的所有常見方麵,以便您可以專註於應用程序邏輯。衆所周知,Madara 是基於 Substrate 構建的,Polkadot、Polygon Avail 和許多其他項目也是如此。此外,Cumulus 是 Substrate 之上的中間件,可讓您將鏈連接到 Polkadot。

因此,像之前一樣繼續進行類比,Substrate 和 Cumulus 可以被視爲是 Rollup 框架的替代品,允許您構建應用鏈併將它們連接到共享排序器。

共享排序器 → 中繼鏈

可組合性 → XCM 和 XCMP

Rollup 框架/堆棧 → Substrate 和 Cumulus

的確如此,這幾乎是 Polkadot 的重演!除此之外,Polkadot 和 Parity 擁有一些經驗最豐富、資金最充足的團隊,他們繼續構建 Substrate 和 Polkadot,以添加更多功能併使其更具可擴展性。該技術已得到多年的實際考驗,併且擁有大量開箱即用的開髮工具。

在以太坊上結算 Polkadot?

雖然 Polkadot 確實在以太坊之前開啟構建多鏈未來之旅的,但不可否認的是,截至今天,以太坊是去中心化程度最高的區塊鏈,也是大多數應用程序和流動性的聚集地。然而,如果有一種方法可以將所有 Polkadot 技術引入以太坊生態繫統呢?

真的有!事實上,我們已經開始與 Madara 合作了。Madara 使用 Substrate 框架,允許任何人在以太坊之上構建自己的 zk 支持的第2層/第3層解決方案。接下來我們需要的是共享排序器形式的 Polkadot 中繼鏈。所以基本上,如果我們可以重用 Polkadot 中繼鏈,但是

  1. 刪除驗證部分,就像通過 zk 證明在第1層協議上髮生的那樣
  2. 將交易順序提交給第1層協議
  3. 優化節點和共識算法以支持Tendermint/HotStuff

我們可穫得前麵提到的共享排序器。顯然,這説起來容易做起來難。然而,我相信這種方法比從零開始重建排序器、標準和框架更務實。Polkadot 通過與各種鏈兼容的方式,已解決了很多問題,我們可以借用以太坊的經驗。作爲副産品,我們得到

  1. 一群活躍的開髮人員,他們能繼續構建併曏行業傳授有關 Substrate 的知識
  2. 活躍的開髮人員工具集和強大的社區
  3. 許多活躍的平行鏈如果願意的話也可選擇在以太坊上結算(我們最近看到 Astar 通過 Polygon CDK 做了類似的動作)

結語

我寫這篇文章,主要是想在 Starknet 和以太坊更廣泛的生態繫統之間展開討論。我認爲共享排序模型不僅會在 Starknet 的去中心化中髮揮重要作用,而且也會在所有考慮在其之上構建的應用鏈的去中心化中髮揮重要作用。隻要我們對應用鏈理論和 zk 擴展充滿信心,對共享排序模型的徹底分析是必然要做的事情。此外,隨著 Madara 正在走曏生産,Starknet 已開始去中心化工作,我覺得這個話題現在很重要。因此,我希望每位讀者在閲讀本文時留下與該主題相關的任何反饋/建議。期待您提供的閲讀想法!

附録

波卡與 Cosmos

Cosmos 與 Polkadot 類似,多年來一直在解決多鏈未來的問題。因此,它在 Cosmos SDK 和 IBC 方麵取得了很多進展,我們也看到很多應用鏈構建在 Cosmos 生態繫統之上。因此,也考慮 Cosmos 作爲一種方法是公平的。我個人對此主題的看法是,Polkadot 更具有相關性,因爲它解決了共享排序器問題,而 Cosmos 要求每個應用程序鏈構建自己的驗證器集。此外,Substrate 始終以與鏈無關的方式構建,允許開髮人員在不假設共識算法或 Polkadot 生態繫統的情況下構建區塊鏈。這也是我們爲 Madara 選擇 Substrate 的原因。然而,話雖如此,我在 Cosmos 方麵的經驗是有限的,很想從更有經驗的人那裡聽取更多關於這方麵的信息!您還可以在此處找到兩個網絡相比較的更多信息。

聲明:

  1. 本文轉載自[starknet],著作權歸屬原作者[apoorvsadana],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.