引言
近期,以 ETH Layer 2 爲首的 Optimism 和 zkSync, Polygon, Arbitrum, StarkNet 都相繼推出了自己的 Stack 方案,都旨在構造一套开源的,模塊化的代碼,允許开發者定制屬於自己的 Layer 2 。
衆所周知,當前的以太坊是出了名的低性能和高 Gas, OP, zkSync Era 等 Layer 2 的出現雖然解決了這些問題。但是不論是部署在 EVM 虛擬機上還是部署在 Layer 2 上,本質上都逃不過一個“兼容性”問題。這不僅是 Dapp 的底層代碼要和 EVM 兼容,也是 Dapp 主權兼容。
第一部分是代碼層面,由於 EVM 要照顧到部署在其之上各種多樣的應用類型,所以在 Average User Case 上進行了優化,做到了兼顧所有類型的用戶。但是對於部署在其之上的 Dapp 就沒有那么友好,比如對於 Gamefi 的應用,會更加注重速度和性能;對於 Socialfi 的用戶,可能會更注重隱私安全。但是由於 EVM 的一鍋端性質,Dapp 必須得舍棄一些東西,這就是代碼層面的兼容。
第二部分是主權層面,由於所有的 Dapp 都共享基礎設施,所以出現了應用治理和底層治理兩個概念,而應用治理無疑是受制於底層治理,有些 Dapp 的特定需求需要通過底層 EVM 升級的方式來支持,因此 Dapp 缺乏主權性。比如 Uniswap V4 的新功能需要底層 EVM 支持 Transient Storage, 依賴於 EIP-1153 加入坎昆升級。
爲了解決上述問題以太坊 L1 低處理性能以及主權問題,Cosmos( 2019 年) 和 Polkadot( 2020 年)應運而生。兩者都希望能夠幫助开發構建自己的定制鏈,讓區塊鏈 Dapp 掌握主權自治,並實現高性能的跨鏈互操作性,實現一個全鏈互通網絡。
在 4 年後的今天,L2s 們也相繼推出自己的超鏈網絡方案,從 OP Stack,到 ZK Stack,再有 Polygon 2.0 ,Arbitrum Orbit 最後 StarkNet 也不甘落伍推出了 Stack 構想。
全鏈網絡先驅 CP(Cosmos Polkadot) 和百花齊放 L2s 們,會發生怎么樣的碰撞和火花?爲了給大家提供一個全面而深入的視角,我們將通過三篇文章系列來深度探討這一主題。本篇,作爲這個系列的第一章節,將對各家技術方案的進行梳理,第二章節將會對各自方案的經濟模型、生態進行處理梳理,並總結出在 Layer 1 和 Layer 2 Stack 選擇需要考慮的特點,最後一個章節,我們就 Layer 2 如何發展自己的超級鏈進行探討,並對整個系列文章進行總結。
一. Cosmos
Cosmos 是一個獨立的並行區塊鏈的去中心化網絡,通過提供通用的开發框架 SDK,使得开發人員可以輕松的構建自己的區塊鏈,多個獨立的,不同的應用特定的區塊鏈相互鏈接,相互通信,從而形成一個可互操作和可擴展的全鏈網絡。
1.結構框架
如前所述,當生態中擁有大規模的應用鏈,而每條鏈之間都是用 IBC 協議進行通信和傳輸 Token,那么整體的網絡就會像蜘蛛網一樣繁瑣且難理清。
所以爲了解決這個問題,Cosmos 提出了一個分層架構, 其中包含兩類區塊鏈: Hubs(中心樞紐鏈)和 Zones(區域鏈)。
Zones 是常規的應用鏈, Hubs 是專門爲將 Zones 連接在一起而設計的區塊鏈,主要服務於 Zones 之間的通信。當一個 Zone 創建與 Hub 的 IBC 連接時,Hub 可以自動訪問 (即發送和接收) 連接到它的所有 Zone,這樣的結構極大的降低了通信復雜度。
此外需要注意的是,Cosmos 和 Cosmos Hub 是兩個完全不同的東西,Cosmos Hub 只是其中的一條鏈,存在與 Cosmos 生態中,主要作爲 $ATOM 的發行者和通信中心。你可能會將 Hub 理解成生態的中心,但其實任何鏈都可以成爲 Hub。如果 Hub 成爲了生態的中心,這其實是和 Cosmos 的初心相違背的。因爲 Cosmos 本質上是致力於每條鏈自治,擁有絕對的主權,如果以 Hub 作爲權力中心,那么主權就不再稱爲主權。所以在理解 Hub 時,需要格外注意這一點。
2.關鍵技術
2.1 IBC
IBC(Inter-Blockchain Communication),即跨鏈通信,它允許異構鏈之間相互轉移 Token 和數據。Cosmos 生態系統中,SDK 底層框架是相同的,必須使用 Tendermint 共識引擎。但是,異構性仍然存在,因爲鏈在框架內可能具有不同的功能、用例和實現細節。
那么如何實現異構性質的鏈之間的通信呢?
只需要共識層面具有最終確定性即可。最終確定性(Instant Finality)是指只要有 1/3 以上的驗證者都是正確的確定的,那么區塊就不會分叉,可以確保交易一旦出塊就是最終的。不論異構鏈在應用案例和共識方面有什么差異,只要保證他們的共識層面都滿足最終確定性,那么鏈與鏈之間的互操作就有統一的規則進行確定。
以下是一個跨鏈通信的基本流程,假設要從 A 鏈轉移 10 個$ATOM 到 B 鏈:
跟蹤(Tracing):每個鏈運行着一個其他鏈的輕節點,所以每條鏈都可以驗證其他的鏈。
綁定(Bonding): 先將 A 鏈上的 10 個 $ATOM 鎖定,用戶無法使用,並發送鎖定證明
鎖定證明(Relay):AB 鏈之間有個中繼器,來發送鎖定證明
驗證(Validation): 在 B 鏈針對 A 鏈的區塊進行驗證,如果是正確的,那么就會在 B 鏈上創建 10 個 $ATOM。
此時 B 鏈上的 $ATOM 並不是真的 $ATOM,只是作爲一個憑證,A 鏈上鎖定的 $ATOM 無法使用,B 鏈上的可以正常使用。當用戶消耗掉 B 上的憑證之後,A 鏈上的鎖定的 $ATOM 也會被銷毀。
然而,跨鏈通信所面臨的最大挑战不是如何將一條鏈上的數據在另一條鏈上表示出來,而是如何處理鏈分叉和鏈重組這樣的情況。
因爲 Cosmos 的每條鏈上都是獨立自治的個體鏈,都有自己專屬的驗證者。所以很有可能會存在分區作惡,比如 A 鏈向 B 鏈傳輸消息,那么就需要提前驗證一下 B 鏈的 Validators 再決定是否要信任該鏈。
舉個例子,假設圖中的小紅點代表着一種 ETM 的代幣,且 ABC 三個分區的用戶都想要使用 EVMOS 來運行分區內的 Dapp,因爲通過跨鏈通信進行了資產轉移,都收到了 ETM。
如果此時 Ethermint 分區發動雙花攻擊,那么 ABC 分區無疑會收到影響,但也僅局限於此。剩余與 ETM 無關的網絡不會收到任何攻擊,這也是 Cosmos 保證了,即使發生了這種的惡意信息傳輸,卻仍然無法影響整個網絡。
2.2 Tendermint BFT
Cosmos 採用 Tendermint BFT 作爲 Cosmos 的底層共識算法和共識引擎,將區塊鏈的底層基礎設施和共識層合並打包成通用的引擎的解決方案,並利用 ABCI 技術,支持將任何編程語言進行封裝,從而適配底層的共識層和網絡。因而开發者可以自由選擇任何他們喜歡的語言。
2.3 Cosmos SDK
Cosmos SDK 是 Cosmos 推出的模塊化框架,簡化了在共識層上構建 Dapp 的操作。开發者可以輕松的創建特定的應用/鏈,不需要重新开始編寫每個模塊的代碼,極大的減輕了开發壓力,並且現在已經允許开發人員將部署在 EVM 上的應用移植到 Cosmos 上。
Source:https://v1.cosmos.network/intro
除此之外,利用 Tendermint 和 Cosmos SDK 構建的區塊鏈也在做引領行業發展的新生態和新技術,例如隱私鏈 Nym,提供數據可用性的 Celestia 等等。正是由於 Cosmos 提供的靈活性和易用性,使得开發者能夠專注於項目的創新,而無需考慮重復的工作。
2.4 Interchain Security Account
1) Interchain Security
因爲 Cosmos 不同於以太坊生態,有 L1 和 L2,Cosmos 生態中的每條應用鏈都相互平等,不存在遞進或者上下層關系。不過也由於這個原因,鏈間安全性沒有以太坊那樣完善。在以太坊中,所有交易的最終確定性都由以太坊確認,繼承了底層安全性。但是對於自行構建安全性的單體區塊鏈而言,應該如何維護安全性呢?
Cosmos 推出了 Interchain Security,本質上是通過共享大量現有節點,從而實現共享安全性。比如單體鏈可以和 Cosmos Hub 共享一組驗證節點,爲單體鏈產生新區塊。節點由於同時服務於 Cosmos Hub 和單體鏈,因而可以收到兩條鏈的費用和獎勵。
Source:https://medium.com/tokenomics-dao/token-use-cases-part-1-atom-a-true-staking-token-5 fd 21 d 41161 e
如圖所示,原本 X 鏈內部產生的交易由 X 的節點進行產生區塊,進行驗證。如果和 Cosmos Hub($ATOM) 共享節點,原本 X 鏈上產生的交易,將由 Hub 鏈的節點進行驗證計算,爲 X 產生新區塊。
按理來說,選擇擁有大量節點,較爲成熟的鏈比如 Hub 鏈,是共享安全的首選。因爲如果要攻擊此類鏈,攻擊者們需要擁有大量的 $ATOM 代幣進行質押,增加了攻擊難度。
不僅如此, Interchain Security 機制也極大的降低了新鏈的創建壁壘。一般而言,一條新的鏈如果沒有特別優秀的資源,可能需要花費大量的時間吸引驗證者,培養生態。但是在 Cosmos 中,因爲可以和 Hub 鏈共享驗證者,所以這極大的減輕了新鏈的壓力,加速了發展進程。
2) Interchain Account
在 Cosmos 生態中,因爲每條應用鏈都自行治理,所以應用程序不能相互訪問。因而 Cosmos 提供了一個跨鏈账戶,允許用戶直接從 Cosmos Hub 直接訪問所有支持 IBC 的 Cosmos 鏈,這樣用戶就可以在 A 鏈訪問 B 鏈的應用,實現全鏈交互。
二.Polkadot
和 Cosmos 一樣,Polkadot 致力於構建一個基礎設施,能夠讓开發自由部署新的鏈,並實現鏈與鏈之間的互操作性。
1.結構框架
1.1 中繼鏈:
中繼鏈也可稱之爲主鏈,可以理解爲太陽系中的太陽,作爲整個網絡的核心部分,所有的分支鏈都圍着它轉。如圖所示,一條中繼鏈(Relay Chain)上鏈接了許多功能不一的鏈如交易鏈、文件存儲鏈、物聯網鏈等等,
Source:https://medium.com/polkadot-network/polkadot-the-foundation-of-a-new-internet-e 8800 ec 81 c 7
此爲 Polkadot 的分層擴展方案,一個中繼鏈鏈接着另外一個中繼鏈,實現無限的可擴展性。(注:在今年 6 月底,波卡創始人 Gavin 提出了波卡 2.0 ,或將改變一種新的理解波卡的角度。)
1.2 平行鏈:
中繼鏈有若幹個平行鏈插槽(Para-Chain Slots),平行鏈通過這些插槽與中繼鏈相連,如圖所示:
Source:https://www.okx.com/cn/learn/slot-auction-cn
不過想要獲得插槽,參選的平行鏈必須抵押他們的 $DOT。一旦獲得插槽,平行鏈就可以通過這個插槽與 Polkadot 主網進行交互,共享安全性。值得一提的是,插槽數量有限,逐步增長,初期預計會支持 100 個插槽,並且插槽會按照治理機制周期性重新洗牌分配,以維持平行鏈生態的活躍性。
獲得插槽的平行鏈可以享受波卡生態的共享安全以及跨鏈流動性。同時平行鏈也要爲波卡主網提供一定的收益與貢獻作爲回報,比如承擔網絡的大部分交易處理。
1.3 平行线程:
平行线程是與平行鏈相類似的另一種處理機制,不同點在於,平行鏈一條一個插槽,有專用的插槽,可以持續不間斷地運行。但是平行线程,是指在平行线程之間共享插槽,輪流使用這個插槽來運行。
當一個平行线程獲得了插槽使用權,就可以暫時像平行鏈一樣工作,處理交易,生成區塊等。 但是當這個時間段結束後,就要釋放插槽,讓其他平行线程使用。
所以平行线程不需要長期抵押資產,只需要在獲取每個時間段時支付一定的費用,所以可以說是一種按需支付的方式來使用插槽。當然,如果一個平行线程得到了足夠多的支持和投票,就可以升級成爲平行鏈,獲得固定的插槽。
平行线程相比於平行鏈而言,成本較低,降低了 Polkadot 的進入門檻,但是無法保證什么時候能獲得插槽使用權,不太穩定。所以更適合哪些臨時使用或者新鏈的測試,那些希望能夠穩定運行的鏈,還是需要升級成爲平行鏈。
1.4 轉接橋:
平行鏈之間的通信只要通過 XCMP(後文會介紹)就可以實現,並且他們之間共享安全性,共識也相同。那么如果是異構鏈呢?
在這裏需要注明的一點是,雖然 Substrate 提供的框架使得接入波卡生態的鏈都是同構,但隨着生態的發展,必然會有一些發展成熟,體系龐大的公鏈也想參與到生態之中。如果讓他們重新只用 Substrate 重新部署,基本不太可能。所以如果實現異構鏈之間的消息傳輸?
以一個生活中的例子舉例,蘋果手機如果想通過連接向安卓手機傳送文件,插口不一樣所以需要轉化器連接,這就是轉接橋的實際作用。它是中繼鏈與異構鏈(外部鏈)之間的中介的平行鏈,在平行鏈和異構鏈上部署智能合約,讓中繼鏈能夠與外部鏈進行交互,實現跨鏈的功能。
2.關鍵技術
2.1 BABEGrandpa
BABE(Blind Assignment for Blockchain Extension)是 Polkadot 的出塊機制。簡單來說,它會隨機選擇驗證者來生產新區塊,每個驗證者會被分配到不同的時間槽中。在這個時間槽內,只有被分配到這個槽的驗證者可以出塊。
補充說明:
時間槽是區塊鏈出塊機制中用於劃分時間序列的一種方法,區塊鏈會被劃分爲以固定間隔出現的時間槽。每個時間槽代表一段固定的出塊時間。
在每個時間槽 Interval 內,只有被分配到該時間槽的節點才能出塊
換句話說,就是一個專屬時間段。在時間段 1 中,被分配到這個時間段 1 的驗證者 1 負責出塊。每個驗證者一個時間段,不能重復出塊。
這樣的好處就是,隨機分配最大化了公平性,因爲每個人都有機會被分配。而且由於時間槽已知,大家可以提前准備,不會出現意外的出塊。
通過這種隨機分配的出塊方式,保證了 Polkadot 生態運行的有序和公平,那么如何保證區塊都採用一樣的共識呢?接下來,我們將介紹 Polkadot 的另外一個機制:Grandpa
Grandpa 是一個最終確定區塊的機制,它可以解決 BABE 出塊時可能出現的,由於共識不同導致的分叉問題。比如 BABE 節點 1 和節點 2 在同一時段出了不同的塊,這就出現了分叉。這個時候 Grandpa 就會起作用,它會詢問所有的驗證人:你們認爲哪條鏈更好?
驗證人會看兩條鏈,投票選擇他們認爲更好的那條鏈。得到最多投票的那條鏈,最終會被 Grandpa 確認,成爲最終鏈,被否決的鏈會被拋棄不要。
所以 Grandpa 就好像所有的驗證人的“祖父”一樣,起到了最終決定者的作用,消除了 BABE 可能帶來的分叉風險。它讓 Blockchain 能夠最終確定一個所有人都認可的鏈。
綜上而言,BABE 負責隨機生產區塊,Grandpa 負責選擇最終鏈。 兩者一起協作,使得波卡生態可以安全運行。
2.2 Substrate
Substrate 是一個利用 Rust 語言編寫,由 FRAME 提供底層可拓展的組件,以此允許 Substrate 支持各式各樣的不同的 Use Case 的开發框架。任何使用 Substrate 構建的區塊鏈不僅與 Polkadot 原生兼容,可以與其他平行鏈共享安全性,並發運行,也支持开發者自行構建專屬的共識機制、治理模型等等,根據开發者的需求不斷更迭。
此外,Substrate 在自我升級時提供了很大的便利,因爲其在運行時,是一個獨立的模塊,可以與其他的組件分離开來。因而,在更新功能時可以直接替換掉這個正在運行的模塊。而作爲共享共識的平行鏈,只要和中繼鏈保持網絡、共識同步,就可以直接更新運行邏輯而不用產生硬分叉。
2.3 XCM
如果用一句話來解釋 XCM 的話,那就是:一種跨鏈通信格式,允許不同的區塊鏈進行交互。
例如波卡有很多平行鏈,如果平行鏈 A 想跟平行鏈 B 通信,它就需要用 XCM 格式打包信息。XCM 就像一種語言協議,大家都使用這種協議來溝通,就可以無障礙地交流了。
XCM 格式(Cross-Consensus Message Format),是波卡生態中用於跨鏈通信的標准消息格式,並且由其衍生出 3 種不同的消息傳遞方式:
XCMP(跨鏈消息傳遞):开發中。消息可以直接傳輸或通過中繼鏈轉發,直接傳輸速度更快,通過中繼鏈轉發更可擴展但會增加延遲。
HRMP/XCMP-lite(水平中繼路由消息傳遞):使用中。是 XCMP 的簡化版替代方案,所有消息都存儲在中繼鏈上,目前承接主要的跨鏈消息傳遞工作。
VMP(垂直消息傳遞):开發中。是在中繼鏈與平行鏈之間垂直傳遞消息的協議,消息存儲在中繼鏈上,由中繼鏈解析後傳遞。
舉個例子,由於 XCM 格式中包含多種信息,比如要轉账的資產數量、接收账戶等。在發送消息的時候,HRMP 通道或者中繼鏈會傳遞這種 XCM 格式的消息。另一條平行鏈收到消息後,會檢查這個格式是否正確,然後解析出消息內容,然後按照消息中的指令去執行,比如轉账資產給指定账戶,這樣就實現了跨鏈交互,兩條鏈成功通信了。
XCM 這樣的通信橋梁對於波卡這樣的多鏈生態是非常重要的。
了解完 Cosmos 和 Polkadot 之後,相信對這兩者的愿景和框架有所了解。那么接下來我們會詳細解釋下 ETH L2s 各自推出的 Stack 方案到底是什么?
三. OP Stack
1.結構框架
據官方文檔描述,OP Stack 是一系列組件構成,由 OP Collective 維護,先以主網背後的軟件形式出現,最終以 Optimism 超級鏈及其治理的形式出現。利用 OP Stack 开發的 L2 可以共享安全性、通信層和通用开發堆棧。並且开發者可以自由定制鏈,以服務於任何特定的區塊鏈用例。
從圖中我們可以了解,OP Stack 的所有超鏈,都會通過 OP Bridge 超級鏈橋進行通信,並以以太坊作爲底層的安全共識依托,構建超級 L2 鏈,並將每條超鏈的內部結構劃分爲:
1)數據可用層:使用 OP Stack 的鏈可以使用這個數據可用性模塊來獲取其輸入數據。因爲所有的的鏈都是從這一層拿數據,所以該層對安全性有重大影響,如果無法從其中檢索某條數據,則有可能沒辦法同步鏈。
從該圖中可以看到,OP Stack 中使用以太坊和 EIP-4844 ,換句話而言,本質上還是用以太坊區塊鏈上訪問數據。
2)排序層:Sequencer 決定了如何收集用戶交易並將其發布到數據可用層上,在 OP Stack 中,使用單個專門排序器進行處理。不過這樣可能會導致排序器不能過長的保留交易,在未來 OP Stack 會將排序器模塊化,讓鏈可以輕松改變排序器機制。
在圖中可以看到一個單排序器和多排序器,單排序器可以讓鏈制定任何人在任何時間充當 Sequencer (風險較高),多排序器是從一組預定義的可能參與者中進行選擇。那么如果選擇多排序器,各個基於 OP Stack 开發的鏈都可以明確選擇。
3)派生層:該層決定了如何處理數據可用性的原始數據的經過處理的輸入,並通過以太坊的 API 傳輸到執行層。從圖片中可得,OP Stack 用 Rollup 和索引器(Indexer)構成。
4)執行層:該層定義了 OP Stack 系統內的狀態結構,當引擎 API 從派生曾收到輸入時,就會觸發狀態轉化。從圖中可以看出是在 OP Stack 下,執行層是 EVM。不過稍微修改了下版本,也可以支持其他類型的 VM, 例如 Pontem Network 計劃用 OP Stack 开發一條 Move VM 的 L2。
5)結算層:顧名思義是用於處理區塊鏈中提取資產的情況,但是這樣的提款需要向某個第三方鏈證明目標鏈的狀態,然後根據狀態進行處理資產。核心在於,允許第三方鏈了解目標鏈的狀態。
一旦交易在相應的數據可用性層上發布並最終確定,該交易也在 OP Stack 鏈上最終確定。如果不破壞底層數據可用性層,就無法再對其進行修改或刪除。可能這筆交易還沒有被結算層接受,因爲結算層需要能夠驗證交易結果,但交易本身已經是不可變的。
這同時也是一種異構鏈的機制,異構鏈的結算機制不一,因而在 OP Stack 中,結算層是只讀的,允許異構鏈根據 OP Stack 的狀態做出決策。
在這層我們看到 OP Stack 用了 OP Rollup 中的故障證明。提議者可以提出他們質疑的有效狀態,如果在一段時間內沒有被證明是錯誤的,那么就會自動被視爲正確。
6)治理層:從圖片中可以看到 OP Stack 中用多重籤名 + $OP 代幣進行治理。通常多重籤名是用於管理 Stack 系統組件的升級,當參與者都參與籤名了之後就會執行操作。$OP 代幣持有者可以對社區 DAO 進行投票參與治理。
OP Stack 像是 Cosmos 和 Polkadot 的結合體,可以像 Cosmos 一樣自由化定制專屬鏈,也可以又像 Polkadot 一樣共享安全性和共識。
2.關鍵技術
2.1 OP Rollup
OP Rollup 通過數據可用性挑战來確保安全性,允許並行執行交易,以下爲具體的實現步驟:
1)用戶在 L2 上發起交易
2)Sequencer 會批量打包處理,然後將處理完的交易數據和新的狀態根同步到,其部署在 L1 上的智能合約,進行安全驗證。需要注意的是,Sequencer 在處理交易時,同時會生成自己的狀態根,同步到 L1 上。
3)驗證完畢之後,L1 將數據和狀態根返回給 L2,用戶的交易狀態得到安全驗證和處理。
4)此時,OP Rollup 將 Sequencer 生成的狀態根視爲樂觀的,正確的。並且會开放一個時間窗口,驗證者可以去挑战驗證 Sequencer 生成的狀態根與交易的狀態根是否匹配的上。
5)如果時間窗口期間,沒有驗證者驗證,那么交易會自動被視爲正確的。如果被驗證出惡意欺詐,那么處理交易的 Sequencer 會受到對應的懲罰。
2.2 跨鏈橋接
a)同L2消息傳遞
由於 OP Rollup 使用的是故障證明,所以交易需要等待挑战才能完成,這個過程耗時較長,用戶體驗度較低。但是 ZKP(零知識證明)成本較高且容易出錯,並且實現批量化的 ZKP 還需要一定時間。
因而爲了解決 L2 OP 超鏈之間的通信問題,OP Stack 提出了模塊化證明:對同一條鏈使用兩個證明系統,利用構建 L2 Stacks 的开發人員可以自由選擇任意的橋接類型。
目前 OP 提供的有:
高安全、高延時防故障(標配高安全橋)
低安全性、低延遲防錯(短挑战期實現低延遲)
低安全性、低延遲有效性證明(使用可信鏈證明者代替 ZKP)
高安全性、低延遲的有效性證明(ZKP 准備好後)
开發可以根據自身鏈的需求因地制宜的選擇橋接重點,比如對於高價值資產可以選擇高安全性的橋接...多樣化的橋接技術允許不同鏈之間的資產和數據高效移動。
b)跨鏈交易
傳統的跨鏈交易是異步完成的,這意味着交易很可能不能完整的執行。
OP Stack 針對該類問題,提出了共享排序器的想法。比如一個用戶想要執行跨鏈套利,那么 A 鏈和 B 鏈上共享 Sequencer,就可以對交易的時序達成共識,當交易都上鏈之後才會支付費用,兩邊的 Sequencer 共同承擔風險。
c)超鏈交易
因爲以太坊 L1 的數據可用性的擴展力不夠(容量有限),因而想要把交易發布到超級鏈上是不可擴展的。
因而在 OP Stack 中,提出了利用 Plasma 協議來擴展 OP 鏈可以訪問的數據量,可以代替 DA (數據可用性)補充更多的 L1 數據。將交易數據可用性下沉到 Plasma 鏈,只在 L1 上記錄數據承諾,大大提高了可擴展性。
四. ZK Stack
1.結構框架
ZK Stack 旨在與 zkSync Era 相同的底層技術(ZK Rollup)構建的一套开源、可組合性、模塊化的代碼,允許开發者自行定制屬於自己的,由 ZK 驅動的 L2 和 L3 超鏈。
由於 ZK Stack 是免費和开源的,开發人員可以自由地根據自己的特定需求定制超鏈。無論是選擇與 zkSync Era 並行運行的第 2 層網絡,還是在其之上運行的第 3 層網絡,定制的可能性都將是廣泛的。
據 Matter Labs 稱,從選擇數據可用性模式,到使用項目自己的 Token 去中心化排序器,創建者享有完全的自主權,來定制和塑造鏈的各個方面。
當然,這些 ZK Rollup 超鏈獨立運行,但僅會依賴以太坊 L1 來實現安全性和驗證性。
Source: zkSync Document
由圖可知,各個超鏈都必須使用 zkSync L2 的 zkEVM 引擎,共享安全性。多個 ZKP 鏈並發運行,並將區塊證明聚合在 L1 的結算層,這樣就像堆積木一樣,可以不斷的擴展,構建更多的L3,L 4...
2.關鍵技術
1)ZK Rollup
ZK Stack 底層以 ZK Rollup 作爲核心技術,以下爲主要的用戶流程:
用戶提交自己的交易,Sequencer 把交易集合成有序的批次中,並自行生成有效性證明(STARK/SNARK),進行狀態更新。更新完的狀態會提交給部署在 L1 上的智能合約,並進行驗證。如果驗證通過,那么 L1 層的資產狀態也會更新。ZK Rollup 的優勢在於,有能力通過零知識證明進行數學驗證,在技術和安全性層面更高。
2)超鏈橋
如上述所示的結構框架,ZK Stack 可以實現無线擴展,不斷的生成L3, L 4 等等。那么應該如何實現超鏈之間的互操作性呢?
ZK Stack 引入了超鏈橋,通過在L1上部署共享橋的智能合約,從而驗證超鏈上發生的交易的 Merkle 證明,本質上和 ZK Rollup 一致,只不過由原本的 L2-L1,變成了從 L3-L2。
ZK Stack 支持各條超鏈上的智能合約,跨鏈異步調用彼此,用戶可以在幾分鐘內以無需信任的方式快速轉移他們的資產,並且不會產生任何額外的成本。舉個例子,爲了在接收超鏈 B 上處理消息,發送超鏈 A 必須一直最終確定其狀態,直至作爲 A 和 B 共同基礎的最早的超鏈。因而在實踐中,超橋接的通信延遲只是幾秒鐘的問題,超鏈可以每秒完成塊並且更便宜。
Source:https://era.zksync.io/docs/reference/concepts/hyperscaling.html#l3s
不僅如此,並且由於 L3 就可以利用壓縮技術,將證明打包。L2 會進一步的擴大打包,這樣就形成了更加可觀的壓縮倍數,形成更低的成本(遞歸壓縮),就可以實現實現無需信任、快速(幾分鐘內)和廉價(單筆交易成本)的跨鏈互操作。
五. Polygon 2.0
Polygon 是一種特殊的 L2 解決方案,從技術上來說其實是 L1,作爲以太坊的側鏈。Polygon 團隊近期宣布了 Polygon 2.0 計劃,通過使用 ZK 支持开發者創建自己的 ZK L2 鏈,通過新穎的跨鏈協調協議進行統一,讓用戶感覺整個網絡就像使用一條鏈。
Polygon 2.0 致力於支持無限數量的鏈,並且跨鏈交互可以安全、即時地發生,無需額外的安全或信任假設,以此實現無限的可擴展性和統一的流動性。
1.結構框架
Source: Polygon Blog
Polygon 2.0 由 4 個協議層組成:
1)質押層
質押層是基於 PoS(權益證明)的協議,它利用質押 $MATIC 來實現去中心化治理,來高效治理驗證者和提高礦工效率。
從圖中可以看出,在質押層 Polygon 2.0 提出了,驗證者管理器以及 Chain Manager。
驗證者管理器:是來管理所有的 Polygon 2.0 鏈的一個公共驗證者池子。包括對於驗證者的注冊,質押請求,解除質押請求...可以想象爲驗證者們的行政部門。
Chain Manager:是來管理每條 Polygon 2.0 鏈的驗證者集,與前者相比更專注於鏈的驗證管理,因爲每條 Polygon 鏈都有其 Chain Manager 合約,而不像驗證者管理器是一個公共服務。主要專注於每條對應鏈的驗證者數量(關系到去中心化的級別),驗證者的附加要求,其他條件等等。
質押層已經幫每條鏈制定好了對應的規則的底層架構,开發者們只要專注於自己鏈的开發即可。
Source: Polygon Blog
2)互操作層
跨鏈協議對於整個網絡的互通有無是至關重要的,如何安全無縫的進行跨鏈消息傳遞是每個致力於超鏈方案都應該不斷完善的。
目前 Polygon 採用了聚合器(Aggregator)和消息隊列兩種合約進行支持。
消息隊列:主要針對當前已經存在的 Polygon zkEVM 的協議進行了改造升級。每條 Polygon 鏈都以固定格式維護本地的消息隊列,這些消息包含在由該鏈生成的 ZK 證明中。一旦 ZK 證明在以太坊上得到驗證,那么來自該隊列的任何消息都可以由其接收鏈和地址安全地使用。
Aggregator:聚合器的存在是希望能夠在 Polygon 鏈和以太坊之間提供更加高效的服務。比如,將多個 ZK 證明聚合爲一個 ZK 證明並將其提交給以太坊進行驗證,以減少存儲費用,提高性能。
一旦 ZK 證明被聚合器接受,接收鏈就可以开始樂觀地接受消息,因爲接收鏈都相信 ZK 證明,這樣就實現了無縫消息傳遞等等。
3)執行層
執行層使得任何的 Polygon 鏈都能夠生成批量的有序交易,也稱區塊。大多數區塊鏈網絡(以太坊、比特幣等)都以類似的格式使用它。
執行層有多個組件,比如:
共識:使驗證者們達成一致的共識
Mempool:收集用戶提交的交易並在驗證者之間同步,用戶也可以在 mempool 中查看自己的交易狀態。
P2P:使驗證者和全節點能夠發現彼此並交換消息;
...
鑑於該層已商品化,但實現起來相對復雜,現有的高性能實現(例如 Erigon)應盡可能重用。
4)證明層
證明層爲每條 Polygon 生成證明,是一種高性能、靈活的 ZK 證明協議,通常有以下幾個組件:
通用證明器(Common Prover):高性能 ZK 證明器,提供一個幹淨的接口,旨在支持任意交易類型,即狀態機格式。
狀態機構造器(State machine constructure):用於定義狀態機的框架,用於構建初始 Polygon zkEVM。該框架抽象化了證明機制的復雜性,簡化成易於使用的,模塊化的接口,允許开發者自定義參數,構建自己額大型狀態機。
狀態機(State machine):對證明者正在證明的執行環境和交易格式的模擬。狀態機可以使用上述構造器來實現,也可以完全自定義,例如使用 Rust。
2.關鍵技術
Source: Polygon Blog
1) zkEVM validium
在 Polygon 2.0 更新中,團隊將原本的 Polygon POS 保留的同時,將其升級爲 zkEVM validium。
Source: Polygon Blog
在這裏簡單的科普下,Validium 和 Rollup 都屬於 Layer 2 解決方案,目的是爲了擴大以太坊的交易容量和縮短交易時間。兩者相比下:
Rollup 是把許多交易打包起來,然後作爲一個 batch 提交到以太坊主鏈上,利用以太坊來發布交易數據並驗證證明,從而完全繼承了其無與倫比的安全性和去中心化性。不過將交易數據發布到以太坊,成本昂貴並且限制了吞吐量。
Validium 則不需要提交全部交易數據到主鏈。它使用零知識證明(ZKP)來證明交易是有效的,交易數據在鏈外提供。同時保護用戶的隱私。但是 Validium 需要信任執行環境,相對中心化一些。
可以理解爲,Validium 是費用更低,可擴展性越強的 Rollup。不過在升級前的 Polygon zkEVM(Polygon POS 機制),其運行原理就是(ZK) Rollup,也取得了不菲的成績。上线僅 4 個月的時間,其 TVL 就已經飆升到 3300 萬美金。
Source: Defilama
基於 Polygon PoS 的 zkEVM 從長期來看,其生成證明的成本可能會成爲未來擴容的阻力。雖然 Polygon 團隊一直致力於降低 Batch 的成本,已經將其降低至:證明 1000 萬個交易的成本僅爲 0.0259 美元這樣極其可觀的數據。不過 Vailidium 的成本更低,爲什么不用呢?
Polygon 官方已經發布文檔,在未來的版本中,Validium 會承擔之前 POS 的工作,同時也會保留 POS,其 POS 驗證者的主要作用就是保證數據可用性和對交易進行排序。
升級後的 zkEVM Validium 將提供非常高的可擴展性和非常低的費用。因爲其本身就非常適合進行大交易量,低交易費的應用程序,例如 Gamefi、Socialfi 和 DeFi 等等。對於开發者而言,不需要任何的操作,只需要跟着主網一起更新就可以完成 Validium 的更新。
2) zkEVM rollup
目前,Polygon PoS(即將升級成 Polygon Validium) 和 Polygon zkEVM Rollup 是 Polygon 生態系統的兩個公共網絡。升級後情況仍然如此,兩個網絡都使用前沿 zkEVM 技術,一個作爲匯總,另一個作爲驗證,帶來了額外的好處。
Polygon zkEVM Rollup 已經提供了最高級別的安全性,但代價是費用稍高和吞吐量有限。不過它非常適合處理高價值交易且安全性優先的應用程序,例如高價值的 DeFi Dapp。
六. Arbitrum Orbit
Arbitrum 作爲當前最主要的 L2 公鏈,自 2021 年 8 月上线以來,TVL 已經超過 51 億美金,作爲頭部 L2 佔據了將近 54% 的市場份額。
Arbitrum 於今年 3 月發布了 Orbit 版本,在此前 Arbitrum 發行了系列的生態產品:
Arbitrum One : Arbitrum 生態系統的第一個和核心主網 Rollup。
Arbitrum Nova:這是 Arbitrum 的第二條主網 Rollup,面向那些對成本敏感且對交易量要求很高的項目。
Arbitrum Nitro:這是爲 Arbitrum L2 提供支持的技術軟件棧,使 Rollup 能夠更快、更便宜和更兼容 EVM。
Arbitrum Orbit:在 Arbitrum 主網之上創建和部署 L3 的开發框架。
今天我們將重點介紹 Arbitrum Orbit。
1.結構框架
原本开發者如果想要利用 Arbitrum Orbit 創建 L2 網絡,比如先發出提案,由 Arbitrum DAO 投票決定,如果通過,則一條新的 L2 鏈就產生了。不過,在 L2 上再开發 L3, 4, 5 …就無需許可了,任何人在 Arbitrum L2 上提供一個部署定制鏈的無許可框架。
Source:Whitepaper
可以看到,Arbitrum Orbit 也力圖於讓开發者,通過基於 Layer 2 比如 Arbitrum One, Arbitrum Nova, 或者 Arbitrum Goerli 來定制屬於自己的 Oribit L3 鏈。开發者可以自定義本鏈的隱私協議,許可證,代幣經濟模型,社區管理等等,最大程度上給到开發者自治權力。
其中,較爲值得注意的是,Oribit 允許 L3 鏈用本鏈的 Token 作爲費用結算單位,從而有效發展自己的網絡。
2. 關鍵技術
1)Rollup AnyTrust
這兩種協議分別支持 Arbitrum One 和 Arbitrum Nova,如之前介紹 Arbitrum One 是一個核心主網 Rollup;Arbitrum Nova 是第二條主網 Rollup,只不過接入了 AnyTrust 協議,可以通過引入“安全假設”(Trust Assumption) 來加快結算並降低成本。
其中 Arbitrum Rollup 是 OP Rollup,因而就不過多解釋,我們將針對於 AnyTrust 協議進行詳細分析。
AnyTrust 協議主要是管理數據可用性,並且是被一些列的第三方機構如 DAC (Data Availability Committee)。並且通過引入“安全假設” 來極大的降低交易費用。AnyTrust 鏈以側鏈的形式在 Arbitrum One 上,以更低成本和更快的交易速度運行。
那么,到底什么是安全假設“Trust Assumption”? 爲什么它的存在可以降低交易成本並需要更低信任?
根據 Arbitrum 的官方文檔表示,AnyTrust 鏈由節點委員會運營,通過最小假設判斷有多少委員會成員是誠實的。比如委員會由 20 個人,並且假設至少由 2 個成員是誠實的。相比於 BFT 需要 ⅔ 成員誠實而言,AnyTrust 確實將信任門檻降到最低。
在一筆交易中,由於委員會會承諾提供交易數據,所以節點就可以不用在 L1 上記錄 L2 交易的所有數據,只需要記錄交易批處理的哈希值,這樣就可以極大節省了 Rollup 的成本。這也是爲什么 AnyTrust 鏈可以降低交易成本。
針對於信任問題,如之前所述,假設 20 個成員中只要 2 個是誠實的,並且假設成立的話。只要 20 名委員會成員中有 19 名成員籤署承諾這筆交易的正確性,就可以安全地執行。那么就算沒籤名的那名成員是誠實的,已籤名的 19 名中一定有 1 個成員是誠實的。
假設成員不籤名或者爲數不少的成員拒絕合作導致無法正常運行該怎么辦?AnyTrust 鏈依然可以運行,只不過它會退回到原先的 Rollup 協議,數據依然發布在以太坊 L1 上。當委員會正常運行,鏈會切換回更便宜和更快的模式。
Aribtrum 之所以推出該協議,是希望能夠滿足那些需要高處理速度和低成本的應用比如 Gamefi 領域的需求。
2)Nitro
Nitro 是 Arbitrum 技術的最新版本,其主要元素是驗證器(Prover),通過 WASM 代碼對 Arbitrum 進行傳統的交互式欺詐證明。並且其各個組件都已經完備,Arbitrum 已於 22 年 8 月底完成了升級,將現有的 Arbitrum One 無縫遷移/升級到 Aribitrum Nitro。
Nitro 有以下幾個特點:
兩階段處理事務:用戶的交易被先被整合成單個有序序列,然後 Nitro 提交該序列,按照順序進行處理交易,並實現確定性狀態轉換。
Geth:Nitro 採用當前支持率最高的以太坊客戶端 Geth( go-ethereum) 來支持以太坊的數據結構、格式和虛擬機,可以更好的兼容以太坊。
分離執行與證明:Nitro 採用相同的源代碼並將其編譯兩次,一次編譯爲本機代碼以在 Nitro 節點中執行交易,再次編譯爲 WASM 用於證明。
帶有交互式欺詐證明的 OP Rollup:Nitro 使用 OP Rollup,包括 Arbitrum 首創的交互式欺詐證明將交易結算到第 1 層以太坊鏈。
Oribit 這些特點爲 Arbitrum 的 L3, L 4 用例提供了技術支持,Arbitrum 可以吸引那些尋求可定制化的开發者,創建自己的定制鏈。
七. Starknet Stack
StarkWare 聯合創始人 Eli Ben-Sasson 在巴黎 EthCC 大會上表示,Starknet 即將推出 Starknet Stack,允許任何應用程序以無需許可的方式部署自己的 Starknet 應用鏈。
Starknet 中的 STARK 證明,Cairo 編程語言,和本機账戶抽象等等關鍵技術爲 Starknet 的高速發展提供了動力保證。當开發者利用 Stack 定制自己的 Starknet 應用鏈,其可擴展,可自由配置可以極大的擴大網絡吞吐量,緩解主網的堵塞狀況。
雖然目前 Starknet 只是初步的構想,還未發布官方的技術文檔。不過 Madara Sequencer 和 LambdaClass 分別正在开發於 Starknet 兼容的 Sequencer 和 Stack 組件,以更好地與 Starknet 適配。官方也正在爲即將到來的 Starknet Stack 做努力,包括正在开發全節點/執行引擎/驗證這等等組件。
值得注意的是,前不久 StarkNet 提交了一份“簡單去中心化協議”提案,希望可以改變 L2s 當前的單點運營 Sequencer 的現狀。以太坊去中心化,但 L2s 可不是,其 MEV 收入使得 Sequencer 變質。
StarkNet 在提案中列舉了一些方案比如:
L1 Staking 和 Leader 競選:社區成員可以無需許可在以太坊 Staking,以加入 Staker 集合。再根據集合資產分布和 L1 鏈上隨機數,隨機抽取一組 Staker 作爲 Leader 負責一個 Epoch 的出塊。這不僅降低了 Staker 用戶門檻,其隨機性也能有效防止 MEV 灰色收入。
L2 共識機制:基於 Tendermint,由 Leader 作爲節點參與的拜佔庭共識證明共識機制。共識確認之後由 Voter 執行,Proposer 調用 Prover 生成 ZKP。
此外還有 ZK 證明進行,L1 狀態更新等等的方案,結合之前就支持社區無需許可運營 Prover 代碼這以重大舉措,StarkNet 這份提案力圖於解決 L2 不夠去中心化,並嘗試平衡區塊鏈不可能三角問題,實屬矚目。
Source:https://starkware.co/resource/the-starknet-stacks-growth-spurt/
八、結束語
本章節通過對 CP 與各大 Layer 2 Stack 的技術講解,其實可以發現當前的 Layer 2 Stack 方案在能有效地解決以太坊的擴容問題,也帶來了一系列的挑战和問題,尤其是在兼容性方面。 L2s 的 Stack 方案中的技術沒有 CP 那樣成熟,甚至 CP 三四年前的技術構想仍值得當前的 L2s 借鑑。所以在技術層面,當前 CP 仍然遠超 Layer 2 。不過光有超前的技術也不行,在接下來的第二篇,我們將從代幣價值,生態發展層面展开,討論在 CP 與 L2 Stacks 們的各自優劣和特點,完善讀者們的視角。
參考資料:
https://medium.com/@eternal1 997 L
https://medium.com/polkadot-network/a-brief-summary-of-everything-substrate-and-polkadot-f1f21071499d
https://tokeneconomy.co/the-state-of-crypto-interoperability-explained-in-pictures-654cfe4cc167
https://research.web3.foundation/Polkadot/overview
https://foresightnews.pro/article/detail/16271
https://v1.cosmos.network/
https://polkadot.network/
https://messari.io/report/ibc-outside-of-cosmos-the-transport-layer?referrer=all-research
https://stack.optimism.io/docs/understand/explainer/#glossary
https://www.techflowpost.com/article/detail_12231.html
https://gov.optimism.io/t/retroactive-delegate-rewards-season-3/5871
https://wiki.polygon.technology/docs/supernets/get-started/what-are-supernets/
https://polygon.technology/blog/introducing-polygon-2-0-the-value-layer-of-the-internet
https://era.zksync.io/docs/reference/concepts/hyperscaling.html#what-are-hyperchains
https://medium.com/offchainlabs
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。