深入解析Cosmos早期跨鏈生態——IBC非一日完成

買賣虛擬貨幣

本文提及一個常被忽略的功能:Ethermint,即在Cosmos生態中啟用智慧合約功能,此外詳細解釋了IBC工作原理。

本文是Cosmos三部曲的第一部分。本文將闡明筆者在研究Cosmos的過程中學到的內容。希望這些內容有益於那些對Cosmos感興趣的人。目前Cosmos還處於早期開發階段。用於連線區塊鏈的IBC等元件目前處於研究/規範階段,因此在釋出時可能會發生變化。

什麼是Cosmos?

Cosmos是實現區塊鏈間互操作性的網路和框架。這些區域(zone)由Tendermint Core支援,這提供了一個高效能、連貫、安全的PBFT共識引擎,其中嚴格的分叉問責模式(fork-accountability guarantees )可以減少惡意行為。Cosmos不是一個產品,而是一個基於一系列普適性的模組和工具的生態系統。

在Tendermint共識中,共識節點首先要經過多輪投票,然後才能就一個區塊的內容達成共識。當2/3的節點達成共識後,會透過狀態轉換邏輯執行區塊,並提供最終確定性。目前,以太坊的工作量證明共識中,共識過程是倒置的,礦工先選擇包含在區塊中的交易,然後更新執行狀態,最後“執行”嘗試挖礦。

Tendermint BFT每秒最多可處理幾千筆交易(這取決於驗證節點的數量)。然而這隻考慮了共識,應用層也是限制交易量的因素。Ethermint(如下所述)的速度已高達200 tps,這遠遠超過當前版本的以太坊和比特幣的速度。

很多專案都採用了Tendermint共識,包括Binance Chain,Hyperledger Burrow。值得注意的是,僅僅使用Tendermint共識並不意味著可以與Cosmos生態系統中的其他區塊鏈連線,這些專案還需要分叉程式碼,將IBC部署為本機協議,從而透過IBC實現互操作性。

(請參閱https://raw.githubusercontent.com/devcorn/hackatom/master/tminfo.pdf獲取大圖)

Tendermint共識演算法遵循傳統方法,依靠所有驗證節點彼此通訊達成共識。由於通訊開銷有限,因此不能擴充套件成千上萬個驗證節點,而比特幣和以太坊則不同,他們可以擁有無限個驗證節點。當有100個驗證節點時,Tendermint可以執行。(Cosmos Hub目前最多有100個驗證節點,到目前為止,Tendermint測試中的最多可容納180個驗證節點)

因此,使用Tendermint構建的區塊鏈的缺點是,需要提前瞭解驗證節點,並且不允許礦工隨意出入網路,這一點與比特幣和以太坊不同。

除此之外,它還要求系統保持時間概念,這在理論上是一個非常複雜的問題。雖然在實踐中,Tendermint已經證明,如果你使用各個節點整合的時間戳,就可以完美地解決這個問題。

在這方面,有人認為,相較於比特幣,Tendermint共識協議更“中心化”,因為Tendermint共識的驗證節點更少,並且必須提前瞭解。

假設超過2/3的驗證節點不進行惡意投票,Tendermint協議能確保安全性和活躍度。換句話說,如果少於1/3節點惡意投票,則協議可以保證安全性和活躍度(即,驗證節點永遠不會在相同高度提交相互衝突的區塊,從而區塊鏈可以繼續執行)。

主權

Cosmos的目標是:在Tendermint 共識機制下,開發人員可以使用Cosmos SDK輕鬆構建區塊鏈、透過治理獲取專案(區域)主權,以及獲取鏈間互操作性。這是Cosmos與Polkadot和以太坊2.0等競爭對手的主要差異。以太坊2.0和Polkadot則是共享安全性,鏈上存在一個“根鏈”來確保安全性,防止出現雙花。

治理是指:由代幣委託人(Staker)透過投票決定在區塊鏈上實施的提案。Staker可以將投票權委託給驗證節點,也可以直接投票。在專案方沒有主權的情況下,所有DAPP的基礎環境都相同。那麼如果應用程式要運用EVM(以太坊狀態機)中的新功能,就必須完全依賴以太坊平臺的治理。然而,主權所有權也有權衡利弊。因為如果區域想要主權,就要有激勵其他人執行全節點、驗證/建立區域區塊的方法。雖然使用Cosmos SDK可以輕鬆建立區塊鏈和發行代幣,但是建立自己的代幣還需要考慮法律/規章問題。你打算怎麼分配代幣?你打算如何在交易所上市?如何激勵他人使用代幣。同時代幣不會被歸類為證券?這些都會影響ICO的結果。由於每個區域都需要自己的驗證節點,而驗證節點數量是有限的,因此每個區域都會試圖說服驗證節點驗證自己的區塊。

每個區域/應用程式本質上都是一個迷你DAO,並不是所有人都樂於交出專案主權、並依靠社羣來決定專案的未來(除非他們控制了2/3的代幣)。Cosmos hub已經證明這行得通,但其他專案方可能並不希望自己的應用程式是一個迷你DAO。如果有競爭對手獲得區域的1/3代幣,那麼可能會拒絕所有治理投票,從而阻礙專案進展(雖然控制Cosmos Hub的成本非常高,但對於其他安全性不高的區域來說,這可能存在風險)。

某些區域的安全性可能會比Cosmos Hub低很多,因為每個開發人員都需要驗證自己的區塊鏈,並使用POS代幣化,而且沒有簡單的方法來驗證驗證節點的設定,以確保安全性。雖然Cosmos hub目前非常安全,這歸功於當前質押的代幣價值非常高,但是如果質押的代幣大幅減少時,區域的安全性則還有待觀察。雖然Cosmos一開始的主要目標是為區域提供主權,但現在希望連線Hub的驗證節點能驗證/建立區域的區塊,從而提供共享安全性。要達到這個目標,Cosmos需要尋找一種方法來激勵驗證節點。另一種選擇是,如果開發人員不想建立代幣,也不想要主權,那麼他們就可以在像Ethermint一樣在區域的EVM(以太坊狀態機)上構建DAPP。

以上內容就是每種方法的潛在優點和缺點。但與以太坊和Polkadot強迫性的共享安全性不同,Cosmos給開發者提供選擇,讓他們自己決定。

區塊鏈的層(Layer)

從架構的角度來看,每個區塊鏈可以分為三個概念層

  • 應用層:負責更新交易狀態(即處理交易)。
  • 網路層:負責傳播交易以及與共識相關的資訊。
  • 共識層:使節點能夠就係統當前狀態達成共識。

狀態機與應用程式層相同。它定義了應用程式的狀態和狀態轉換功能。其他層負責在連線到網路的節點上覆制狀態機。

在Cosmos SDK是一個通用框架,簡化了在Tendermint BFT上建立區塊鏈app的過程。Cosmos SDK的目標是建立一個模組生態系統,開發人員能輕鬆啟動專用應用程式的區塊鏈,無需從頭編寫程式碼。任何人都可以為Cosmos SDK建立一個模組,並且在區塊鏈中使用現成的模組、並將模組匯入到app中都非常簡單。

Tendermint BFT共識透過應用程式區塊連結口(即ABCI協議)連線到應用程式。該協議可以被包含在在所有程式語言中,開發人員可按需選擇。

中心輻射型拓撲(Spoke Topology)

(編者注:拓撲,幾何圖形或空間在連續改變形狀後還能保持不變的一些性質)

Cosmos是中心輻射型拓撲,因為每個區域(區塊鏈)互相連線複雜程度過大——如果要將每個區域互聯,則網路中的連線數將隨區域數量呈二次方增長。因此,如果網路中有100個區域,那麼相當於要4950個連線線。

區域是常規的異構區塊鏈,而中心hub是專門將區域連線在一起的區塊鏈。當區域與hub建立IBC連線時,區域可以自動訪問(即傳送和接收)與其連線的區域。因此,每個區域只需要與hub建立連線,因為hub數量一定,因此建立的連線是有限的,不會無限增長。Hub還可以防止區域內出現雙花。這意味著當區域從hub接收代幣時,只需要信任傳送代幣的區域和其路徑中的Hub。Hub不會驗證或執行其他區域提交的交易,因此使用者有責任將代幣傳送到他們信任的區域。

Cosmos網路中將有很多Hub,第一個啟動的Hub是Cosmos Hub,其原生代幣稱為ATOM。ATOM僅適用於Cosmos Hub,而每個hub都有自己的代幣。Cosmos Hub的交易費用不僅可以用ATOM支付,還可以使用其他代幣。而其他hub則不同,類似IRIS hub中只可以使用IRIS支付交易費用。

如上所述,Cosmos Hub是該網路中的眾多hub之一,目前staking比例約為70%,ATOM的市值為8億多美元。IRISnet是第二個推出的hub,目前質押的IRIS約為28%,市值不到1700萬美元。本月末即將推出第三個hub,代幣為SENT,其市值約為340萬美元。這3個hub的安全性差別很大,隨著越來越多的hub和區域互相連線,對驗證節點需要更多代幣激勵。

Ethermint——在Cosmos生態中啟用智慧合約功能

標準的Cosmos區域/hub並沒有智慧合約功能。因此為了要啟用智慧合約功能,應用層透過ABCI API從共識層中抽離,從而在Tendermint共識下,Cosmos可以移植並使用其他區塊鏈(例如以太坊)的程式碼,並訪問EVM。這就是所謂的Ethermint。

因此,開發人員可以將區域連線到Ethermint等專用區域,基於Solidity建立和執行智慧合約,同時享受比現有POW機制效能更好的tendermint共識。正常的以太坊執行速度約為每秒12.5筆交易(TPS),而Ethermint的上限為200 TPS。與現有版本的以太坊相比,速度非常快。以太坊正在開發自己的擴充套件性解決方案,使用的是以太坊2.0,很快就會推出。如果需要,開發人員可以輕易將以太坊的現有工具/ 應用程式移植到Ethermint。

除了垂直拓展(透過使用Tendermint共識來增加tps),還可以透過多個“平行鏈”增加交易量。這個平行鏈執行相同應用程式並由同一組驗證節點操作。因此,如果1個Ethermint區域的上限是200 TPS,那麼平行執行4個Ethermint區域,理論上可以達到800 TPS。

目前,以太坊上有大量的開發人員/應用程式,如果開發人員將他們的DAPP遷移到Ethermint,就會失去與以太坊的本地相容性(除了透過橋接分割槽),但可以獲得Cosmos生態系統中Ethermint及其他區域的相容性。

IBC

IBC是指鏈間通訊協議,是一種端到端、跨鏈連線的狀態協議,使得獨立分散式賬本的模組經過身份驗證後可以進行可靠、有序地相互通訊。具有IBC協議的分類帳本必須為提供一組特定功能,用於驗證共識和生成加密承諾證明,並且IBC資料包中繼器(一種鏈下過程)有望訪問網路協議和物理資料鏈,讀取分類帳本的狀態,並將資料提交給另一個賬本。

在IBC架構中,模組不是直接透過網路基礎設施相互傳送訊息,而是建立要傳送的訊息,然後透過“中繼者(relayer)”進行中繼。“中繼者”在鏈下執行,當提交資料資料時,可以利用連線兩個區塊鏈的輕客戶端連續掃描每個分類帳本的狀態,在另一個分類帳上執行交易。為了實現兩個互聯的分類賬之間運算元據一致,IBC要求在分類賬之間至少存在一個正確實時的中繼過程。我們要激勵中繼者來執行此任務(截至本文撰寫時,尚未建立激勵方法)

中繼過程必須能夠訪問兩個鏈上的賬戶,並且有足夠的餘額來支付交易費用。中繼者可以採用應用級方法來收回這些費用,例如透過在IBC通訊資料包中包含一筆支付給自己的費用。

可以將IBC協議地資訊傳遞過程高度概括為:首先,區域1在區塊鏈上提交資訊(要向Hub1傳送代幣A),並根據協議將代幣A放在第三方託管。其次,區域1達成共識,然後資訊傳遞到IBC模組後建立一個資料包(包含已提交區塊、資訊來源和目標通道/連線以及時間等詳細資訊),並作為證據新增到區域1的“出鏈列隊”中。而透過區域1的輕客戶端,所有中繼者(鏈下執行)可以持續監控區域1的狀態。中繼者將選擇傳遞這些IBC資料包訊息,向Hub1提交證明。然後,Hub 1傳送收據,證明它已收到來自區域1的訊息,中繼者1將證明傳送回區域1。然後透過另一個傳送到Hub1的收據,區域1中那個IBC資料包從”出鏈佇列“中移除、減少相應代幣,併傳送證明。Hub1驗證該證明並生成相應代幣。

雖然可以選擇UDP傳輸(即區域向Hub傳送訊息,但不在乎訊息是否傳達或者傳達順序等),但是代幣傳輸需要在IBC中有TCP連線。每個傳送資訊、收據將佔用至少2個區塊,因此使用Cosmos Hub出塊時間作為示例(6.88秒),區域和hub之間傳輸一筆交易可能需要至少41.28秒。然後,還必須考慮當時的總交易量和相關的手續費價格,才能確定是否能使用2個或以上連續的區塊。在第二部分中,我們將研究多跳路由、跨多個路徑、橋接分割槽代幣傳輸的潛在問題,同時還要會探討其他互操作性解決方案,這些解決方案可以解決一些問題,補充Cosmos生態系統。(更新中......)

作者|SEQ
翻譯|頭等倉Jaden
編譯|頭等倉Maggie
譯文版權歸頭等倉所有,任何轉載請保留資訊。
原文:https://medium.com/@CryptoSeq/cosmos-an-early-in-depth-analysis-at-the-ecosystem-of-connected-blockchains-part-one-508cd679bac5
稿源(譯):https://first.vip/shareNews?id=1939&uid=1

免責聲明:

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

推荐阅读

;