過去幾週,隨著應用程序和建設者決定或有意構建自己的特定應用鏈,廣闊的Cosmos生態系統見到了復興之景。此前Terra生態系統的消亡也給廣大的IBC生態系統帶來溢出效應。然而我們認為,值得注意的是,事實上整個棧表現得相當不錯,這離不開明智的技術支持。業已證明,Cosmos可通過IBC跨鏈處理內部和外部信息及資產轉移,還可通過應用Tendermint共識機制、ABCI接口及自定義虛擬機的Cosmos SDK處理鏈間轉移。
本文旨在討論特定應用區塊鏈崛起的背後原因,以及為什麼因之而來的主權、可組合性和互操作性對構建下個週期中下一批“殺手級應用”和生態系統是至關重要的。
在進入討論之前,先讓我們“同頻”達成共識是非常重要的。所以,我將用易於理解的方式簡要概述幾個不同的技術方面,是這些技術讓Cosmos生態系統變得獨特。
應用ABCI接口和Cosmos SDK、基於Tendermint共識機制鏈的總體架構如下:
Cosmos SDK
Cosmos SDK是一組模塊化工具,允許區塊鏈開發者通過虛擬機不相關方式構建應用層邏輯。 Cosmos SDK被設計為通過ABCI接口連接Tendermint共識。除了作為允許創建特定應用區塊鏈的框架,它還支持多種自定義選項,包括協議無關治理、交易、質押機制,等等。 SDK處理應用邏輯層所需的大多數任務,意味著開發者不需要完全從無到有進行構建。它處理從Tendermint共識引擎接收的交易,由網絡路由將信息和狀態變化發送到適當的處理模塊。
ABCI
ABCI是連接區塊鏈應用和提供共識及網絡機制的狀態復制引擎Tendermint的接口。 ABCI使區塊鏈棧分離,也就是說區塊鏈應用可以和虛擬機無相關,這樣一來,任何虛擬機和執行環境都可以用來支持棧的應用層。舉例如Junowasm、Cosmwasm、Agoric的Hardened Javascript,以及支持TEE應用的Secret版本的Cosmwasm。 Tendermint本身創建了三個通往應用層的ABCI連接,分別是:在內存池廣播的交易驗證、針對區塊提案的應用和共識引擎的連接、以及詢問應用狀態的能力。
Tendermint
在Cosmos生態系統中,Tendermint Core負責鏈的共識和網絡層。共識層通過網絡參與者間的共識算法過程保障交易的有效性和秩序,在Tendermint用例中是權益證明驗證者集。網絡層負責系統內節點間點對點通信,使第三方應用和節點與共識層交互。
Tendermint應用拜占庭容錯(BFT)共識模型,可獲得即時結果。 BFT過程在提議區塊達到最終提交階段之前共經曆三個階段:提議階段(區塊設定為特定高度)、預投票階段(至少有2/3的驗證者對一個提議區塊進行預投票)、預提交階段(至少有2/3的驗證者對一個提議區塊進行預提交)。
Tendermints的BFT過程(Timeout延時:指接收提議或確定skip信息所需的短暫等待時間)
IBC
區塊鍊鍊間通信(IBC)的核心是一個面向同質區塊鏈的跨鏈消息協議。這意味著它連接擁有共同類似功能的鏈,在此情況下,是指共享Tendermint共識算法即時結果和擁有輕客戶端功能的鏈。 IBC的運行方式是有意相互連接的兩個鏈將在目標鏈上提出治理提議。通常一開始要么通過Cosmos Hub要么通過Osmosis(目前Osmosis有45條鏈,Cosmos有40條鏈)。也就是說達成了協議級別的共識協定,如此一來,也就無需來自外部橋的可信任第三方了。
隨後,這兩條鏈需要在對方鏈上運行一個輕客戶端,用以加密驗證兩條鏈間的共識狀態,還需要一個中繼器用於在兩條鏈上輕客戶端間傳遞信息。中繼器要求活躍,可以在節點間交換消息,讓節點成功融入共識。讓我們來看看實際操作中是怎樣的:
(鏈A面向鏈B運行一個輕客戶端,反之亦然。)
這便意味著信任假設位於相互連接的區塊鏈的兩個驗證者集裡,如此,相對於其他類型的橋和消息協議來說,信任假設要少很多。舉Polkadot生態系統的XCMP為例,信任假設只依賴中繼鏈(Polkadot)。
為了展示IBC在Cosmos生態系統中的兼容性和廣泛分佈,以及它連接了多少鏈——我們來看下面這張圖,一覽當前活躍連接。
ICS
ICS即鏈間標準,設置了應用IBC的鏈間交易參數。 ICS基本上是IBC交易的模塊規格。兩條鏈使用IBC通信,需要處理相同的ICS規格參數。
ICS最有趣和獨特的一點就是ICS-27,也稱為鏈間賬戶。
ICS-27
鏈間賬戶支持可組合性和互操作性。允許鏈與鏈之間交換數據,並可以將一個鏈上智能合約的狀態寫入另一個鏈上合約中。也就是說,在資產或信息轉移使,不需要用戶跨不同界面進行操作,用戶可以使用源鏈上的單一界面,直到確定交易的終端節點。
某條ICS-27兼容鏈可在其他ICS-27兼容鏈上生成賬戶,並通過IBC交易控制這些賬戶。鏈間賬戶保留了普通賬戶的所有功能,但卻通過IBC由單獨的一條鍊或終端用戶操作,源鏈上的賬戶所有者便可以維持所有目標鏈上的鏈間賬戶完全控制權。
在初始化一個鏈間賬戶交易時,使用IBC發送一個非IBC交易(IBC交易中的非IBC交易)——一個常用來說明此情況的例子就是“郵箱裡一個信封裡的一封信”。
鏈間賬戶交易
IBC交易後的程序按每條鏈需要處理的ICS規格參數進行。也就是說,允許交易從特定應用方式轉為應用不相關方式。換言之——真正支持跨不同網絡的可組合性。
鏈間安全
鏈間安全允許一條鍊或是一個Hub為其他鏈生產區塊。驗證者運行兩個(或兩個以上)節點,每個鏈上一個節點,但只需要在主鏈上質押他們的原生代幣。跨鏈驗證是一個IBC級協議,它讓這一切得以實現。子鏈使用IBC與主鏈通信,記錄那些驗證者使用跨鏈驗證參與鏈間安全。通過這種方式,通過主鏈上鎖定的質押價值獲得的安全可以與子鏈共享。如此一來,消費/子鏈從主鏈獲得安全,不需要啟動自己的驗證者集。這讓一些輕資本應用可以輕鬆啟動自己的鏈,同時保留從已有驗證者集獲取的高安全水平。
主鏈負責為子鏈集生產區塊。驗證者將從所驗證的鏈獲得質押獎勵。削減工作量有助促成無驗證者惡意作為的局面。
論斷
特定應用區塊鏈支持我們所謂的區塊空間“倉儲”。如果你查看一個供應鏈區塊鏈棧,那麼此棧上不同部分的區塊空間嚴格說來是被棧所在鏈/層上應用“購買”了。也就是說,應用支付了gas費,但眾多不同的應用都擠在同一個區塊空間,導致嚴重擁堵和競爭,最後推動費用上升。這種因數千應用居於嚴重擁堵的單一鏈而導致的費用激增給終端用戶帶來壓力,他們必須忍受高昂費用。在一個特定應用鏈上,應用本身可以更好控制費用,費用由終端用戶支付,允許終端用戶將費用設為常數保持不變。 Osmosis就是一個很好的例子。針對想完全擺脫激增費用結構的應用,它還支持費用補貼。例如,一個應用程序可以申請特定時間段的平均費用補貼,不必擔心嚴重擁堵帶來的費用激增。
也就是說,應用擁有自己的倉儲,而不依賴於租用某鏈某角落的一個托盤。
區塊空間倉儲(圖中前者為特定應用倉儲,後者為單一鏈倉儲)
既然應用不依賴某條鏈作為倉儲,似乎意味著應用要承擔平均費用風險,就像店舖有庫存風險一樣。也就是說程序自身及其擴展——社區——可以參與並實施庫存風險管理。這有助於資源定價效率,促成更好的應用經濟模型。
因為應用是其所在鏈的所有者,所以允許費用結構自治,這便意味著你不再受制聽從於所在區塊鏈,你可以決定自己鏈上資源的花費。
除此之外,底層技術棧帶來的靈活性允許應用層最優化,同時保留源於原生跨鏈信息系統的這一廣闊生態系統內的鏈間可組合型。這種可組合性不要求第三方信任假設,允許兩個鏈的驗證者集通信作為信任假設。
在Cosmos盛行之前,應用和基礎設施(鏈)之間有明顯區隔,使用IBC的特定應用鏈打破了這種阻礙,允許應用成為相互連接的可組合的基礎設施。
原文鏈接:https://maven11.substack.com/p/the-application-specific-chain-thesis