Interwoven Stack:Optimistic rollup模組
星球君的朋友们
10-09 07:04
本文约4294字,阅读全文需要约17分钟
透過將Interwoven Stack建構成Cosmos SDK模組,Initia將SDK重新用於建構Optimistic rollup的堆疊,同時仍保留了Cosmos SDK的所有優勢。

加密生態系統不得不適應新的現實——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 實現。

星球君的朋友们
作者文库