軟硬核:徹底讀懂 Cosmos 如何一鍵發鏈與萬鏈互聯

買賣虛擬貨幣

鏈聞ChainNews

公眾號ID:chainnewscom

我們只能自造「軟硬核」這個詞彙來描述這篇文章的特點:首先,這是一篇實打實的關於 Cosmos 硬核技術的全面解讀;但是,它卻把極「硬」的技術和理論,用易懂的語言深入淺出地進行了拆解,化「硬核」於柔掌之中,保證你充分理解。

Cosmos 主網上線會是區塊鏈世界的一件大事,關於其意義,可以參考著名區塊鏈投資機構 1confirmation 創始人 Nick Tomaino 撰寫的文章:「Cosmos 的前世今生、未來前景和投資價值」

今天推送的這篇文章,用作者的原話則是:從 Cosmos 最小的細胞結構講起,直到講清楚它是如何以這一結構為基礎實現龐大的宇宙圖景。而「cosmos」這個單詞的本意正好是「宇宙」的意思。

Enjoy reading

撰文:李畫

致謝:IRISnet 創始人 & Cosmos 中國 Harriet Cao

跨鏈是區塊鏈正確的發展方向嗎?萬鏈互連是區塊鏈未來的落地圖景嗎?不知道。人們都在觀望。

不過,最少有兩個標本可供觀察:Cosmos PolkaDot

Cosmos 在 3 月 14 日的早 7:00 啟動主網,它是以伯克利的 Tendermint 團隊為核心團隊開發的跨鏈專案,要實現兩件事情:第一件,是讓公鏈開發變得簡單;第二件,是讓所有的鏈能夠連線起來

它是如何完成這兩件事情的?以這兩件事情的實現為基礎,Cosmos 希望構建出怎樣的區塊鏈世界?它的跨鏈生態目前的進展如何?本文將逐一解答這些問題。

Cosmos 的工作原理

讓我們透過分析和拆解公鏈的結構,來清楚地理解 Cosmos 是如何把複雜的公鏈開發變成一件容易完成的事情。

一條公鏈從底層至上層可以粗略地被分為三個部分 如下圖所示

  • 網路層:底層的資料結構和通訊協議的設計。

  • 共識層:共識機制的設計。

  • 應用層:具體業務邏輯的設計。

一部分公鏈的設計目的是為了對公鏈這種基礎設施本身做出改進,比如以太坊、Nervos、Conflux 等等,它們是需要在網路層、共識層、應用層上都進行思考和建設的

但其他絕大多數的公鏈是為了解決具體的應用需求而存在的,它們是要解決自己的業務問題,而不是解決公鏈的問題。也就是說,它們實際上不用關心網路層和共識層,只需要設計為自身業務邏輯服務的應用層即可。

基於這一思路,Cosmos 把網路層和共識層設計好並封裝起來,提供給公鏈開發者使用,在這種情況下開發者就只用考慮應用層

被封裝起來的網路層和共識層叫「tendermint core」,應用層呼叫 tendermint core 的介面叫「ABCI Application Blockchain Interface」。透過 ABCI 介面,應用層與共識層、網路層組成一個可以協同工作的完整的公鏈系統。整個系統,可以用下圖展示:

到這一步,Cosmos 把開發一條公鏈的工作減少為設計一個應用層的工作。但 Cosmos 並沒有就此打住,它繼續「切分」應用層

應用層需要實現一系列的功能來完成最終的業務邏輯,不過這些功能中有很多是可以通用的,比如賬戶管理的功能,Cosmos 把這些功能分解出來,再以模組化的方式加以實現

這樣一來,開發者在進行應用層開發時,只需要實現自身業務邏輯中特殊的功能,其他的功能都可以直接呼叫 Cosmos 的功能模組。

如下圖所示,Accounts、Governance、Staking、Slashing 等均是功能模組,能夠以「插拔」的方式被組合到一起使用。

Cosmos 把自己提供的這一模組化開發工具叫做「Cosmos SDK」,它覆蓋了應用層需要實現的大部分的功能,到這一步,Cosmos 把設計一個應用層的工作減少為實現少數具體的功能模組的工作。

最終,如下圖所示,透過對公鏈的分層設計以及對應用層的分模組設計,開發者能夠以 tendermint 共識引擎和 Cosmos SDK 開發工具為基礎,快速地完成公鏈的開發。他們不再需要設計整條公鏈,而只需要實現核心的業務功能。

正因為這樣,幣安可以在較短的時間內迅速基於 Cosmos 的開發工具和共識引擎,開發完成應用方向非常聚焦的「Binance Chain」,並基於 Binance Chain,開發出幣安去中心化交易所。

Binance Chain 和幣安去中心交易所的具體執行狀況,將會成為檢驗 Cosmos 公鏈開發體系的重要案例。

Cosmos 的跨鏈實現

理解 Cosmos 跨鏈,最關鍵的是瞭解 IBC Inter-Blockchain Communication,即 Cosmos 的跨鏈通訊協議

IBC 定義了鏈與鏈之間的通訊標準,或者說它定義了一種跨鏈結構,具有相同結構的鏈就可以實現互相連通,它允許區塊鏈讀取和驗證同結構的其他鏈上的事件

利用 Cosmos SDK 開發的公鏈天然具備這一跨鏈結構,它們之間從創立之初就可以透過 IBC 實現鏈鏈互動。

那些不是使用 Cosmos SDK 開發,未包含 IBC 跨鏈標準的鏈怎麼連通?方法是使用 Cosmos SDK 為原鏈開發一條「代理鏈」

這條代理鏈既遵守原鏈的通訊標準,可以與原鏈連通;又採用 IBC 標準,可以與其他 Cosmos SDK 開發的鏈連通,從而間接實現了原鏈與 Cosmos 鏈的跨鏈。如下圖所示,右上角的 Ethermint 即是以太坊的一條代理鏈,透過它可以實現以太坊與 Cosmos 鏈的連線。

Cosmos 跨鏈實現中的另一個重要角色是「Hub」,它承擔的是中間樞紐的角色。

以上圖為例,圖中最左側和最右側的 4 條公鏈在沒有 Hub 的情況下要實現連線,就必須在彼此之間新建一條通道,但如果有了 Hub,它們都只需要與 Hub 連線,由 Hub 實現跨鏈的中轉

Hub 本身也是一條公鏈,使用 Cosmos SDK 開發,具備 tendermint 結構;Hub 連線的公鏈以及公鏈的代理鏈被稱作「Zone」,所有的 Zone 都需要實現 IBC 通訊標準。 

最終,如下圖所示,以 IBC 通訊標準為跨鏈的基礎結構,以 Hub 為跨鏈的中間樞紐,Cosmos 實現了鏈與鏈的互聯。

Cosmos 主網,讓跨鏈生態從理論階段進入實現階段

Cosmos 主網是指由 Cosmos 團隊自己開發的第一個官方版 Hub,也就是不同鏈進行跨鏈操作時的第一個中央樞紐。隨著該主網的上線,Cosmos 的跨鏈生態將從理論階段進入到實現階段。

首先介紹大家最為關注的,Cosmos 與其他非 Cosmos SDK 開發的公鏈的連線。

以太坊將是 Cosmos 最先連線的公鏈,目前有兩個專案去實現這種連線: Cosmos 開發團隊主導的 Ethermint 專案,以及由 Loom Network 主導的 PlasmaChain

Ethermint 是一個單獨的 Zone,基於 Tendermint ,並且完全相容以太坊的 web3 介面和 RPC 呼叫方法,其跨鏈實現是:以太坊連線 Ethermint Zone,Ethermint 連線 Cosmos Hub,Cosmos Hub 連線其他遵守 IBC 通訊標準的 Zone/鏈。透過這種連通關係,最終實現以太的跨鏈轉移。

目前 Ethermint 仍在開發中,已經完成了 web3 相容 API 層的部分開發。

PlasmaChain 則是以 Zone 和 Hub 的雙重身份出現,它是以太坊的 DPoS 側鏈。

作為 Zone,PlasmaChain 一邊連線以太坊主鏈,一邊連線 Cosmos Hub,實現以太的跨鏈轉移;作為 Hub,PlasmaChain 可以連線起以太坊的其他側鏈,作為這些側鏈間代幣轉移的中間樞紐。PlasmaChain 將在 Cosmos 主網啟動後完成與 Cosmos Hub 的連通。

接下來,介紹基於 Tendermint 和 Cosmos SDK 展開的,因而天然實現了鏈與鏈互聯的 Cosmos 跨鏈生態。該生態目前已經包含了 100 多個專案。

最被大家熟知的應該是 IRISnet,它由中國的邊界智慧團隊開發,是目前 Cosmos  網路中除 Cosmos Hub 外的最重要的一個 Hub。

IRISnet 對 Cosmos SDK 和 IBC 進行了擴充套件,用以支援公鏈、聯盟鏈以及傳統商業系統之間的整合,使得資料和複雜計算能夠跨異構網路互聯互通,實現服務的跨鏈呼叫 本文將在下一小節詳細介紹 Hub 的這種擴充套件性及其意義

IRISnet 在 3 月 1 日啟動了主網,目前已有 81 個節點成為網路共識的驗證人,當 Cosmos 主網正式啟動後,Cosmos Hub 和 IRISnet Hub 將完成跨鏈生態中的雙 Hub 連結

基於 Cosmos 的另一個著名專案則是上文提到過的 Binance Chain

Binance Chain 是 Cosmos 上的第一個去中心化交易所平臺,不過它對標準 Cosmos SDK 進行了縮減,比如去掉對智慧合約的支援部分,用以更簡單、高效地實現其作為交易所的功能。

在目前釋出的第一版中,Binance Chain 只是作為去中心化的交易平臺來執行,並沒有開通與其他鏈的跨鏈連線和鏈間操作。幣安表示也許要到第二版或第三版才會新增這種功能。

其他的具體專案不再一一介紹,總而言之,基於 Tendermint 和 Cosmos SDK 開發的專案,可以是 Zone,也可以是 Hub,它們都遵守 IBC 跨鏈通訊協議,可以輕鬆實現彼此地互聯。

透過 https://cosmos.network/ecosystem 能夠檢視到這些專案的資訊,這其中包括IOV,它是基於 Cosmos 的第一個分散式區塊鏈 DNS;包括 Kava,它是基於 Cosmos 的第一個跨鏈錢包協議提供者。

隨著 Cosmos 主網的上線,包括 IRISnet 在內的主 Hub 的上線,以及類似於 PlasmaChain 的、用以實現與不具備 IBC 跨鏈結構的公鏈連線的專案的實現,還有本來就基於 Cosmos SDK 開發的專案的上線,Cosmos 將一步步地連線起更多的鏈,不斷擴張其跨鏈生態。

Hub 的潛力

本文的最後一個主題是探討 Hub 的潛力,它在 Cosmos 生態中扮演著重要角色。

試想,有了 Tendermint 和 Cosmos SDK,公鏈的開發從設計實現一整條公鏈變成設計實現多個只與自身業務邏輯相關的功能模組,那麼,開發公鏈的工作還可以被進一步減少嗎?

有了 IBC,不同的鏈在基於相同的跨鏈結構下完成了連通,從而實現了代幣的跨鏈轉移,那麼,鏈鏈互聯還可以完成除了流通代幣外的更多的任務嗎?

答案是可以,透過「定製」Hub

Hub 既可以是類似於 Cosmos Hub 的通用 Hub,也可以是針對具體應用場景或特定業務需求而開發的專業 Hub

這類專業 Hub 可以擴充套件 Cosmos SDK 的功能模組,也可以擴充套件 IBC 的資料介面,這樣一來,當開發者進行這一具體應用場景下的公鏈開發時,便可以直接使用該 Hub 擴充套件後的 Cosmos SDK 以及 IBC 通訊標準。

到這一步,公鏈的開發就只需要實現極少的特殊功能模組,而透過該專業 Hub 連線起來的具有相同 IBC 通訊標準的鏈,可以完成除代幣轉移外的、基於更豐富介面實現的更多功能的連線

上文已經提到的 IRISnet 就是一個典型的例子。

IRISnet 是 Cosmos 在中國的技術和運營合作伙伴邊界智慧作為核心開發團隊,與 Tendermint 研發團隊合作打造的一個 Hub,其目標是成為連結數字經濟和實體經濟的可信「橋樑」,為構建複雜的分散式商業應用提供滿足這種特定需求的公鏈基礎設施

IRISnet 對 Cosmos SDK 和 IBC 協議進行了擴充套件,採用面向服務的設計思想,開發了新的區塊鏈跨鏈服務的基礎設施和跨鏈協議,並提供 IRIS SDK 開發工具和名為「iService」的服務框架。

iService 服務框架定義了一整套商業應用邏輯,或者說標準,提供了服務從定義、釋出、呼叫、治理 分析和爭端解決 的全生命週期的管理。因此,只要採用 iService 服務框架,不僅能夠實現通證的跨鏈轉移,也能實現包括資料、複雜計算在內的跨鏈網路呼叫。  

換句話說,這意味著專有鏈開發者能夠以 IRIS SDK 為基礎,快速開發公鏈或聯盟鏈或應用專有鏈,以 iService 為標準釋出服務,並透過 IRIS Hub 實現與其他鏈的跨鏈互聯,從而實現基於區塊鏈的分散式商業應用。

就像有多個專案基於 Cosmos Hub 開發一樣,作為主 Hub,目前也有眾多專案基於 IRISnet 展開,實現自身的分散式商業應用的需求。

區塊鏈智慧資訊邊緣分析網路「BEAN」是其中之一,它是一個分散式的大資料分析和交換網路,解決了醫療大資料應用場景中處方外配、隱私保護下的醫療資料的可信使用和多方可信互動等問題。同時,IRISnet 也與復星、Hashkey、PlatON 等達成合作,實踐分散式商業應用鏈的落地。

不難發現,透過 Hub,Cosmos 讓自己具備了真正的可擴充套件性,在鏈的功能上以及跨鏈的實現上。隨著更多聚焦於不同主題的 Hub 的開發和上線,Cosmos 將成長為一個包容的、強大的生態。

如何用 30 秒說清楚 Cosmos 是什麼?

講了這麼多,如果只用 30 秒鐘,如何說明 Cosmos 是什麼,以及它是如何實現一鍵發鏈與萬鏈互聯的?很簡單:

  • 透過 tendermint 共識引擎Cosmos SDK,實現公鏈的簡單、快速開發。

  • 透過 IBC 跨鏈通訊協議,實現相同結構下的鏈與鏈之間的可通訊、可互連。

  • 透過 Hub,連線起不同的 Zone 與 Hub,實現 Cosmos 整體的跨鏈生態。

  • 透過定製的 Hub,進一步簡化開發工作和滿足特定領域的開發需求,並實現除代幣跨鏈外的更多跨鏈的可能。

這就是 Cosmos。

參考資料及資料來源:

1.《Blockchain Interoperability: Cosmos vs. Polkadot》,Dave Kajpust

2.《對話 Cosmos:未來是所有人都用一條公鏈,還是每個人都有自己的鏈?》,李陽

3.《Beginner’s Guide to Cosmos: The Tendermint-Based Blockchain Ecosystem》,Brian Curran

4. 基於 Cosmos SDK 的專案資訊,https://cosmos.network/ecosystem

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;