2019 年 6 月 30 日,IRISnet 創始人 &Cosmos; 中國負責人 Harriet
在一塊鏈習社區《區塊鏈技術公開課 100 講》線上直播專欄分享了主題爲《深度剖析 Cosmos 跨鏈技術 ——用 Cosmos SDK 和 iService
開發複雜分佈式商業應用》的演講,本文爲此次直播演講的全部內容覆盤。

首先 Harriet 介紹了 IRISnet 是專注於提供跨鏈服務的跨鏈樞紐。而且 IRISnet 團隊也是 Cosmos 中國的開發者,從 2017 年就參加了 Cosmos
SDK 的開發,大家經常會說 IRISnet 是中國最懂 Cosmos 跨鏈技術技術的團隊了。

Cosmos 對業界有三個非常大的貢獻,其中第一是 Tendermmint,就是今天晚上會跟大家介紹的 Cosmos SDK,還有跨鏈通訊協議,inter-blockchain communication,這也是 Cosmos SDK 當中的一個重要模塊。

因爲是面向開發者社區的分享,Harriet 還介紹了 Cosmos
SDK 的一些核心模塊,包括 Tendermmint、IBC、iService。iService 就是 IRISnet 的跨鏈服務,可以用它來開發複雜的分佈式商業應用。

區塊鏈應用開發的方式

是如何演進的呢?**

大家比較熟悉的是比特幣的網絡,在比特幣的網絡的代碼庫中,還提供了一些重要的功能支持,包括對於 UTXO 賬戶、payments 的支持,還提供了一個 script 語言能夠支持書寫邏輯,當然底下的共識是基於 PoW 來支持分佈式共識的達成。

在對比特幣的這一代網絡當中,如果大家想要對於網絡有一些新的功能想要進行改進的話,它沒有提供一個非常靈活的開發接口,所以唯一的方法就是分叉,就是拿來代碼了以後,重新開啓一個新的項目再進行開發。

後來以太坊出現了,以太坊提供了圖靈完備的 EVM (虛擬機),在虛擬機上也是能夠支持用 Solidity 語言完成智能合約的開發,讓大家可以開發 DApp,跑到以太坊上。

但是 Solidity 有很多的限制,非常容易出安全的故障,同時以太坊性能也有瓶頸。安全、共識基礎設施都由以太坊提供的,所以跑 DApp 需要給以太坊礦工交 gas
fee,運行 DApp 有成本。

而 Cosmos SDK,就能很好的解決的第 1 代第 2 代區塊鏈對於開發者的一些困難,Cosmos
SDK 開發工具包是非常模塊化的,也具有很強的可擴展性,它允許用在程序員中很熱門的 Golang 語言來開發,還提供了一個非常高效的共識引擎 Tendermmint,讓我們不用擔心底層複雜的共識如何來實現,更好地專注於解決業務邏輯問題。



爲什麼要使用

Cosmos SDK?

首先 Cosmos
SDK 可以讓開發者自己開發完全可控的商業區塊鏈,完全可控的意思就是擁有自己的治理。而且運行業務邏輯時也不用像第 2 代智能合約的系統,需要付給提供安全治理的底層 gas
fee,成本也會更低。

同時 Golang 語言比 Solidity 友好很多,現在 Cosmos SDK 也完全開源。同時 Cosmos
SDK 非常模塊化,允許在開發自己的區塊鏈的時候,可以非常靈活地選擇所需要的模塊,定製化的開發自己的應用,同時在開發過程中也可以貢獻模塊。

Cosmos SDK 開發的區塊鏈具有這個圖示的一些特點,首先它是非常先進的 Proof of Stake (權益質押證明)的區塊鏈。Cosmos
SDK 帶的共識引擎 Tendermint 是在 2014 年被 Cosmos 創始人 Jae 發明出來的。

Cosmos 自開源以來,已經經過有近百個項目使用和驗證,其中包括很早的 Oracle 的聯盟鏈、今年上線的比如 Cosmos Hub、IRIS
Hub 這樣的大公鏈、還有幣安的去中心化交易所使用的幣安鏈,都是用 Cosmos SDK 開發的。

Tendermint 也是現今被應用證明驗證後,達到了商業級別拜占庭容錯的共識引擎。

Tendermint 的共識引擎效率非常快,像現在已經上線了幾個大公鏈 Cosmos Hub 和 IRIS Hub 的平均出塊時間是在 6 秒鐘左右。

基於 Cosmos SDK 的幣安鏈是專門做去中心化交易所的,採用了更少的節點,出塊速度被設置成小於一秒,支撐百數量級的 TPS 是完全沒有問題。

在聯盟的環境下,在更少的節點的時候,Tendermint 也是可以支持千數量級的 TPS,也是目前運行最高的一個實時確認的區塊鏈。同時 Cosmos
SDK 帶有 IBC 跨鏈通訊協議,可以支持異構網絡之間的互操作。

Cosmos SDK 開發出來的區塊鏈可以自己直接支持 IBC,也爲後期按照需要介入跨鏈生態提供了非常好的幫助和支持。

Cosmos SDK 是一個非常通用的開發框架,基於 Cosmos SDK 的 Cosmos Hub 和 IRIS
Hub 公鏈可以允許節點在沒有許可的情況下就可以加入,任何節點加入都可以參與共識。

Cosmos Hub 和 IRIS
Hub 現在定義的活躍節點數是 100 個,前 100 個具有最高投票權的節點就可以參與出塊,後續的一些節點沒有達到前 100 的在候選狀態。當前面的 100 個節點當中,如果發現發生任何投票權的變化以後,後續節點就有可能會補上。

Cosmos
SDK 也可以支持開發聯盟鏈和私鏈,這個模塊裏面可以非常方便地去配置共識節點,它的投票權你可以定義爲一樣的。一些相關的公鏈所需要的 PoS 模塊,在聯盟鏈裏你也可以不要,所以打造聯盟鏈也是會非常方便。

區塊鏈承載了大家對於下一代價值互聯網的很多期待,然而在 Cosmos
SDK 出現之前,其實區塊鏈來支撐複雜的商業應用是有着許多侷限性的。其中大家經常會談及,在 2017 年年底,加密貓這樣的一個簡單的 DApp 應用,都會讓以太坊造成阻塞。

這主要是因爲在一個分佈式的環境裏面,會經常遇到的一個挑戰是如何去解決安全、性能和去中心化的挑戰,而 Cosmos
解決這樣的問題的思路就是,也許我們不需要一條大公鏈來解決所有的問題,未來更可能是百花齊放的區塊鏈互聯網。

在這個百花齊放的區塊鏈互聯網裏,各個應用鏈專注於解決一定的並不是全部的業務需求,通過跨鏈樞紐來完成互聯互通,就像這張示意圖裏面的應用專有鏈就是 Zone,也可以把它叫做分區,會有專門的鏈來承擔鏈與鏈之間的互操作,這就是跨鏈樞紐,叫做 Hub。

通過這樣的一種方式把複雜的問題分而治之,纔會在這樣的一種跨鏈樞紐和獨立專有鏈結合的方式下,大家一同協作來解決區塊鏈中安全、性能和去中心化的不可能三角形。

Cosmos SDK

核心模塊的介紹

Tendermint**

**


在 Cosmos
SDK 裏面最爲重要的也是放在覈心的就是 Tendermint 共識引擎,它是一個非常成熟先進的拜占庭容錯的共識協議和網絡協議,而且它大大地提升了 BFT 的共識效率,是現在唯一商用級別的一個共識引擎。

Tendermint 是 2014 年由 Cosmos 的創始人 Jae
Kwon 開發的。當時他參與了比特幣網絡的開發,而且很早在那個時代他就開始思考,因爲 PoW 網絡低效以及對環境不友好,所以他對於 PoS 就很早就開始進行了探索。

Tendermint 具有一個非常好的特性,叫做 instant finality,就是及時確認,也叫一塊最終性。

不像很多 PoW,當出塊的時候,其實並不是最終塊,必須要等到一定的數量,比如 6 塊以後,才能確定現在是不是在一個最長鏈上,而 Cosmos 的及時確認性是隻要一塊區塊出來了,它的狀態就已經是最終的了,我們就可以認定這是一個可信的不可逆轉的區塊。

Tendermint 是一個非常好的可以解決網絡性能的共識引擎,包括現在一直在談的以太坊 Casper 的升級,就是從 PoW 升級到 PoS 的設計,也是借鑑了很多 Tendermint 的前期工作。

在 IRISnet 現在上線的公鏈中,有 100 個驗證節點,之前在跑測試網的時候最高也在全球跑了超過 300 個節點,還能夠非常高效的完成全球化的去中心化共識。

綁定權益證明 BPoS**

**


基於 Tendermint 共識引擎模式,Cosmos 給業界還一個非常重要的貢獻,就是對於 PoS 權益證明的一些創新,我們把它叫做綁定權益證明 BPoS,它的功能是在 Staking 模塊當中實現的。

在 Cosmos
模塊裏面,已經有了非常多的基礎功能來支持權益抵押、罰沒機制。可能大家也看到了一個新聞,就在 Cosmos 的網絡上面,由於主機和備機的一個問題,結果造成了雙籤,節點遭到了懲罰,罰掉了 5% 的通證。

在 Staking 的模塊裏面,它允許我們自定義激勵機制,來支持自己的應用專有鏈所需要的安全特性。

Cosmos 的 BPoS 是一個非常去中心化的安全的 PoS,也是現在看到的最大程度的去中心化網絡,因爲它還有 Delegation (代理委託機制)的機制。在參與了 Cosmos 網絡和 IRIS 網絡的同學們都會對 Delegation 有所體會。

作爲每一個通證的持有者,如果你不想跑一個節點的話,你也可以把你的通證委託給給節點,這樣你的通證也能夠參與到網絡的安全驗證當中來。**

同時也可以非常靈活地進行轉委託,如果你覺得可能另外一個節點更加符合你的期待,在這種程度上也可以讓普通的用戶更大程度地參與到網絡的安全治理當中去。

BPoS 和 EOS 的 DPoS 有很大的一點不同,就是通證是綁定在網絡上的,這也就是我們常常說的 skin in the game (利益共享)。
當出塊的時候,可以享受出塊獎勵,但是同時參與網絡治理的時候也要承擔相應的風險。

大家經常有些不太熟悉 Cosmos 和 IRISnet 的同學有時候經常會在問,現在缺省的解綁期時間是 21 天,爲什麼會有那麼長的解綁期?因爲這個設計主要是爲了能抵禦長程攻擊。

鏈上治理**

如果大家對有些參數,有不同的一些想法,覺得網絡有更好的支持方式的話,那麼這些參數也是可以通過鏈上治理,非常方便地進行調整。
**鏈上治理可以通過鏈上 proposal 的系統進行。

現在的 proposal 系統有支持文本提案、自動鏈上參數修改、軟件升級。自動鏈上的參數修改和軟件升級已經在 IRISnet 上面部署了,在 Cosmos 的網絡當中或許應該也會加上。

像最近在 IRISnet 上面,網絡節點們就會對於鏈上參數包括對於驗證者節點投票。對於在線時長或者是像 DoubleSign 情況下的一些懲罰機制,IRISnet 也做了一個提案,呼籲驗證節點們能夠給予支持。

如果投票通過的話,那麼這些新的參數就會自動在鏈上會得以實施,而不會終止網絡服務。詳細鏈接請查看:IRISnet 首次鏈上參數治理投票,開啓自進化時代

BPoS 是一個動態的流動性的民主權益,因爲只要自己的通證參與質押,就可以參與到投票當中來。這要稍微說明一下,雖然現在網絡底層實際上是支持每一個通證的持有者,只要把通證質押在網絡上就能夠投票,但是客戶端現在還沒有這個功能。

預計應該是會在 7 月底或者 8 月初的時候,客戶端錢包也就會添加新功能,讓每一個通證的持有者,通過移動錢包也能來參與到投票治理當中來。

獎勵和費用**

**


Cosmos SDK 當中還有一個重要的模塊,也是開發者可以定製的模塊,我們稱之爲 Rewards & Fees (獎勵和費用)。

像在 Tezos 這樣的網絡,大家參與到質押以後獲得的出塊獎勵,實際上是沒有辦法在鏈上直接完成分配的,而在 Cosmos SDK 中已經寫到 Rewards &
Fees 的模塊中,每一個獎勵都是在鏈上進行計算的,在每一塊都能夠完成這個獎勵的分配,所以也是一個非常安全的特性。

大家可能要問究竟要用什麼樣的通證來支持?因爲是本來就是跨鏈網絡,所以一上來這個賬戶系統就是多代幣支持的,這樣可以提升用戶的體驗。
用戶可以使用任何數字資產,只要這個通證是被你的網絡裏面定義成爲白名單的通證,那麼它就可以作爲費用通證。**

跨鏈通訊協議(IBC)**

**


大家有時候會經常問:我如果把通證質押在網絡上了,如果節點跑路了,那麼我的通證會不會丟?其實答案是不會丟的。因爲所有的獎勵是每一塊都進行了計算,而且結果都已經在鏈上自動執行了。

最爲讓人期待的是 Cosmos SDK 模塊的進展,是現在處於開發重的 IBC 模塊,也就是 Inter Blockchain
Communication (跨鏈通訊協議),它讓區塊鏈的互聯成爲可能,可以實現不同區塊鏈之間的通證或者是數據的傳遞。一定要注意,這裏面是通證或者數據的傳遞,而不是交換。

IBC 是水平擴容和互操作的基礎,更專注的是一個通用的基礎協議,是類似於 TCP/IP 的基礎協議。IBC 現在的狀態是已經完成了協議的設計,正在開發原型中。IRISnet 團隊現在也在盡最大的努力,希望能夠在夏天結束之前,能夠完成 IBC 的原型實現。

模塊化的應用專有鏈示例**

Cosmos Hub:**跨鏈樞紐**

剛纔談到了 Cosmos SDK 當中的一些核心模塊,那麼用這些 Cosmos
SDK,如何能夠通過組合這些核心模塊,甚至在模塊化的開發接口之上,再繼續開發自己的業務邏輯?在此就給大家介紹幾個應用專有鏈的事例。

首先是 Cosmos Hub。當大家在談到 Cosmos
的時候,其實如果要嚴格一點來說的話,它的含義是多重的。Cosmos 可以泛指整個什麼生態,它包括樞紐、應用的分區鏈(zone),這些區塊鏈的彼此都是相互獨立的區塊鏈。

而在 Cosmos 大生態當中。第 1 個跨鏈樞紐就是 Cosmos Hub,Cosmos Hub 是今年 3 月 14 號上線的,它用了 Cosmos
SDK 當中的核心模塊,包括治理、Staking。Cosmos Hub 當中的治理有提案、Staking、Slashing、IBC 以及獎勵和費用的分配模塊。

Cosmos SDK 可以讓我們非常方便地去打造其他的應用專有鏈,其中一個例子是 Ethermint,Ethermint 取用了 Cosmos
SDK 當中 Staking 和治理的模塊。

同時它還新增了開發的一些模塊,比如對於以太坊的虛擬機兼容的 EVM 模塊,通過 EVM 支持共享安全機制(shared security)。

這樣的話,大家可以用智能合約和 Solidity 開發 DApp,底層用的是非常高效快速的 Ethermint 作爲共識引擎,Ethermint 也是用來支持以太坊擴容的一個非常好的方案,它是一條以太坊兼容的應用專有鏈。

IRISnet (IRIS Hub):**跨鏈服務樞紐**

IRISnet,也可以把它叫做 IRIS Hub。它是一個跨鏈服務樞紐,圖中用紫色顏色標出了 IRIS
Hub 裏面一些特有的定製化的模塊。其中最核心的就是這一個 Microservices (基於服務的基礎設置)。

IRIS
Hub 打造了支持面向服務的區塊鏈基礎設施,能夠去支持集成各種異構系統的計算服務,能夠支持集成包括公有鏈、聯盟鏈、甚至現有的傳統企業信息系統,它不僅支持通證在一些異構系統當中進行傳遞,也更能允許像數據和複雜計算等更復雜的服務形式被跨鏈使用。

除了 Microservices 以外,另外在 IRIS
Hub 上面,還有其他的一些定製化或者一些升級的開發,其中有包括更復雜的在線治理、參數的自動更新,還有一點很重要,即 IRIS
Hub 一直是一個可自進化的 BPoS 網絡。

其中一個很重要的功能就是軟件升級,通過軟件升級可以讓網絡在不分叉的情況下能夠繼提供服務,同時還能夠非常安全地根據社區決議的結果,來執行究竟是否要加載新的功能。

IRIS
Hub 現在還有一個讓大家感到非常興奮的消息,就是已經完成了多資產管理的模塊,這個模塊即將上線 IRISnet 的 nyancat 彩虹貓測試網。通過多資產管理,大家發行三種資產,包括原生資產、網關資產,還有包括 IBC 所支持的跨鏈資產。

有了這個多資產管理的模塊以後,也能夠讓 IRISnet 打造現在大家都非常關注的 DeFi (開放金融)應用。在 IRISnet 的彩虹貓測試網上面,我們將會對資產管理進行測試網的測試,也歡迎社區當中愛好技術的小夥伴參與到 IRISnet 測試網中,IRISnet 對於測試網的參與者也都會給予感謝和獎勵。

前文提到 Cosmos 的三個最重要的貢獻是包括 Tendermint、Cosmos
SDK 以及 IBC 就跨鏈通訊協議。其實對於跨鏈問題,在這幾年大家也非常的關注,IRISnet2017 年就開始參與了 Cosmos SDK 的開發。

跨鏈爲什麼會這麼難?

Harriet 表示,在 2017 年,很多人都會覺得跨鏈是僞命題,經常有人在問她,跨鏈有什麼用?有什麼意義?到了 2018 年大家倒是都認可了,跨鏈是一個非常重要而且有創新性的領域,這時候就會經常會被問到是什麼時候上線?

也有人覺得很詫異說,跨鏈很難嗎?在交易所裏面,如果要把以太坊換成比特幣,已經在完成了跨鏈的功能。所以接下來,Harriet 跟大家分享了一下,

首先,就是要求資產的信息從一個網絡可信地傳遞到另外一個網絡,而且是在去中心化分佈式的複雜網絡環境中,信息有可能丟失,也會有很多不可信的拜占庭因子進行主觀或者非主觀的作惡,
所以如何保證區塊鏈接受另外一個鏈的信息是真實可靠的?**這是需要解決的第 1 個難題。

第 2 個難題就是如何通過分佈式共識,能夠實現交易的一次性?也就是不能夠雙花,不能 double
spending。這在一條鏈上去進行共識已經是一個難題了,而跨鏈問題就是更加增加了複雜度。

比如說我們如果把比特幣從自己的網絡轉到另外一個時候,經過了這麼多的 hub 和 zone,怎麼樣能夠保證在整個生態中的資產跟原來原生鏈上的正確資產數保持一致?


另外一點就是如何保證進程的原子正確性,就是交易要麼成功要麼失敗。如果我們現在進行一筆跨鏈交易。

比如以太坊通過 Cosmos Hub 發到 IRIS
Hub 上一筆資產,萬一中間有信息包的丟失,或者出現任何失敗的時候,怎麼保證這個交易還能夠進行取消?而且尤其是這些鏈的一些共識機制都有可能不一樣,這在去中心化的環境中都要進行解決。

現在大家一般討論的跨鏈技術可以分成三種,第 1 種叫公證人機制,它的英語名字叫做 Notary
Scheme,其中最具代表性的就是 Ripple 提出的 Interledger 協議,
簡單而言就是通過密碼學的方式提供了一個第三方託管來完成不同賬本和賬本間的轉賬

具體而言就是假定區塊鏈 a 和 b 本身是不能直接互操作的,那麼就引進一個共同信任的第三方作爲中介,由這個中介來進行跨鏈消息的驗證和轉發。

公證人機制的優點是在於它可以靈活支持不同結構的區塊鏈,但是也有缺點,它一般是會採用一種類似聯盟的形式,也會存在中心化的風險。**

第 2 種是哈希鎖定技術,主要支持跨鏈中的原子性,最早起源於比特幣。哈希鎖定也叫作 Hashed TimeLock
Contract,哈希鎖定的原理是主要通過時間差來達到原子的資產交換。

但是嚴格意義上面來說,其實哈希鎖定只是做到了資產的交換,但是並不能夠做到資產或者信息的轉移。

還有很重要的就是側鏈和中繼鏈技術,側鏈技術最早的代表是 Blockstream。

側鏈是指的完全擁有主鏈功能的另外一條區塊鏈,側鏈可以去讀取和驗證主鏈上的信息,而中繼鏈是和公證人機制的一個結合體,中繼鏈具有訪問、需要和驗證鏈進行互操作的關鍵信息,並對兩條鏈的跨鏈信息進行轉移。
Cosmos 就是對於中繼鏈和側鏈技術進行了優化,形成了 IBC。

談到跨鏈,大家經常有不同的理解,就是有些人提到的交易所實現了跨鏈,只不過是箇中心化的跨鏈。其實這個在嚴格意義上它只是一個跨鏈資產交換,而並不是我們所談到的通用跨鏈通訊協議,但是 IBC 實際上是可以支持跨鏈資產交換的。

跨鏈 IBC 其實是可以實現的一個場景,就是大家經常談到的去中心化交易所,這就是它互操作性的體現。還有 Ethermint,它也可以通過跨鏈帶來擴容的能力支持。

Cosmos IBC/

Tendermint**

像這張圖裏面可以看到的是,如果在以太網上跑不動的應用,那麼就可以把 ETH 轉到 Ethermint 分區當中來。而 Ethermint 可以提供更爲高效的執行速度,部分應用其實就可以跑在 Ethermint 上面。

另外還有治理、安全的問題,如果我們企圖在一條大公鏈上來解決治理和安全的問題,那麼它是具有很大的複雜度的。如果在一個應用專有鏈上解決治理和安全的問題,也就會更加容易能夠去解決了。

Cosmos
在一開始就採用了非常開放的架構,所以每一個鏈在完成關聯交易處理時,還可以通過多樞紐來協作。像現在從一上線開始,IRISnet 就設計了這樣的雙樞紐架構,有 Cosmos
Hub 和 IRIS Hub 可以互相協作。

當一個 hub 出現問題時,另外一個 Hub 也可以進行跨鏈功能的補充和支持,所以互操作、擴容、治理和安全,這就是跨鏈協議可以支持的非常重要的一些功能。

Cosmos/IRISnet 和

Polkadot 沒有競爭關係

談到跨鏈,大家總要問 Cosmos 和 Polkadot 究竟誰優誰劣,其實是沒有競爭關係的。跨鏈還是一個非常創新的領域,所以可以看到的是大家在進行不同的嘗試。

其中最核心的差異,就是安全治理的實現。*Cosmos 是獨立治理(Independent
Security)的機制,而 Polkadot 所實現的是叫做 Shared Security (共享安全治理)。
*

在 Cosmos 中,每一條鏈都是獨立自主的,不依靠樞紐就能夠完成自己的業務功能。*Polkadot 中有一個重要的角色叫 Relay
Chain (中繼鏈),這個就相當於 Cosmos 當中 hub 的地位。
*

而其他的一些應用鏈叫做平行鏈(Parallel Chain),而這些平行鏈是需要中繼鏈來驗證的。**

所以有些社區小夥伴也總結,感覺 Cosmos
更像安卓系統,每一條鏈都有更強的定製開發空間。而 Polkadot 更像 iOS,底層安全都是通過中心化的中繼鏈來提供,這樣也可以讓開發者上手,不需要自己維護驗證者節點和治理共識。

所以如果應用比較輕的話,用三個月就可以讓開發者快速上手,不需要自己維護驗證者節點和治理共識。所以如果應用輕,可以用 Substrate 開發平行鏈。

如果應用重,有定製化需求,Cosmos
SDK 提供了非常好的開發基礎。而且像 Cosmos 這種獨立自主的特性可以支持多個樞紐,不像 Polkadot 只有一箇中繼鏈爲它提供安全驗證。

所以像現在 Cosmos Hub 和 IRIS Hub 可以彼此協作,加強安全支持,互爲備份。這樣一個多樞紐也爲跨鏈生態的繁榮帶來了無盡的想象力。


IRISnet 跨鏈服務 iService

在 IRIS
Hub 這個跨鏈服務樞紐中,其中也有着自己的創新開發,包括軟件升級,但是最爲創新的部分就是跨鏈服務 iService 的實現。如圖所示,IRIS 代碼庫中的 SDK,包含了 Cosmos
SDK,也增加了 iService 模塊。

iService 模塊有着對服務的基礎支持的交易類型,這些交易類型支持大家非常方便的去定義自己的服務、綁定自己的服務到提供的一個地址上。同時我們對 IBC 和
relay 都進行了擴展支持服務信息的跨鏈可靠傳遞。

iService 還有一個靈活性就是它並不依賴於 IBC,圖中最右邊的系統不是基於 IRIS iService 的技術開發的,那麼他們可以直接通過 IRIS
Hub 所提供的服務接口,把其他的一些公鏈,甚至是中心化的一些傳統的商業系統,也通過 iService 接口,把它的定義發佈在 IRIS Hub 上面,這樣在 IRIS
Hub 的生態當中的其他應用專有鏈就可以通過 iService 的調用接口,來可信地調用這些服務計算了。

這裏是一個服務跨鏈調用的示例,假定右邊的區塊鏈裏面有一個服務提供商,它提供了天氣查詢的數據服務,這時候在這個服務定義中就會有調用期待參數,比如時間、地點,
這個服務定義會有服務綁定的地址,這個服務定義指定了是個跨鏈服務。

這時候在右邊的區塊鏈上面,有一個客戶端如果想要獲取這樣的一個天氣信息的查詢,那麼就可以通過已經定製好的 transaction
type,通過這個服務調用的交易類型,把自己的需求,比如說“上海”、“6 月 30 號”這幾個參數傳進去,通過裏面一系列的 transaction
,傳遞到目標鏈裏面。

同時,Service provider 在完成了鏈下計算以後,把信息通過 PostServiceResponseTx 的交易類型發回在鏈上。

而其中,不管是作爲服務的提供商還是服務的客戶端,他們其實都不需要知道這個服務究竟是在本鏈還是在鏈外的,因爲當這樣的一個跨鏈的請求發佈到了鏈上的時候,Relay 會進行監聽。

如果這個服務請求不在本鏈,那麼它就會把信息給擺渡到目標鏈上去,同時讓目標鏈上的服務能夠正確執行。

比如圖中左邊鏈的客戶端向自己所在鏈發起服務請求,這個服務請求被 relay 監聽到後,會擺渡到右鏈。

跨鏈應用場

所以有了跨鏈服務了以後,開發者就還有另外一個更加高層次的模塊化開發接口。

上圖也顯示了一下 IRIS
Hub 現在正在跟生態合作伙伴進行協作開發的一些分佈式應用,比如說像 BEAN 就是專注於數據隱私保護的醫療數據分析和交換網絡,由於治理的需求,BEAN 需要是個聯盟鏈。

在這個網絡裏面,大家可以在 IRIS Hub 中享受 PlatON 提供的隱私服務計算。IRIS
Hub7 月份將會上線的多資產支持,也會對於 DeFi 進行支持,Axonomy 將會發布自己的原生資產。

同時 IRISnet 也會有網關,會把一些穩定幣、比特幣和以太坊發佈在 IRS Hub 上,能夠供 DeFi 應用來完成理財,或者是投資等 DeFi 應用場景。

點擊閱讀原文了解更多好課