編者按:Cosmos 和Polkadot 都在做互操性協議,他們有何區別呢?一起來了解下。
本文內容僅供參考學習,非投資建議。
推薦:點擊此處加入PANews Discord 學習交流區塊鏈知識。
本文由Cosmos China 中文技術社區翻譯,原文作者為Aditya Ravi Raj。
編譯標題:IBC 與XCMP:互操作性協議對比
我們正在迎接必將到來的多鏈生態。根據定義,多鏈生態催生了對跨鏈通信的需求。雖然跨鏈橋在更廣泛的互操作性方案中發揮著一種資產轉移的特定功能,但這些橋接不足以滿足跨鏈生態對於細微用例的要求。過去幾年間發生的一系列針對橋接的攻擊事件一致表明,具有託管性質的第三方橋接無法提供安全可靠的橋接轉移服務。
目前,我們需要一種通用、無需許可、安全且可擴展的技術,在保持容錯性的同時充當區塊鏈之間的連接組織。跨鏈通信協議(IBC)和跨鏈消息傳遞協議(XCMP)是旨在體現這一跨鏈世界願景的兩種協議。
本文旨在對上述兩種跨鏈通信協議進行全面概述。對於不熟悉IBC 和XCMP 的讀者,下一節內容將對這兩者進行簡要介紹。在此基礎上,本文將這兩種協議進行並列對比,以剖析兩者的異同以及各自的優缺點。
對比將基於安全性、通用性、可擴展性、用戶體驗和開發人員工具的水平。在最後,我們總結了本文的一些亮點。
什麼是IBC?
IBC 是一種允許異構區塊鏈以可靠、有序和信任最小化的方式傳遞任何數據的協議。
IBC 協議的基礎是輕客戶端(light clients)和中繼器(relayers)。通過IBC 進行通信的鏈A 和鏈B 互相具有對方賬本的輕客戶端。鏈A 無需信任第三方,只需通過驗證區塊頭就可以對鏈B 的狀態達成共識。通過IBC(尤其是模塊)進行交互的鏈彼此間不會直接傳送消息。相反,鏈A 將數據包中的一些消息同步至其狀態。隨後,被稱為「中繼器」的無需許可的賬外進程對這些數據包進行檢測,並將它們傳送給目標鏈。
輕客戶端:
https://medium.com/cosmos-blockchain/light-clients-in-tendermint-consensus-1237cfbda104
中繼器:
https://interchain-io.medium.com/ibc-relaying-as-a-service-the-in-protocol-incentivization-story-9922c7b953f0
圖1:IBC 數據包流程圖,來源:ibcprotocol.org
總的來說,IBC 協議可分為兩層,分別是IBC TAO(傳輸、排序與驗證)和應用層。
IBC TAO 對通過其發送的數據包所包含的信息不做任何假設,並且對這些數據包的結構不設限制,它只負責確保可靠、有序和經過驗證的通信。而應用層(即模塊)則負責決定如何解釋數據包。
通過Tendermint 和Cosmos SDK 堆棧搭建的區塊鏈可以快速實現IBC 功能。 IBC 還可以與其他基於UTXO 或Account 模型,並具有概率最終性的區塊鏈進行集成,例如Bitcoin 或Ethereum。
IBC 集成文檔:
https://ibc.cosmos.network/main/ibc/integration.html
IBC 協議是Cosmos 堅持的「區塊鏈互聯網(Internet of Blockchains)」願景的支柱。從這個意義上說,IBC 的設計選擇受到了TCP/IP 規範的影響。與TCP/IP 為計算機通信制定標準的方式類似,IBC 也指定了一組通用抽象,通過將其實現可以允許區塊鏈進行通信。 TCP/IP 對通過網絡中繼的數據包的內容不設限制,IBC 也是如此。此外,與HTTP 和SMTP 等應用協議在TCP/IP 上搭建的方式類似,FT(同質化資產)/NFT(非同質化資產)傳輸或跨鏈智能合約調用等應用實例也將IBC 協議作為基礎層。
什麼是XCMP?
XCMP 是Polkadot 生態的跨鏈通信協議版本。它基於簡單排隊機制,允許一條平行鏈(parachain)與另一條平行鏈進行通信。 XCMP 的特點是有可擔保、信任最小化和有序的消息傳遞,是使用跨共識消息格式(XCM)的傳輸層。顧名思義,XCM 為XCMP 在任意系統之間傳輸的任意數據提供了一種可用格式。換句話說,XCM 是在鏈之間傳遞的消息,而XCMP 是傳遞該消息的方式。
Polkadot:
https://wiki.polkadot.network/docs/getting-started#what-is-polkadot
平行鏈:
https://wiki.polkadot.network/docs/glossary#parachain
跨共識信息格式:
https://medium.com/polkadot-network/xcm-the-cross-consensus-message-format-3b77b1373392
希望與平行鏈B 通信的平行鏈A 開放一個可以唯一標識對方鏈的雙向通道(或兩個單向通道)。平行鏈A 發起一條跨鏈消息,鏈A 的收集人(collator)節點拾取該消息,並將其放入鏈A 的傳出消息隊列中。收集人節點本質上負責維護中繼鍊及其對應的平行鏈的全節點。平行鏈B 上的收集人節點負責掃描所有傳入該鏈的消息。當它偵測到來自鏈A 的消息時,會將該消息放入傳入隊列中。隨後,該收集人節點處理該消息,將其加入一個新提議的區塊(block)中,並發送到中繼鏈進行驗證。一旦平行鏈上的區塊被驗證人成功驗證,該區塊的哈希值就會包含在中繼鏈中。
與IBC 協議類似,XCMP 協議能夠保證信任最小化的消息傳遞,而無需規定接受鏈如何解釋這些消息。執行代碼/解釋邏輯的角色由SPREE 模塊執行。 SPREE(Shared Protected Runtime Execution Enclaves,共享安全區)是WebAssembly 代碼的二進制大對象(blob),通過治理提案上傳至中繼鏈。平行鏈可以決定選擇加入SPREE 模塊所執行的邏輯。 SPREE 在補充XCMP 協議方面發揮著重要作用,因為XCMP 確保消息的傳遞,而SPREE 則確保消息的執行。
SPREE 模塊:
https://wiki.polkadot.network/docs/learn-spree#what-is-a-spree-module
除了XCMP,Polkadot 還具有兩種使用XCM 格式的不同傳輸機制。即向上消息傳遞(UMP)和向下消息傳遞(DMP)。前者負責將消息從平行鏈傳遞到中繼鏈,後者負責將消息從中繼鏈傳遞到平行鏈。 UMP 和DMP 均屬於垂直消息傳遞(VMP)的範疇。
需要注意的是,XCMP 目前正在開發中(儘管XCM 已上線)。目前已作為替代部署的是一種稱為水平中繼路由信息傳遞(HRMP)的協議。 HRMP 從根本上說是不可持續的,因為所有跨鏈消息都必須存儲在中繼鏈上,這使它在存儲和成本方面的資源密集程度很高。 Polkadot 計劃在XCMP 經過實戰測試並準備好交付後逐步淘汰HRMP。
XCM 已上線:
https://thedefiant.io/polkadot-interoperable-multi-chain-ecosystem/
相比之下,IBC 自2021 年4 月發布以來一直投入使用。在此期間,IBC 被大量區塊鏈所採用。截至本文撰寫時,已有46 條鏈通過IBC 協議互連,其在30 天內處理的事務量價值達到了50 億美元。
IBC 鏈:
http://mapofzones.com/
IBC 的先發優勢和XCMP 正在開發中的事實並不會影響對這兩種協議進行比較的範圍。這主要是因為XCMP 的架構和設計(儘管尚未上線)已經確定。
對比IBC 與XCMP
本節討論的是IBC 和XCMP 的優缺點以及兩者之間的異同。在比較這兩個標準時,需要考慮以下屬性:
安全性
通用性
可擴展性
用戶體驗(UI)
開發者工具
鑑於這兩種協議旨在實現相同的互操作性目標,因此兩者之間存在一些共同點。但由於Cosmos 和Polkadot 生態的底層架構不同,且IBC 和XCMP 的某些屬性來自其本身的協議架構,因此兩者之間存在許多關鍵差異。
請注意,由於Polkadot 的互操作性設計,上述一些屬性將更適用於XCM 而不是XCMP。在這種情況下,我們將對兩者區別進行明確定義。從某種意義上說,IBC TAO 層映射到XCMP,而IBC 的應用層映射到XCM。因此,如果不討論XCM,IBC 與XCMP 的對比就是不完整的。
01
安全性
1.1 IBC
在分佈式系統中,安全屬性本質上與信任最小化屬性相關聯。因此,了解區塊鏈的安全程度意味著要了解其信任最小化的程度。
在Cosmos 應用專有鏈生態中,網絡的安全性是由其自身提供的。每條鏈都有自己的驗證人集,因此也有自己的安全模型。上一節中提到,IBC 協議中數據包的驗證與排序是由輕客戶端完成的。從IBC 的角度來看,兩個賬本通過協議進行通信的過程,其實就是雙方鏈上的輕客戶端維護和更新另一條鏈狀態的過程。因此,IBC 的安全屬性歸根結底是輕客戶端的安全屬性。簡而言之,IBC 通過輕客戶端描繪了不同區塊鏈的共識算法之間的交互。
Cosmos 生態:
https://cosmos.network/ecosystem/apps/
也就是說,如果您信任兩條特定的鏈來使用它們提供的功能(以及默認情況下使用它們的共識算法),那麼在通過IBC 在這兩條鏈之間進行交互時,就不需要作額外的信任假設。這就是「信任最小化」這一術語的含義。
值得注意的是,IBC 將在實現「跨鏈安全」(也就是Cosmos 生態版本的「共享安全」)方面發揮重要作用。跨鏈安全功能一旦推出,生態內的區塊鏈將可以選擇自己維護網絡安全、從Cosmos Hub 租用安全性,或同時採用兩種方法(即「分層安全性」)。
分層安全:
https://github.com/cosmos/gaia/blob/main/docs/interchain-security.md
1.2 XCMP
通過使用Polkadot 的共享安全模型,所有平行鏈都能獲得中繼鏈的經濟安全性。一旦平行鏈在Polkadot 中獲得一個插槽(Slot)並經由其連接到中繼鏈,負責維護中繼鏈安全性的驗證人集也會同時維護平行鏈的安全性。這意味著攻擊平行鏈的成本等同於攻擊生態中任何其他鏈的成本,包括中繼鏈。從操作的角度來看,平行鏈只需要維護將狀態轉移證明傳送給驗證人的收集人節點。
Polkadot 的共享安全模型:
https://wiki.polkadot.network/docs/learn-security#shared-security
XCMP 從這種共享安全模型中獲得了信任最小化的特性,其中,中繼鏈的安全屬性保證了消息傳遞的正確性和真實性,而無需信任第三方。由於同一個驗證人集可以保護所有平行鏈,因此XCMP 上的跨鏈通信只需信任一個驗證人集。
但這並不完全代表XCMP 不會強加額外的信任假設。由於收集人節點負責在平行鏈之間發送和接收消息,因此理論上他們也可以對消息進行審查。比如,收集人可以選擇只接收消息但不傳遞。因此,XCMP 增加了額外的信任假設,即至少有一個誠實的收集人節點。
02
通用性
2.1 IBC
IBC 被設計為一種通用的消息傳遞協議。這意味著任何形式的數據(FT 和NFT 轉移、治理投票、智能合約調用等)都可以通過IBC 進行通信。
通過IBC 中繼的數據包可能包含不同的信息,具體取決於它所服務的應用場景。對於資產轉移場景,數據包包含有關其類型、數量、發送方和接收方地址的信息。對於跨鏈治理場景——鏈A 上的賬戶可以為鏈B 上的提案投票——數據包包含投票信息。對於「跨鏈帳戶」管理場景,數據包包含所傳遞消息類型的相關信息。通過IBC 發送的數據包還可以包含有關某個驗證人集的構成及其投票權重(voting power)的信息。這是IBC 為跨鏈安全執行的功能之一(用於實現跨鏈安全的特定IBC 級協議稱為「跨鏈驗證」)。
了解「跨鏈賬戶」功能:
https://interchain-io.medium.com/welcome-to-the-ibc-gang-lets-talk-f469883e0ffe
幾乎所有上述IBC 的應用都由使用IBC 網關服務的各種跨鏈原生產品實現。例如,Osmosis 和Crescent 網絡都擁有利用IBC 進行跨鏈資產轉移的去中心化應用平台。 Quicksilver 協議是Cosmos 鏈通過跨鏈賬戶功能實現在單一平台內為不同鏈上的提案進行投票的實例之一。 Osmosis 和Quicksilver 也準備成為首批應用「跨鏈安全」功能的鏈。
2.2 XCM 和XCMP
鑑於XCMP 充當傳遞XCM 格式消息的傳輸層(儘管它也可以使用任何其他建議的格式),XCMP 的通用性與XCM 的通用性密切相關。
XCM 旨在促進不同共識系統之間任意信息的傳輸。 XCM 的主要目標之一是抽象跨共識通信的低層次細節。這帶來了一些用例,例如不同區塊鏈上的兩個智能合約之間的交互、通過橋接進行的跨鏈通信,或分片之間的通信。
截至目前,XCM 的用例包括:
傳輸:以在一條鏈上銷毀資產並在另一條鏈上鑄造等量資產的形式進行資產轉移。基於相反邏輯的傳輸也使用了資產轉移應用。
遠程轉移:類似於「本地鏈」上的賬戶可以控制「遠程鏈」上的賬戶的跨鏈賬戶功能。此時,XCM 消息將包含本地和遠程帳戶信息以及本地鏈對遠程鏈執行的操作。
平台專有功能:XCM 還旨在允許平行鏈(或任何基於Substrate 的鏈)向其眾多Pallet 模塊之一發送遠程調用請求,以使用特定特性或功能。
Pallet 模塊:
https://wiki.polkadot.network/docs/glossary#pallet
03
可擴展性
3.1 IBC
對於互操作性協議,可擴展性意味著它是否可以在不同的域(不限於區塊鏈)中部署。
雖然Tendermint 的即時最終性和Cosmos SDK 提供的模塊化特性對於實現IBC 的賬本來說無疑是可取的,但這些特性絕不是必要的要求。 IBC 的設計邏輯決定了它與共識無關,並且可以拓展至任何現有共識算法,甚至未來可能發明的共識算法的任意迭代版本。為了連接以太坊等具有概率最終性的區塊鏈,使用了一個稱為peg-zone 的獨特代理鏈(proxy-chain)。 Peg zone 支持IBC 功能,因為它們具有即時最終性,並能夠為與其連接的鏈(在此案例下即為以太坊)建立最終性保證。 Gravity Bridge 便是使用這類peg-zone 來實現以太坊和Cosmos 生態互操作的區塊鏈之一。
Gravity Bridge:
https://www.gravitybridge.net/
基於Substrate 的鏈通過IBC 進行互連的功能目前正在開發中。這一功能將允許Polkadot 和Kusama(Polkadot 的金絲雀網絡)上的平行鏈與通過IBC 連接的其他鏈進行通信。 Composable Finance 團隊為Substrate IBC pallet 模塊的開發做出了貢獻,他們也在積極努力將IBC 引入NEAR 協議。在Composable Finance 提供的一系列互操作性工具中,跨鏈虛擬機(XCVM)是不可或缺的一部分。 XCVM 是一個可供開發者部署智能合約的平台,能夠與不同平台上的其他智能合約進行通信。 XCVM 使用IBC 和XCM 作為傳輸層,以促進去中心化應用(dapp)之間的原生互操作性。
基於Substrate 的鏈的IBC 通信功能開發進展:
https://github.com/octopus-network/substrate-ibc
Kusama:
https://kusama.network/
Composable Finance:
https://www.composable.finance/
NEAR 協議集成IBC 進展:
https://medium.com/composable-finance/composable-finance-emerging-as-the-first-cross-chain-smart-contracting-l1-4e837b8bd57e
XCVM:
https://paper.composable.finance/#sec:xcvm
IBC 不僅可以連接具有不同共識算法的區塊鏈,還可以連接單機網絡(solo machine,即沒有共識算法的系統)。例如,使用IBC 單機網絡可以在Crypto.org 鏈上推出支持IBC 的原生資產,而無需搭建與IBC 連接的區塊鏈。
3.2 XCM 和XCMP
與通用性類似,XCMP 的可擴展性與XCM 的可擴展性程度息息相關。 XCM 旨在創建可跨任意共識系統的通用消息格式。它的設計目標之一是面向未來產品和向前兼容(forward compatible)。共識不可知性是XCM 的另一個關鍵屬性。這意味著它的適用範圍大於平行鏈與中繼鏈間,或與平行鏈間的通信。從理論上講,XCM 還可以促進採用這種消息傳遞格式的完全異構區塊鏈之間的交互。
如前所述,現存架構中存在三種使用XCM 格式的主要傳輸協議,分別是XCMP、UMP 和DMP。這三種協議目前都無法實現Polkadot 和另一個獨立區塊鏈之間的互操作性。目前,只有平行鏈可以使用XCMP、UMP 或DMP 協議實現可互操作性。儘管如此,我們可以想像未來可能會出現一種使用XCM 格式的傳輸協議,可以實現Polkadot 和其他獨立區塊鏈之間的通信。
04
用戶體驗
4.1 IBC
從終端用戶的角度來看,IBC 事務是無縫的。用戶可以通過多個平台操作IBC 事務,比如Crescent 應用。如果用戶Alice 想用手中的資產提供流動性,或將其兌換成其他資產,那麼她可以用Keplr 連接Crescent 應用,並立即執行這些操作。
Crescent 應用:
https://app.crescent.network/swap
Alice 將資產從Cosmos Hub 發送到Crescent 應用的過程就是IBC 轉移,因為資產在Cosmos Hub 和Crescent 兩個不同的區塊鏈間發生了移動,這一過程的執行時間只需要幾秒鐘。然而,Alice 並不需要知道IBC 轉移的定義或發起原理。
Tendermint 提供的即時最終性能夠確保用戶執行的任何IBC 功能都具有成本效益。在這個例子中,執行事務的費用只有幾美分。
跨鏈賬戶功能通過IBC 進一步簡化了跨鏈UX。它允許鏈A(控制鏈)上的帳戶控制鏈B(主鏈)上的帳戶。簡單來說,這意味著Alice 可以通過其鏈A 賬戶執行其鏈B 賬戶上的任何功能,包括投票、委託和轉移。該功能的原理是在IBC 數據包中綁定需要執行的事務,然後將該數據包從控制鏈發送至主鏈;之後該消息在主鏈上解綁,並作為本地事務執行。使用跨鏈賬戶功能大大減少了切換平台的需要,以及執行特定功能所需的時間。
4.2 XCM 和 XCMP
XCM 已於5 月4 日上線,但截至撰寫本文時,尚無可用於跨平行鏈通信的XCMP 通道。儘管如此,用戶仍然可以通過使用HRMP 在Moonbeam 和Acala 之間發送資產來了解XCMP 傳輸的工作原理。
XCM 上線詳情:
https://thedefiant.io/polkadot-interoperable-multi-chain-ecosystem/
Polkadot 生態中正在進行積極的開發,以在所有平行鏈中集成XCM 。最近Moonbeam 上的首個XCM 集成已經完成部署。 Moonbeam 上的用戶現在可以將他們的Polkadot 原生資產從中繼鏈轉移到Moonbeam,並在生態內兼容EVM 的dapp 上使用。
Moonbeam 首個XCM 集成案例:、
https://moonbeam.network/announcements/moonbeam-adds-xcdot/
目前XCM 的另一個活躍功能是中繼鍊和Acala 之間的FT 轉移。隨著Acala 推出其流動性委託產品,用戶現在可以將其資產從中繼鏈發送到Acala,並進行流動性委託。 Acala 平台擁有直觀、簡潔的用戶界面,用於橋接、參與治理、獲得流動性貢獻獎勵等事務。通過XCM 進行的跨鏈轉移事務可在幾秒鐘內完成,且費用通常不到一美元。
Acala 應用:
https://apps.acala.network/home
05
開發者工具
5.1 IBC
Cosmos 生態中個人用戶可用的軟件工具包括高吞吐量BFT 共識引擎(Tendermint Core)、用於搭建狀態機的模塊化框架(Cosmos SDK),以及通過IBC 將區塊鏈與其他數據系統無限互連的任何工具。從2017 年開始,所有這些工具逐漸作為一系列公共產品對外提供。這些產品自首次發布以來,都在根據使用團隊的反饋不斷地進行迭代。
Tendermint Core:
https://docs.tendermint.com/master/
Cosmos SDK:
https://docs.cosmos.network/
IBC:
https://ibcprotocol.org/
如果您正在使用Cosmos SDK 搭建應用,那麼啟用IBC 非常簡單,只需導入IBC 模塊並對代碼庫進行一些更改即可。您還可以創建自定義的IBC 應用模塊。
啟用IBC 教程:
https://github.com/cosmos/ibc-go/blob/main/docs/ibc/integration.md
創建自定義IBC 應用模塊教程:
https://ibc.cosmos.network/main/ibc/apps.html
在輕客戶端和中繼器方面,使用Golang 和Rust 實現的Tendermint 輕客戶端以及單機網絡輕客戶端正在生產當中。 EVM 和基於Substrate 的鏈的輕客戶端目前也正在開發中。在中繼器方面,使用Golang 和Rust 實現的用例十分活躍。
Tendermint 輕客戶端:
https://github.com/cosmos/ibc-go/tree/main/modules/light-clients/07-tendermint
單機網絡輕客戶端:
https://github.com/cosmos/ibc-go/tree/main/modules/light-clients/06-solomachine
EVM:
https://github.com/hyperledger-labs/yui-ibc-solidity
Golang:
https://github.com/cosmos/relayer
Rust:
https://hermes.informal.systems/
除了實現IBC 功能所需的工具外,Cosmos 生態還為開發人員提供了一套廣泛的產品,以構建其主權區塊鏈。例如,使用Cosmos SDK 搭建的Ignite CLI 工具(原Starport)能夠幫助開發者在幾分鐘內啟動生產環境就緒的區塊鏈,以及使用內置中繼器連接其他IBC 鍊等等。
Ignite CLI 命令行工具:
https://docs.ignite.com/
得益於可用工具的質量和可訪問性,Cosmos 生態中的開發活動在過去幾年中優於其他生態(如下面的Messari 折線圖所示)。 chaindebrief 最近發布的一份報告顯示,從2020 年到2021 年,Cosmos 生態的開發者增長率為72%,而Polkadot 為47%。
chaindebrief 報告:
https://chaindebrief.com/polkadot-vs-cosmos-multi-chain-war/#:~:text=Based%20on%20a%20recent%20Electric,950%20in%20Cosmos%20for%202021.
5.2 XCMP
由Substrate 和Cumulus 構成的SDK(或PDK,平行鏈開發工具包)可供開發人員搭建平行鍊或平行線程(parathread)。與Cosmos SDK 類似,PDK 大大減少了啟動新區塊鏈所需的時間和精力。開發者想要構建基於Substrate 的鏈,可以在Polkadot 生態內進行無縫集成並與其他平行鏈交互,同時受到中繼鏈的保護。
Substrate:
https://substrate.io/
Cumulus:
https://github.com/paritytech/cumulus
平行線程:
https://wiki.polkadot.network/docs/learn-parathreads
使用Substrate 應用程序開發區塊鏈可以獲得許多現成的功能,例如P2P 網絡、共識層和存儲功能。但Substrate 不提供與Polkadot 的直接兼容性。為此,作為Substrate 擴展工具的Cumulus 可用於搭建平行鏈,並提供與其他平行鍊及中繼鏈互連的功能。 Cumulus 提供了部署狀態轉換功能和收集人節點等平行鏈基本功能所需的必要工具。將來也可以使用Cumulus 實現XCMP。
除了PDK,Polkadot 還為開發人員提供了一系列有用的工具,例如XCM 模擬器、支持WebAssembly 智能合約(具有其原生編程語言ink! )的Substrate 合約pallet 模塊、Polkadot API 的專用CLI 工具,以及支持平行鏈可以通過中繼鏈進行消息路由交互的XCM 測試網Rococo。
XCM 模擬器:
https://github.com/paritytech/polkadot/tree/master/xcm/xcm-simulator/
Substrate 合約pallet 模塊:
https://docs.substrate.io/rustdocs/latest/pallet_contracts/index.html
原生編程語言ink!:
https://github.com/paritytech/ink
Polkadot API 的專用CLI 工具:
https://polkadot.js.org/docs/api/start/
Rococo:
https://polkadot.network/blog/rococo-v1-a-holiday-gift-to-the-polkadot-community/
結論
經濟學家Thomas Sowell 有句名言:「沒有解決方案,只有權衡取捨」。這句話對於設計分佈式系統尤其適用。在建立互操作性標準方面不存在所謂正確的解決方案,只有權衡取捨。從這個意義上說,Cosmos 和Polkadot 通過各自的設計決策選擇了兩種截然不同的權衡方式。
Thomas Sowell:
https://en.wikipedia.org/wiki/A_Conflict_of_Visions
IBC 和XCMP 之間的主要區別很大程度上受底層協議設計以及各自共識算法的影響。 Polkadot 的共享安全模型在中繼鍊和平行鏈之間引入了高度的依賴性,並設置了許多資源限制。例如,平行鏈間可以開放的XCMP 通道數量存在上限,以及與通道開放相關的經濟成本。
話雖如此,共享安全的優勢也不容忽視。平行鏈的好處是它從一開始就受到中繼鏈的保護。相比之下,Cosmos 鏈在早期階段更容易受到攻擊,因為它們需要時間啟動自己的驗證人集。在啟動後,跨鏈安全功能可以解決這一問題。
但在另一方面,依靠自己提供網絡安全性使Cosmos 鏈享有絕對的主權。這樣一來,用戶和開發者能夠自己決定網絡的命運,而不必受制於中心化管理機構,這類機構的利益可能不總是與他人的利益相一致。
雖然IBC 存在一定局限性,但XCMP 本身俱有的通道缺陷和資源限制在IBC 中是不存在的。通過IBC 互連的應用專有鏈生態之間不存在依賴關係,Cosmos 設計的本質避免了單一區塊鏈的失敗牽連到其他區塊鏈。
互操作性標準中的這類容錯機制如何強調都不為過。 Terra 最近發生的事件就是一個例子。 Terra 是啟用IBC 功能的區塊鏈之一,儘管停止運行,但Terra 並沒有因IBC 而為其他與其互連的鏈帶來任何風險。在危機場景中,IBC 在安全性、可靠性或性能方面沒有表現出任何妥協。
Cosmos 和Polkadot 設想了一個區塊鏈彼此共享且價值聚合的世界。為了實現這一願景,兩者選擇了在技術和理念方面各不相同的方法。儘管如此,為實現跨鏈藍圖,兩個生態都必須繼續建立和創造價值。