Internet of Blockchain — Cosmos

淺談 Cosmos運作模式以及它的價值

Greg Shen
11 min readJul 2, 2022

前言

以太坊是第一個擁有智能合約的區塊鏈,但也因為是第一個,在不少地方就有改進的空間,其中一項便是交易處理速度。因此,不少新的區塊鏈都打著以太坊殺手的名號出世了。

在本文中會提到,一般區塊鏈主要可以分為三層:網路層、共識層、應用層。如果今天有一個工具,讓要建新鏈的人可以專注在開發應用層上面,省下開發網路層、共識層的數個月、數年時間,同時這個工具還可以讓所有利用這個工具建的區塊鏈有跨鏈溝通的功能,那會不會很方便?

把上述提到的概念想成是不同區塊鏈組成的區塊鏈網路 — Internet of Blockchain,Cosmos就懷抱著這種夢想誕生了。

直切正題,Cosmos想做到的是…

1.讓開發者可以快速建立自己的區塊鏈應用 (創建)

2.解決各鏈間溝通不便的問題 (跨鏈)

3.將TPS提高 (擴展)

想要瞭解 Cosmos怎麼達成願景,我們先聊聊區塊鏈的基礎。

區塊鏈的本質

區塊鏈的概念起源於分散式帳本 — DLT ( Distributed Ledger Technology ),重點在於如何透過共識演算法從各個節點的帳本狀態取得共識來確定正確的帳本資訊,在區塊鏈中,這個分散式帳本是以一個個區塊打包而成的,因此,區塊鏈是分散式帳本的其中一種資料結構。

那麼架構呢?

從架構的角度來看,區塊鏈分為三層。

Application: 應用層,交易產生的地方
Consensus: 共識層,共識機制如 PoS, PoW, PoA, RAFT 等
Networking: 網路層,P2P網路、傳播機制

稍微了解區塊鏈的基礎後,再來談一下它的演進以及限制。

追蹤以獲得更新通知,歡迎隨時聯繫我

Email: gregshen0925@gmail

Telegram: @gregshen0925

區塊鏈1.0 (比特幣)

創建於 2008 年的 P2P 虛擬資產,它使用了一種新的共識機制,稱為工作量證明 ( PoW ) ,它是區塊鏈上第一個去中心化的應用。人們很快就開始意識到去中心化應用的潛力並開始開發。當時開發去中心化應用程式有兩種選擇:分叉或在其上建立。然而比特幣 codebase 非常單一,網絡、共識、應用層都混合在一起,另外比特幣腳本語言只有 C, C++, Python,所以需要更好的開發工具。

區塊鏈2.0 (以太坊)

2014 年,以太坊提出了建立 DApp 的新方法,它的想法是建立單一的區塊鏈,大家可以在上面部署任何類型的應用,以太坊透過將應用層轉換為以太坊虛擬機(EVM)實現,此虛擬機能夠處理所有人部署到以太坊的智能合約。

我們常常看到那些 EVM compatible的 Layer1,其實就是把 EVM整組包過去當作應用層,而他們主打的就是自己的共識層能讓它的運行速度更快(但通常都會伴隨其他問題,例如太中心化)。

這種新的開發方式讓成千上萬的開發人員開始建立DApps,但也很快暴露出缺陷。

  1. Scalability (擴充性、TPS)
  2. Usability (靈活性)
  3. Sovereignty (主權)

這些限制不僅存在以太坊,其他區塊鏈也是,這時Cosmos 的重要性就顯現出來了。

區塊鏈3.0 ( Cosmos )

如一開始所提到的, Cosmos 的願景是讓開發人員可以輕鬆建立區塊鏈,並透過允許他們之間相互溝通來打破區塊鏈之間的障礙,最終目標是創建一個區塊鏈互聯網。藉由 Cosmos,DApp也可以改善上述提到的三個問題 — 擴充性、靈活性、主權。

接下來讓我們看看它的開發工具…

Cosmos開發工具

Tendermint BFT, ABCI

Tendermint BFT 是一種將區塊鏈的網路和共識層打包成通用引擎的解決方案,使開發人員可以專注於應用層開發,而不是複雜的底層協議。因此 Tendermint 節省了數百小時的開發時間。

Tendermint BFT 與 ABCI ( Application Blockchain Interface)連結,而ABCI 有各種程式語言的版本,因此開發者可使用任意程式語言撰寫。

除此之外,還有幾項特點:

  • Tendermint BFT 僅處理區塊鏈的網絡和共識,意思是他幫助節點傳播交易、幫助驗證者驗證交易再將他們傳到區塊鏈上。
  • 應用層則可以定義驗證集如何構成,因此開發人員可以在 Tendermint BFT Engine上建立公有鏈或私有鏈。
  • 也就是說,開發人員可以自定義區塊鏈驗證集的規則。
  • Tendermint BFT 的出塊時間約為 1 秒,每秒可處理多達數千筆交易。
  • Tendermint 共識算法是即時確定性,只要超過三分之二的驗證者是誠實的,就不會分叉。用戶可以確保他們的交易在創建區塊後立即完成。

Cosmos SDK 與其他應用層框架

Tendermint BFT 將區塊鏈的開發時間從數年縮短到數週,但從零開發安全的 ABCI App 還是很複雜,這時候就可以使用 Cosmos SDK。

Cosmos SDK 算是一個框架,模組化在 Tendermint BFT上建立的 Dapp 過程,如下圖,SDK提供了一般區塊鏈會需要的功能,包含質押(Staking)、削減代幣(Slashing)、治理(Governance)、Cosmos跨鏈溝通協議(IBC),IBC我們稍後會介紹到。

Ethermint 是一個將以太坊虛擬機移植到 SDK 模塊中的項目。Ethermint 的工作原理與 EVM 完全一樣,但也擁有 Tendermint BFT 的所有屬性。所有現有的以太坊工具(Truffle、Metamask 等)都與 Ethermint 兼容,無需額外工作就可以搬運智能合約。

IBC

當開發者有了快速建立、定義區塊鏈的方法,問題就在於如何將這些區塊鏈連接。在 Cosmos 中,區塊鏈之間的連接是藉由 Inter-Blockchain Communication (IBC) 協議實現。IBC 利用 Tendermint 共識的即時確定性(也可以與任何“快速確定性”區塊鏈引擎配合使用)實現異構鏈相互傳輸代幣或數據

補充:異構鏈(heterogeneous)

分為兩個部分

  • 不同的層
    異構鏈具有不同的層,它們在建立網路、共識和App的方式上可能有所不同。為了與 IBC 兼容,區塊鏈只需要遵循幾個要求,主要是共識層必須具有快速確定性。PoW則(如比特幣和以太坊)不屬於這一類,因為它們是概率確定性。
  • 主權:
    每個區塊鏈都由一組驗證者維護,他們的工作是將下一個區塊提交到區塊鏈達成一致。在PoW區塊鏈中,這些驗證者被稱為礦工。主權區塊鏈是具有自己驗證集的區塊鏈,驗證者最終負責修改狀態。在以太坊中,App都由一組通用的驗證器運行,因此App的主權都被限制了。

IBC 允許異構區塊鏈相互傳輸代幣和數據,所以具有不同App和驗證集的區塊鏈可以互相溝通。例如,它允許公鏈、私鏈相互轉移代幣。

IBC運作模式

在A鏈上鎖住資產
在B上mint出同樣數量資產,以維持總數不變

回到區塊鏈2.0的三個問題,Cosmos解決了嗎?

Scalability

每秒可以處理數千筆交易

  • Tendermint 共識引擎實現了網絡和共識層,將分散式應用程式開發為區塊鏈意味著只需定義應用程式所需的交易類型和狀態轉換功能,可以大大提高應用程式的性能。

Usability

提供了更大的靈活性,開發人員可以選擇他們喜歡的語言。

  • 透過 Cosmos ,他們可以將自己的區塊鏈建立為 Tendermint 之上的 ABCI App。
  • 從頭開始構建應用程序依然很繁瑣,這就是為什麼會需要 Cosmos-SDK 。

Sovereignty

DApp開發者可以保有主權

  • 驗證者只驗證 DApp的交易,這代表治理與 App分開,不會與其他應用程式重疊。
  • 如果我們所建的 App出現問題,可以修復它,而不會妨礙生態系統中的任何其他 App。

補充:關於終結性(Finality)

  • 上述提到,Cosmos上的鏈都是擁有即時終結性的,也就是一但出塊,資產狀態就不會因為分叉而變更。
  • 然而比特幣和以太坊都沒有即時終結性,它們都是概率終結性(Probabilistic Finality),它只意味著,區塊鏈深度越深被更改的可能性越小,卻不保證不會被改變。

在 Cosmos 中,可以用 IBC 協議傳輸任何加密資產,使跨鏈溝通更容易。

但 Cosmos 和以太坊之間傳輸加密資產在技術上非常複雜,原因有二

  1. IBC 數據包無法在以太坊中有效解碼,因為 EVM 的設計與 IBC 不兼容
  2. 以太坊是概率終結性(Probabilistic Finality),也就是說,只要有人獲得51%的算力瘋狂出塊,最後是有可能分岔成功並改寫正確的資料(雖然機率非常非常小),但Cosmos日益龐大的生態系很難去承受這種風險,因為他會改變整個生態系的資產狀態。

這就產生了一個問題:Cosmos 如何在沒有確定的情況下與目前存在的區塊鏈進行資產轉移?

因為上述原因,Cosmos為了與以太坊跨鏈溝通,專門開發了Peg Zone(代號Peggy)。

Peg Zone

Peg Zone是一個 Account-Based Blockchain,它將 Cosmos 的Zone連接到外部鏈,如比特幣或以太坊,它充當適配器區域或終結性工具。

Ethereum Peg Zone 是 Cosmos 所開發的第一個Peg Zone,以太坊 Peg Zone 使 ERC20 代幣和以太幣在規範的以太鏈和 Cosmos 網路內所有 IBC 連接區域之間移動。

Peggy的五個組成

1.Ethereum Smart Contract:將有一套以太坊智能合約作為資產託管人,能夠託管以太坊原生代幣並發行 Cosmos 原生代幣。

2.Witness:Witness 組件用以證明對以太坊事件的見證,它等待 100 個區塊 (確定性閾值),並在非確定性鏈上實現這種偽確定性。它運行一個完全驗證的以太坊節點,向 Peg Zone 提交 WitnessTX 來證明以太坊內的狀態變化。

3.Peg Zone:Peg Zone 類似一個翻譯用區塊鏈,建立在 Tendermint 上,允許用戶執行和查詢交易,這就是 Cosmos 與以太坊通訊的方式。

4.Signer:Signer 組件通過SignTx消息生成 secp256k1 簽名,並將其發佈到 Peg Zone。

5.Relayer:Relayer組件中繼由 Signer 組件簽名的批量交易列表(序列),並將它們發佈到以太坊智能合約。

可能會有人混淆

Peg Zone與 Ethermint 非常不同,後者是 EVM,捨棄了PoW,然後是建立在 Tendermint 的共識層、網絡協議之上。

統整一下Cosmos的主要概念

  1. Cosmos 使用 Tendermint BFT 和 Cosmos SDK 的模組化使區塊鏈功能強大且易於開發。
  2. Cosmos 使區塊鏈能夠透過 IBC 和 Peg-Zones 相互轉移資產,同時讓它們保留自己的主權。
  3. Cosmos 使 DApp 透過水平和垂直可擴展性解決方案擴展到數百萬用戶。

與 Universe 不同,Cosmos 除了宇宙的意思,原意是有秩序且和諧的,他們的目標就如同名稱 — 在廣闊卻混亂的區塊鏈生態系建立起秩序,正如過去串起區域網路的網際網路般,Cosmos 為區塊鏈生態開創了不同紀元。

參考資料

--

--