# 多鏈的機會與挑戰 - Cosmos 初探

By [jinglin](https://paragraph.com/@jinglin) · 2022-05-07

---

乙太坊上的交易費與高延遲一直在進行交易為人逅病的的因素。所以大家紛紛想尋找替代的公鏈或是擴容方式去解決大家的痛點。雖說目前是多鏈的生態，但不同鏈間的相容性卻也衍生出更多的問題，如何做安全的跨鏈也變成是大家在發展公鏈時都會保留可以橋接其他鏈的設計。Cosmos 是一條值得被關注的公鏈，主要核心是想要建立出區塊鏈上的網際網路，讓各鏈可以有標準可以輕鬆做到跨鏈，但也面臨到不少的挑戰，今天就聊聊這些事吧。

新賽道
---

自從 DeFi 爆發以來區塊鏈上的應用愈來愈多元也愈來愈豐富，很一開始的 GameFi 到去年火紅到不行的 NFT 和 Metaverse 乃至於具有話題性的SocialFi。這些都在逐步推升應用的普及化，也讓大家看到加密貨密愈來愈貼近現實的可能。

除了上述的應用外，因為乙太坊的高交易費用(Gas fee) 和低吞量的缺陷，所以在區塊鏈上不同層級紛紛提出相對應的解決方案。例如: 公鏈 Layer 1 就有**幣安智能鏈 (BSC)、雪崩鏈 (AVAX) 、Terra 鏈、Solana 鏈**和 **Cosmos 鏈**等等，再加上 Layer 2 上的解決方案 **Polygon** 、Loom Network、Optimism 和Celer Network …等等，這無不是看準乙太坊目前的困境而來，雖說乙太坊 2.0 PoS 上線後會大幅的改差原本的缺點，但多鏈的發展不會完全消失，而目前在短期還看不到有哪個王者站出來一統江湖。所以觀察起來，未來一定是多鏈發展、各鏈的應用會相輔相成，更可能跨鏈的應用會變的更蓬勃發展。

多鏈不會消失，每條公鏈的發展背後一定有需求支撐，像是著名的 GameFi: Axie infinity 在發展初就看到了Ethereum 上的高延遲與高交易費，從而發展了乙太坊的側鏈Ronin，目的就是為了交易門檻，讓玩家更好進入這個市場。

今天就來跟大家聊聊，公鏈的另一個賽道 Cosmos。

有什麼不一樣
------

我們所知道的智能合約開發，都是利用選寫智能合約Solidity 然後進行編譯，最後把代碼上到區塊鏈上的整個流程，如下圖。而智能合約之所以能普及是因為愈來愈多的公鏈都有支援乙太坊虛擬機 EVM (Ethereum Virtual Machine)，而代碼主要就是依付於乙太坊虛擬機上運行的。換句話說，只要只要有宣稱可相容於乙太坊虛擬機的公鏈，合約代碼只需要撰寫一次就可以很容易的代碼移植過去。大家可以試著聯想成英語被當成官方語言的概念，雖然說每個國家都會有自己的方言，但只要一個英文句子可以用正確文法描述意義，不管丟到哪一個國家，都可以被正確的解讀出來。所以愈來愈多 EVM 兼容的鏈衍生出來，也是因為看到了原生乙太坊的高交易費與塞車，並想充份利用已經有的資源與生態系或開發者而開闢出來的賽道。

![智能合約開發](https://storage.googleapis.com/papyrus_images/ae20bc72a103539385833e4212e4266e9d6a0210dfabb8ab4d06b4ee81882dd6.png)

智能合約開發

Cosmos 打造了一個可跨鏈的生態系，定義了區塊鏈互通的協定與標準，目標是想成為區塊鏈上的網際網路"Internet of Blockchan"，Cosmos 鏈上的組成架構大致上如下圖。每個 Zone 都是一個鏈，而每個 Zone 都會跟主鏈是 Cosmos Hub 相連。

![Cosmos 架構 https://v1.cosmos.network/intro](https://storage.googleapis.com/papyrus_images/b8cdea0b9b7e41271a9ea7d5a28cb4fd0dfe2e30ef58725ec04d0f1c74d0f65e.png)

Cosmos 架構 https://v1.cosmos.network/intro

Cosmos Hub 連結每條 Zone (鏈)，串連形成 Cosmos Network 。Cosmos 提供很大的彈性，讓大家去開發屬於自己的 Zone, 每個Zone 都是獨立的鏈針對不同需求而開發出來的應用。那麼大家一定會很好奇，要開發一條鏈要花多少時間和成本，還有會不會很複雜阿?

所幸Cosmos 都幫我們想到了，Cosmos 提供了開發用的 Cosmos SDK，讓從零到有開發一條 Cosmos 鏈不再是那麼困難。

![Cosmos 開發 https://v1.cosmos.network/intro](https://storage.googleapis.com/papyrus_images/12702a0e6494c8061c2cc0c29c7eb2af59c1eb688b95e37688229169c6628cd5.png)

Cosmos 開發 https://v1.cosmos.network/intro

如上圖， 每個Zone 就是由三部份組成: 應用層、共識層、網路層。Cosmos SDK 提供底層模組，把共識層(Consensus)與網路(Networking)層的實作都封裝起來，所以在開發鏈上我們只要專注最上層應用的需求，以及知道怎麼透過 ABCI (Application Blockchain Interface) 的介面去與共識層或網路層的溝通就可以了，這點已經都幫開發者設想到了。

每個Zone 都可以高度的客製化，開發者只要專注於上層的應用開發，其餘的都可以交給Cosmos 幫我們建構的網路層與共識層。Cosmos SDK 共識層的核心是Tendermint Core，主要利用拜占庭容錯(BFT)的權益證明。拜占庭容錯主要的想法是，當出現某些故障或是出現國意行為的時候，系統不會整個停擺而還是可以持續正常的運作。而Tendermint 主要的實作也是利用拜占任容錯的方式進行。

以下就說明一下 Tendermint 協定的做法，裡面主要有兩個角色。

1.  驗證者 (Validator): 記帳跟驗證交易
    
2.  提案人 (Proposer): 由驗證者輪流提案
    

當一個新的提案被產生時，必須經過兩輪投票: 預投票(Prevote) 和預提交(Precommit)，且要 **2/3** 驗證者同意沒問題，才會產生新的區塊。如果區塊提交失敗，就會選出新的驗證人在同一個區塊高度上重新投票。為了避免提交衝突，當驗證者進入預投票階段時，就會進行鎖定直到本次提交結果(上區塊/失敗)產出。

![Tendermint 協定https://learn.bybit.com/blockchain/tendermint/](https://storage.googleapis.com/papyrus_images/bd3d58ae4b7f6455878a8da1882b9a9bbc70cc8cf149a28bb06a41392510f1cc.png)

Tendermint 協定https://learn.bybit.com/blockchain/tendermint/

ATOM 為 Cosmos 原生代幣，其用途是交費鏈上的手續費，還有可以參與Cosmos Hub的治理系統，用戶通常也會進行質押ATOM給驗證者取得質押獎勵或是參與治理投票等活動。

區塊鏈相互溝通 (Inter-Blockchain Communication, IBC) 如下圖是Cosmos 上是一個很重要的設計，開發者僅需要定義清楚共通的協定的內容就可以通訊了，內容包含需要定義出兩個鏈上端口(Port)溝通、共用的頻道識別符(ChannelID)，以及封包 (Packet) 想要酬載的內容，兩個不同的鏈就可以進行通訊與資料的交換。

![IBC](https://storage.googleapis.com/papyrus_images/16e8bad7cd1360042bdbf7f6bca1990e4de5f61dfaa48e4caf9fe1228c943525.png)

IBC

未來性
---

就未來性我們可以有以下幾個面向來觀察是不是Cosmos 未來可以有改善的方案或是否本身存在什麼限制。

*   跨鏈的支援
    
*   跨鏈的安全性
    
*   工具的易用程度
    

EVM 支援程度指的是目前已在乙太坊相容鏈上的DApp 容不容易移值到 Cosmos 的生態系中，因為 Solidity 智能合約還是大部份區塊鏈開發者比較熟悉的，資源豐富且社群非常活耀，如何吸引開發者進來Cosmos 就變的非常重要了，有開發者願意投入開發進而吸引使用者進來。就是Cosmos 一個很重要的課題，而如何去相容EVM上的合約與介接，跨鏈的支援Cosmos 目前一直在改進的地方。

目前Cosmos 跨鏈的支援有兩種，**第一種是 Cosmos 所提供Gravity Bridge** 是可以去橋接以太坊上的原生代幣，如下圖；這種異質鏈的橋接是建立一個 Gravity 的跨鏈橋，異質鏈因為鏈異質上的網路層與共識層都不同。基本的概念是在跨鏈橋當需要做資產轉移時，來源鏈上代幣轉到跨鏈橋上時來源鏈上的資產就會被鎖定，而跨鏈橋會鑄造封裝等值新代幣給目標鏈上使用，所以跨鏈橋的主要功能是在兩不個鏈上運行模組的管理與維護，而Gravity 跨鏈橋在做的事情就必須包含了乙太坊合約與Cosmos 模組。這點為了目標最大的用戶群-乙太坊，在這方向著手，個人覺得做的還不錯。

**第二種是 EVMOS**，也就是利用Cosmos SDK 打造一個底層為 Tendermint 共識與 EVM 相容的Zone 鏈，這EVMOS 就是允許開發者在這個鏈上直接開發或移植乙太坊上的智能合約，目的是想要實現乙太坊生態與Cosmos生態的互操性，對於想要吸引開發者來說，是一個不錯進展。好消息是經歷前一次上主網失敗的教訓，4月28 再次上線，目前運作良好還沒聽說有什麼問題，這對有興趣轉往Cosmos 上的合約開發者也是另一個福音。

![Cosmos Cross-Chain](https://storage.googleapis.com/papyrus_images/5ed49ab82b8c2ea7f2c1b3d07c83aec1c57c05129beafb5bf4ac339f90aba497.png)

Cosmos Cross-Chain

提到**跨鏈的安全性**就是Cosmos上指的共享安全，其核心宗旨是允許父鏈，例如: Cosmos Hub 幫忙子鏈 Zone 出塊，並由一個公共驗證者同時維運父鏈與子鏈的節點並幫忙驗證。以上面的例子來說，公共驗證者要同時能滿足驗證父鏈的區塊與子鏈的區塊，而能有這樣的能力是因為有驗證者需質押代幣在Cosmos Hub，也因為懲罰機制，所以可以避免驗證者造假/作惡的風險。

再者子鏈有能力利用IBC 通訊，去核對與追蹤父鏈上每個參與驗證的驗證者們，所以當有問題時，更可以確保父鏈被質押的資產可以被索賠。所以在Cosmos安全性上得以獲得保障。

另一個主因是，功能性愈少被攻擊的可能性就愈小的設計。因為兩個不同鏈是互相不信任的，所以當有問題發生不同鏈上的影響會是最小，而不會影響到整個Cosmos 上所有的鏈。

以**工具**來說，對使用者直接接觸的工具就是錢包了，在Cosmos 的原生錢包是 Keplr，可以類比為乙太坊上的小狐狸(Metamask) 錢包，優點是如果不想保管私錀，Keplr 還有提供 Google 或 Apple 方式登入，算是滿方便的，缺點是要轉出到冷錢包似乎目前還不支援。

![Keplr 錢包](https://storage.googleapis.com/papyrus_images/f2030b23a5090671fc010978a1f00699eea1c17be492c0fcbdbed439ed6b4b63.png)

Keplr 錢包

目前 Cosmos 的交易工具，雖說還沒有像 Etherscan 那麼的完整，但看得出已經支援的工具已經愈來愈多，例如: Mintscan，相信不久的將來當 Cosmos 愈來愈成熟，好用的工具也會跟上腳步。

![https://www.mintscan.io/cosmos](https://storage.googleapis.com/papyrus_images/189bc6d0f46ae7604616e72e622828480725b27b3cbd857d102ecce3f1ac3e08.png)

https://www.mintscan.io/cosmos

結語
--

目前Cosmos上的應用也開始受到不少人關注，相信只要Cosmos 釋出出好用的開發工具，吸引更多應用落地，未來的潛力還是很大的，所以Cosmos 後勢的發展，就交給時間來驗證是不是如他們規劃步調，成為區塊鏈上的網際網路，請大家拭目以待，如果大家有任何想法或意見，也歡迎留言給我或是 Email: [sotagill@gmail.com](mailto:sotagill@gmail.com) 讓我知道哪些主題想暸解可以幫大家介紹更多相關的資訊。

參考文獻
----

[https://cosmos.network/ecosystem/](https://cosmos.network/ecosystem/)

[https://v1.cosmos.network/intro](https://v1.cosmos.network/intro)

[https://blog.cosmos.network/interchain-security-is-coming-to-the-cosmos-hub-f144c45fb035](https://blog.cosmos.network/interchain-security-is-coming-to-the-cosmos-hub-f144c45fb035)

[https://learn.bybit.com/blockchain/tendermint/](https://learn.bybit.com/blockchain/tendermint/)

---

*Originally published on [jinglin](https://paragraph.com/@jinglin/cosmos)*
