聚合區塊鏈

中級Feb 25, 2024
本文將深入探討什麽是聚合層、它如何運作,以及它與共享序列器或驗證器有何不衕。
聚合區塊鏈

我想提出兩個觀點:
1.無論是一級鏈(L1)還是二級鏈(L2),沒有單一的鏈能夠支持達到互聯網規模所需的吞吐量。
2.擴展區塊鏈意味著擴大對流動性和共享狀態的訪問。如果通過多個鏈增加區塊空間卻導緻流動性碎片化,這種做法是行不通的。

這對於模塊化和整體化的區塊鏈可擴展性觀點都是一個挑戰。觀點(1)是對整體化視角的挑戰,整體化視角認爲單一的高吞吐量鏈是擴展的最佳方式。觀點(2)是對模塊化視角的挑戰,因爲這意味著多鏈或多Rollup生態繫統對於以有意義的方式擴展(即增加對共享狀態和流動性的訪問)是不夠的。

如果觀點(1)和(2)都是真的,那麽解決可擴展性問題就需要跨多個鏈擴大對共享狀態和流動性的訪問。Polygon的解決方案是聚合層,或稱爲“AggLayer”。AggLayer爲幾乎即時的跨鏈交易提供安全保障,併實現鏈間狀態和流動性的統一。

本文將深入探討AggLayer是什麽、它如何工作,以及它與共享序列器或證明者有何不衕。

問題

二級鏈(L2)存在一個問題:流動性和狀態在Rollup和一級鏈(L1)之間碎片化。

這從可用性的角度來看是不好的,因爲它引入了覆雜性,但這也是昂貴的。碎片化的流動性意味著更高的滑點和更差的執行。Optimistic Rollup(ORs)要求用戶支付昂貴的第三方橋費用,以避免七天的提款延遲。即使是零知識Rollup(ZKRs)也要求用戶往返以太坊進行無需信任的跨鏈交易。

最終性和有效性

這就是低延遲、無需信任的跨鏈交易目前不可能實現的原因。

假設有兩個 Rollup,鏈 A 和鏈 B,共享一個到 L1 的橋。鏈 A 上的 Alice 想曏鏈 B 上的 Bob 付款,因此 Alice 鎖定或銷毀鏈 A 上的代幣,以便轉移到鏈 B。

鏈 B 需要滿足兩件事才能將這些代幣安全地記入 Bob 手中。

  1. 包含 Alice 交易的批次必鬚在以太坊 L1 上完成。
  2. 鏈B必鬚能夠驗證Alice交易後鏈A的結果狀態是有效的。

如果包含Alice交易的批次未在以太坊上終結,那麽鏈A可以對鏈B説謊併通過保留Alice在鏈A的資金併在鏈B上鑄造Bob的資金來進行雙花。衕樣,如果鏈B不檢查A的有效性證明,那麽鏈A可以包含一個無效的交易併從B竊取資金。

觀點(1)和(2)意味著無需信任的跨鏈交易不能有低延遲。(1)目前需要12分鐘,而(2)在ORs中需要等待挑戰期的持續時間,在ZKRs上需要幾分鐘來生成證明。

良好的用戶體驗與 20 分鐘的延遲是不兼容的。聚合層就是爲了解決這個問題而設計的。

聚合層

Polygon 是一個由 ZK 驅動的 L2 生態繫統,以以太坊爲基礎。聚合層是一種由質押節點運行的去中心化協議,它確保了低延遲跨鏈交易的安全性和統一橋接[1]。

在這個上下文中,“安全性”指的是:

如果一個 rollup 的狀態在 Ethereum 上被最終確定/結算,而該鏈狀態依賴於另一個鏈的無效或未最終確定的狀態,或者它包含了一個原子[2]捆綁包中的交易併未在所有其他鏈上成功執行,則這是不可能的。

換句話説,如果鏈 B 的狀態依賴於鏈 A 的無效或未最終確定的狀態,則無法在以太坊上最終確定。

這個保證很重要。在鏈 A 的狀態在以太坊上最終確定或生成證明之前,它允許鏈 B 以超低延遲安全地與鏈 A 互操作。

聚合層如何工作

聚合層分三個階段運行。假設鏈 A 是運行在 Polygon 生態繫統中的 ZK 驅動的鏈。

  1. 預先確認: 鏈 A 曏 AggLayer 提交新區塊/批次A1 的標頭以及輕客戶端證明。標頭包括對 A1 所依賴的所有其他塊和捆綁包(B1、C1 等)的承諾。當新批次在沒有有效性證明的情況下被接受時,它被 AggLayer 視爲“預先確認”。
  2. 確認: 鏈 A 或 A 的任何全節點生成 A1 的證明併將其提交給 AggLayer。一旦 AggLayer 驗證了證明,如果它所依賴的所有批次也都被確認,則 A1 被確認。
  3. 最終確定: A1 被確認後,它的證明將與其他彙總的批次一起聚合成一個髮布到以太坊的單一證明。聚合證明強製依賴鏈狀態和束是一緻的。

鏈可以自行在延遲和活躍性保證之間進行權衡。一條鏈可能會在預確認步驟之後選擇與另一條鏈進行互操作,以實現超低延遲的跨鏈交易,但從根本上來説,該模型與等待確認甚至最終確定的鏈兼容。

第三步是跨鏈交易的安全保障。讓我們進一步深入探討這種設計如何實現安全的跨鏈交互。

異步互操作性

以跨鏈傳輸的第一個例子爲例。鏈 A 上的 Alice 想要鎖定或銷毀區塊 A1 中的一些代幣,以便鑄造代幣併將其轉移給鏈 B 上的 Bob。如果鏈 B 不等到 A1 在以太坊上通過有效證明最終確定,則鏈 A可能會模棱兩可或給鏈 B 一個無效的狀態。

聚合層以一種簡單的方式解決了這個問題。鏈 B 可以暫時假設 A1 有效併將在以太坊上最終確定,甚至無需等待證明。在提交到聚合層之前,鏈 B 的定序器將所聲明的鏈 A 狀態根A1 作爲 A1 標頭中的依賴項(如 B1A1 )提交。鏈 B 構建 B1 所需的延遲從 20 分鐘減少到最多幾秒。

在確認步驟中,聚合層爲提交的每個塊/批次構建依賴關繫圖。例如,如果 A1 依賴於 B1,而 B1 又依賴於 C1,則一旦提交證明,πC1 就會得到確認。但是,即使收到 πA1,也隻能通過 πB1 和 πC1 來確認 A1。此設計的關鍵方麵是證明聚合電路強製跨依賴項的一緻性。如果“B1A1”與鏈 A 提交的區塊“A1”不一緻,或者“A1”缺少證明,則“B1”不能包含在以太坊上最終確定的聚合批次中。

該機製保證,如果鏈 A 模棱兩可或提交無效塊(例如“A1”),則依賴於鏈 A 的無效或模棱兩可狀態根的任何批次都無法在以太坊上最終確定/結算。即使 AggLayer 本身模棱兩可,鏈也有密碼學保證,任何依賴於無效或模棱兩可的塊的塊都無法最終確定,因爲不一緻或無效的鏈狀態的兩個證明無法在證明聚合電路中聚合在一起。這確保了上述安全特性得以保留。

原子互操作性

安全機製可以擴展到原子案例。假設用戶曏多個鏈提交一個原子交易包。這個包是有序的,因此在鏈A上執行的交易結果會傳遞給鏈B,衕樣,鏈B的更新狀態會傳遞給鏈C,等等。如果所有鏈上的交易都成功執行,那麽這個包就會被包含進去;否則,它就會被拒絶。

理想情況下,提供包含原子交易的能力,而無需要求鏈B的操作者爲包中包含的所有其他鏈運行一個完整節點;或接受包可能在以太坊上部分包含的風險(對參與的鏈造成傷害)。

這就像在異步案例中一樣引髮了一個類似的安全問題:鏈A可能會説謊併提交一個實際上不包括原子包的批次,或者曏鏈B髮送一個無效的結果。

幸運的是,可以爲原子案例重用異步案例中的相衕機製。鏈B承諾對包以及從其他鏈收到的交易結果。聚合層(和證明聚合電路)檢查包在各鏈之間是否一緻。隻有當包中的所有交易都成功執行時,包含鏈B的包的批次才能在以太坊上被最終確定/結算。

跨鏈可組合性

聚合層通過異步跨鏈調用實現了超低延遲的跨鏈組合性。這是一個非常強大的原語:合約可以在超低延遲下安全地調用其他鏈上的合約,無需等待以太坊的最終確定。用戶可以通過OKX鏈在Polygon上進行接入,然後一鍵立即將資金存入Aave上不衕鏈上的高流動性借貸市場,而無需換出包裝的合成資産。

應急協調基礎設施

聚合層保證了近乎即時的跨鏈交互將是安全的[3]。但這隻是解決問題的一半。鏈運營者如何共享和信任彼此的鏈狀態?他們如何協調生成原子束?

AggLayer的一個設計目標是它應該是最小化的。其目的是保證安全併提供一個基礎,允許任何人建立協調基礎設施,以在不衕的設置中提供活性。

鏈的運營者可以根據他們的信任假設自由選擇應急協調機製——這些可能包括中繼、共享證明者基礎設施或共享有效性排序器[4]集群。這些保護鏈在依賴其他鏈狀態或束時免受活性問題的影響。

Polygon生態繫統優先考慮鏈的選擇和主權。鏈可以運行它們自己修改的執行環境,使用自己的代幣進行質押和支付燃料費,選擇自己的數據可用性機製等。衕樣,鏈應該決定如何處理互操作性和活性故障風險之間的權衡。有幾個選項:

鏈B可以選擇不使用快速互操作性和聚合層。它可以直接曏以太坊提交批處理和證明,而最終確認永遠不會被延遲。

鏈B可以在聚合層確認鏈A的狀態後才接受鏈A的狀態。隻有當聚合層髮生等價時,鏈B才會被延遲。

鏈B可以在聚合層預確認鏈A的狀態時接受鏈A的狀態。如果聚合層髮生等價或鏈A未能産生證明,鏈B將會被延遲。

鏈B可以在點對點設置中接受鏈A的狀態,而不檢查聚合層是否預確認了鏈A的狀態。如果鏈A髮生等價或未能産生證明,鏈B將會被延遲。

需要註意的重要一點是,用戶不能引起活性故障,隻有行爲不當或功能故障的鏈才能。等價和提交無效塊可以受到嚴重懲罰,要麽通過削減,要麽通過將鏈從聚合層中逐出併阻止它們無縫互操作的能力。因此,活性故障應該非常罕見。

鏈可以採取額外的預防措施來最小化活性問題的風險,通過維護白名單或黑名單與其互操作的其他鏈,併設置可以在任何批次中共衕涉及的鏈的數量限製。他們可以依賴運行全節點的第三方以確保如果鏈在能産生證明之前離線,有一個備用證明者。

鏈協調接受原子束的機製也是靈活的。例如,一部分鏈可以在共享有效性排序集群中互操作以穫得極低的延遲,或者他們可以依賴中繼。

加密經濟保護的中繼器可以通過爲兩條鏈運行完整節點併證明每條鏈的狀態有效來實現鏈 A 和 B 之間的互操作性。即使鏈 A 或 B 預先確認了新批次然後離線,共享證明者基礎設施也可以介入生成證明。

你可以想象,在AggLayer提供的安全基礎之上,新的和更好的互操作性及共享流動性的協調基礎設施將會出現。關鍵是,整個Polygon生態繫統不需要共享相衕的基礎設施或信任假設。它不需要在單一的共享有效性排序器或證明者下運行。這是與ORs相比的一個極其重要的優勢。

結束語

聚合層的根本作用是讓我們能夠創建一個多鏈生態繫統,使用起來就像是單一鏈一樣。這是對單一體繫和模塊化論斷的綜合:統一的狀態、流動性和可組合性,以及多鏈生態繫統的無限擴展性。

聚合ZK與Optimistic繫統

這是一個根本上隻有基於ZK繫統才能實現的願景。我將在未來的帖子中展開這一點,但是希望實現快速互操作的Optimistic生態繫統必鬚依賴共享有效性序列器。這對鏈來説是一個壞交易:它限製了它們重新分配序列器費用和MEV,共享有效性序列器迫使鏈可能接受對其執行環境的限製,而基於OR的繫統中的互操作性迫使鏈接受額外的信任假設,以換取低延遲。

此外,跨鏈互操作性打破了ORs的一個重要屬性。在單鏈ORs中,任何人都可以爲OR運行一個完整節點,併且一旦交易被髮布到L1,就可以立即確認交易是有效且已最終確定的。在多鏈情況下,這已不再成立——現在需要爲OR與之互操作的每個鏈運行一個完整節點。

相比之下,Polygon的願景是鏈條具有主權。它們可以使用任何執行環境,可以依賴任何中心化或去中心化的序列器,併且可以自己在跨鏈延遲和活性之間進行權衡。

這是一個反映現有互聯網的願景。互聯網是一個彈性可擴展、無需許可和統一的環境。衕樣,AggLayer也是可擴展和無需許可的——它對參與的鏈不施加任何限製——併允許用戶無縫地在生態繫統中移動資産和狀態,爲互聯網的價值層提供一個統一的界麵。

這是Polygon的未來:不是單一的,不是完全模塊化的,而是聚合的。

[1] 確保統一流動性的一部分是擺脫橋接上包裹合成代幣的糟糕用戶體驗。Polygon的LxLy橋的用戶可以在保持可替代性的衕時,無縫轉移跨鏈資産。然而,爲了安全地做到這一點,我們需要防範最弱環節安全性——或者攻擊者腐化單個鏈併從橋上的所有鏈中排幹所有資金。我將在未來的帖子中討論如何做到這一點,但AggLayer可以利用證明聚合步驟來強製執行鏈級會計,避免最弱環節安全性。

[2] 當我提到原子跨鏈交易時,我的意思是用戶能夠提交一個跨多個鏈的“包”或一組交易。原子包具有的屬性是,如果且僅當所有交易成功執行時,其交易才被包含在每個相關鏈中。如果單個交易失敗,則該包不能在任何鏈上被包含。

最基本的例子再次是我們的跨鏈轉賬。假設Alice想要給Bob髮送1 ETH,但Alice在鏈A上,Bob在鏈B上。假設兩個卷軸共享一個原生橋,Alice可以在鏈A上銷毀她的ETH併在鏈B上鑄造ETH,然後轉給Bob。但關鍵是要保證她不能在不銷毀ETH的情況下鑄造ETH,反之亦然——否則她可能會丟失她的ETH或使橋下擔保。

這就是原子交易如此重要的原因。爲了允許鏈與鏈之間的低延遲互動,併使使用Polygon生態繫統感覺像使用單一鏈,需要原子保證。

[3] 這是一個微妙的點,但從生態繫統的角度來看 - AggLayer提供了安全性,但從單個鏈的角度來看,這種設計優先考慮活性而不是安全性,因爲鏈B可以依賴於鏈A的無效狀態。在這種情況下,鏈B將不會被AggLayer接受(由證明聚合電路強製執行)併且需要構建一個新的不依賴於A的區塊。

[4] 我們整體的方法很大程度上借鑒了Umbra Research的共享有效性序列設計。

2024年2月9日 - 更新了這份草稿,以澄清聚合與共享序列之間的一些比較。聚合論文依賴於共享序列器、中繼和構建器等機製來促進鏈之間的協調。反過來,聚合層保證了安全性。

聲明:

  1. 本文轉載自[Brendan Farmer],著作權歸屬原作者[Brendan Farmer],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!
إنشاء حساب الآن