加密生態系統不得不適應新的現實——Initia 就是在這種情況下誕生的。
作為一個行業,我們不得不接受這樣一個事實,即單個狀態機無法擴展到與加密的野心相匹配。在為用戶和運營商保持低成本的同時擴大吞吐量,同時保持可接受的去中心化水平,這是一場幾乎不可能用單一方法取勝的戰鬥。
現實情況是,純單片鏈的成功已經成為一種反向觀點。今年早些時候,模塊化與單片鏈的爭論成為了焦點。但最重要的是:根本沒有爭論。未來不是其中之一,而是兩者的融合。一個快速的、可編程的 L1,搭配一套特定於應用程序的 rollup,這些 rollup 可以與 L1 一起擴展執行。
比如 Solana 網絡,混合(或者我們喜歡稱之為“Interwoven”)方法的優點就變得顯而易見了。在過去的六個月裡,團隊已經開始構建他們自己的定製“網絡擴展”,併成功地在 Solana 進行。但是等等,Solana 不是應該自己處理擴展嗎?這不是他們的全部品牌嗎?
你看,rollup 不僅僅是擴大執行規模,還關乎於主權——讓構建者完全控制他們的執行環境。更高的 TPS、更低的 Gas 費(或者零 Gas)、對 tx 排序和處理的控制,以及對其業務的整個經濟堆棧的所有權等等。
很明顯,rollup 是不可避免的,且會一直存在。
Initia 的存在就是圍繞這一論題建立起來的。它的目的是承載一個繁榮的生態 Interwoven rollup,被稱為 Minitia。
未來屬於 Interwoven
Initia 通過設計 Interwoven 的凝聚力體驗提供多樣化、強大和獨特的應用程序。
到目前為止,存在兩種生態系統。一種是專門為互聯區塊鏈鏈世界打造的(Cosmos),另一種是早已存在的押注 rollup 的(以太坊,現在是 Solana)。每種方法都取得了一定程度的成功,但並非沒有失敗,這些都是構建 L1 新模型時值得借鑑的寶貴經驗。
Initia 連接了這兩個種生態,它是一個 L1,旨在支持相互連接的 L2 網絡,確保 Minitia 建設者擁有成功所需的一切。最初開始,Initia 堅持己見和提出問題來避免混亂的中間地帶——L2 到底想從一個 hub 中獲得什麼?
在 Initia 上,rollup 是理所當然的。通過 Initia VIP ,L1 和 L2 之間實現了完全的經濟協調,產品套件清晰,技術專門用於確保 Minitia 從一開始就擁有預言機、橋樑、流動性、互操作性、原生穩定性等。Interwoven Stack 讓團隊可以很輕鬆地使用他們選擇的任何 VM(無論是 EVM、MoveVM 還是 CosmWasm)部署 Minitia。
現在,實現 Initia 上的 rollup 最重要的組件是什麼?Interwoven Stack —— 一個為 Cosmos SDK 從頭構建的 Optimistic rollup 框架。讓我們深入瞭解這個框架。
The Interwoven Stack(交織棧)
Initia 上的 Optimistic rollup 框架由三個組件組成,分別是:OPHost, OPChild 和 OPinit Bots;三個部分拼圖式地聚集在一起,形成一個整體,為 Minita 提供支持。
OPHost 和 OPChild 是構成 Stack 核心的 Cosmos SDK 模塊,是存於鏈上的部分。由於 OPinit Stack 是在鏈級別而不是特定 VM 智能合約級別實現的,因此它允許構建者構建對多個 VM 的支持,併為 Minitia 構建者提供自由選擇。
在 Initia 上,rollup 是直接內置於鏈中的一等公民,允許我們靈活地微調實施並提供更好的體驗。
OPHost 模塊存於 Initia (L1)上。它負責為所有在 Initia 的 minitia 提供基礎設施服務,其主要任務包括:
管理 Optimistic 橋(L1 和 L2 之間)和其資產;
監督 Minitia 輸出提案的最終確定;
處理挑戰者和提議者辯論案件。
另一方面,OPChild 存在於每個 Minitia 上,就像每個 rollup 的心跳,OPChild 負責:
管理 rollup 操作者;
執行從 L1 接收到的消息;
更新預言機價格信息;
L1 的代幣提取。
OPHost 和 OPChild 共同構成每個 Minitia 的 Optimistic 橋。Initia 上的一個 OPHost 充當多個 Minitia 上的多個 OPChild 模塊的 L1 端點。
需要注意的是,對於 rollup 來說原生橋的作用不僅僅是消息傳輸,它還充當 L1 上 rollup 總部。兩個不同的共識系統彼此都不知道對方的狀態機,但 rollup 的橋接器通過提交狀態根或類似的輸出充當 L1 上 rollup 的真實來源,這些輸出可以根據 rollup 的狀態進行驗證以確保正確性。這就是為什麼 L1 通常被稱為結算層。
現在你可能會想:“連接 OPHost 和 OPChild 是什麼呢?” 中繼器? 不是,是 OPinit Bots,作為上述內容的擴展,兩個不同的共識系統如果沒有鏈下流程作為其獨立狀態機之間的物理鏈接,就無法進行本地通信。
OPinit Bots 是處理 Initia 和 Minitias 之間關鍵操作的鏈下進程。有兩個不同的機器人:執行者和挑戰者。簡而言之,這兩個機器人共同負責:
執行令牌傳輸;
向 Initia L1 提交輸出提案;
將交易批次提交給 Celestia 以實現數據可用性 (DA);
將預言機價格反饋更新轉發給 Minitias。
在本文的其餘部分,我們將深入研究如何在 Interwoven Stack 中實現特定的功能,這應該會讓您更清楚地瞭解所有部分是如何協同工作的。
Optimistic Bridge 上的代幣跨橋
rollup 的一個最重要的方面是它繼承了所依賴 L1 的安全性。
L1 和 rollup 間的原生橋通常是在兩者之間轉移資產的最安全方式。這是因為使用原生橋不會引入任何額外的信任假設, 只需信任所涉及的兩條鏈。
在我們深入研究跨橋是如何進行之前,讓我們先解決一個不容忽視的問題。
為什麼不是 IBC?
那麼,Interwoven Stack 上的所有鏈都是使用 Cosmos SDK 構建的,為什麼原生橋不能使用 IBC 協議呢?
因為 IBC 轉賬本質上是即時的,這與我們協議的信任假設不符。某天一個惡意的 Minitia 運營商可能會醒來並決定惡意插入交易,將 L2 上的 INIT 餘額轉移並將 Minitia 上的所有 INIT 提取回 L1。我們不希望發生這種情況,這失誤將是災難性的
然而,通過 Optimistic 橋向 Initia 提款有 7 天的延遲,在此期間,如果檢測到它是惡意提款,挑戰者可以提出質疑並取消提款。
在 Initia 上,我們仍然希望確保 Mintia 和 Initia L1 之間有一個無縫的用戶體驗(轉移資產)。為了實現從 L2 到 L1 的快速轉賬,我們構建了一個名為 Minitswap 的安全定製解決方案,更多信息參考:(Minitswap—在幾秒鐘內從 L2 提款到 L1,而不是幾天)
代幣存款(L1—L2)
將代幣從 Initia 存入 Minitia 幾乎是即時的。存款工作原理如下:
1.用戶在 Initia 上提交存款交易,該交易會將其代幣鎖定在 L1 上並從 OPHost 模塊觸發存款事件;
2.執行器 OPinit Bot 不斷監聽 Initia 上的新事件,當它看到 initial_token_deposit 事件時:
2.a—執行器構造相應的 FinalizeTokenDeposit 消息並將其提交給 Minitia。
3.收到消息後,Minitia 會在 L2 上鑄造相應的代幣並將其發送給用戶。
既能完成工作,又不會影響安全性!
代幣提取(L2—L1)
代幣提取時有點複雜,雖然從 L1 到 L2 的存款很簡單,但 “Minitia 總是可以信任 L1”的假設並不適用於其他情況。
原因如下:Initia 由一組具有經濟權益的去中心化驗證者保護,但 Minitia 通常由單個或一小部分操作員運營,他們沒有經濟權益。所以當 Minitia 向 L1 發起提款時,它需要證明自己不是惡意行為。
提款過程如下:
用戶在 Minitia 上提交提款交易,導致 OPChild 模塊銷燬他們的代幣併發起 initial_token_withdrawal 事件;
執行者監聽 L2 上的所有區塊,它接收事件並存儲提款請求,但不會立即轉發,Bot 會等待提交檢查點。
一旦到達提交檢查點,執行者:
3.a—獲取間隔內的所有提款請求;
3.b—生成提款的排序後的 Merkle 樹;
3.c—使用該樹的 Merkle 根創建 L2 輸出;
3.d—將輸出提交給 L1 上的 OPHost;
然後提款將進入提款期,如果檢測到任何可疑情況,挑戰者 OPinit Bot 可以提出質疑並取消提款。
如果提款期過去而沒有任何挑戰,用戶可以在 Initia 上調用 finalize_withdrawal 來解鎖他們的代幣。
5.a—該功能接受提款請求及其證明;
5.b—驗證提交的證明;
5.c—如果一切順利,就將代幣發送給用戶。
為了確保安全,取款需要一些時間。但是,為了給 Interwoven 的用戶提供更好的用戶體驗,Initia 還構建了 Minitswap——通過利用 IBC 和 OPinit Bridge,它允許即時取款,並提供相當程度的安全保證。
雖然知道了取款過程的工作原理,但是挑戰機制仍然是一個黑匣子,接下來讓我們深入瞭解它。
當 Minitia 作假時會發生什麼?
我們在前一節中已經瞭解到,Minitia 可能會撒謊作假,存在提現期就是為了防止欺詐行為竊取 OPinit 橋上的代幣。
但誰來負責阻止欺詐性取款呢?這是挑戰者 OPinit Bot 的工作。
1.挑戰者實時監控 L2 輸出被提交到 L1;
2.在每次提交時,它都從 Initia 獲取輸出,並根據 Minitia 的狀態獨立計算輸出;
3.如果 Initia 上提交的輸出與挑戰者計算的輸出不匹配,那麼挑戰者將通過發送 DeleteOutput 指令刪除輸出提議,只有挑戰和被允許調用這個函數。
使用 Celestia 進行 Rollback 狀態同步
當你刪除一個無效的提案時,意味著 rollup 的當前狀態現在是無效的,這就是為什麼我們有一個 Rollback 機制的原因。
在一次成功挑戰後,Minitia 節點可以根據先前發佈到 Celestia 的數據同步狀態,因為 rollup 所有交易批次都已發佈到 Celestia 進行 DA,在需要 Rollback 時非常方便。
為了確保 Minitia 狀態的完整性,並確保執行者沒有惡意行為,兩個 Bot (執行者和挑戰者)被設計為獨立的實體。
為了挑戰者權力過大,包括惡意操作並刪除有效輸出等情況,Initia 通過 L1 治理來處理制衡系統。
如果挑戰者和提議者(提交輸出的人)惡意行事,則可以通過治理提議替換它們。對於挑戰者來說,惡意行為意味著刪除有效輸出。對於提議者來說意味著提交無效輸出。
當一個提議被創建時,Initia 的 L1 驗證者通過運行 L2 節點來對其進行投票,以驗證誰對誰錯。該系統確保沒有任何單一實體可以審查交易或破壞提取流程。
更多合理的設計
如果我們只是滿足於現狀而不採取額外措施,那麼這就不是 Initia 前行該有的成果。
Initia 使得構建自己的 rollup 變得非常簡單。現在,建立一個 rollup 除了託管還有很多事情要做。作為創建者,還需要構建很多基礎設施,比如索引器、預言器、橋樑等。Interwoven Stack 已做好了一切。
Skip Connect—神聖的預言機
通過 Skip, Initia 能夠為 Initia 和每一個基於 Interwoven Stack 的 Minitia 提供快速和即時的資產價格數據。
Connect 是一個由 Initia 驗證器運行的 oracle sidecar 服務,用於在鏈上推送價格更新。該執行過程利用了 Cosmos SDK 版本 0.50 中引入的兩個新功能:ABCI++ 和 Vote Extensions,它們允許驗證者自己提交任意數據,然後將其存儲在鏈上,以消除價格更新被惡意方通過用垃圾郵件填充區塊來審查的可能性。
一旦價格更新上鍊,開發人員就可以通過 CLI、API 或智能合約級別進行查詢。
但事實並非如此。Connect 的價格會傳遞到 Interwoven Stack 上的每個 Minitia,確保它們在第一天就可以很容易獲得最新價格。
這樣,Minitia 就無需承擔運行必要基礎設施的負擔,也無需尋找第三方預言機提供商、與他們達成協議並投入資源進行集成,一切都由他們處理。
跨鏈合約調用
為了實現真正的 Interwoven Stack,Initia 上必須有安全高效的跨鏈通信方式。有幾種方法可以做到這一點,其中之一是通過 Optimistic Bridge 上的 Bridge hooks。Bridge hooks 在功能上類似於 IBC Hooks,用於允許代幣傳輸啟動合約調用。OPinit Bridge Hooks 用於啟動合約調用,同時通過 OPinit 橋接資產進行轉移。
OPHost 上的 Bridge Hooks 更新橋的元數據,OPChild 上的 Hooks 允許在 FinalizeTokenDeposit 上任意執行交易。
我們以支持多個虛擬機的方式構建了它,因此無論是 EVM、MoveVM 還是 CosmWasm,Bridge Hooks 都可以根據消息中的數據字段執行任意交易。
例如:EVM 鏈的數據格式
神聖的索引器
minitia 還帶有內置索引器,可以自動索引和存儲鏈上的所有相關數據。然後通過可用於查詢歷史數據的 REST API 公開數據。
按賬戶分類的代幣,NFT 信息,交易信息等,這些都是內置其中的。
在構建鏈上應用程序時,索引是最大的痛點之一,這確實需要做很多繁重的工作,運行自己的索引器既昂貴又麻煩。藉助 Enshaled 索引器,開發人員可以顯示令牌餘額、NFT、交易歷史等等,而無需運行自己的索引器或獲得第三方索引器的支持。
Enshrined 索引器還支持 Initia Scan(Initia 為 L1 和每個 L2 提供的區塊瀏覽器)。
結論
Interwoven Stack 是一項精心設計的技術,為 Initia Interwoven 願景提供了支持。通過將 Interwoven Stack 構建為 Cosmos SDK 模塊,Initia 將 SDK 重新用於構建 Optimistic rollup 的堆棧,同時仍保留了 Cosmos SDK 的所有優勢。
關於 The Interwoven Stack 還有很多沒有探索的內容,建議大家看看代碼庫,以及 Bot 代碼庫,可以更深入地理解它。
總而言之,事實是,Initia 才是 Rollup 的真正歸屬。從一開始,Initia 就是為 Minitia 發展而打造的。其生態系統已經激發了像 Blackwing, control, MilkyWay, Inertia 這樣的 Minitias 的創新應用,這些都是應用程序專用 rollup,將從 Initia 上線第一天時可供使用,所有這些都由 Interwoven Stack 實現。