被認為是區塊鏈3.0版本的Cosmos究竟是什麼?

買賣虛擬貨幣

Cosmos被譽為“區塊鏈的網際網路”,也被認為是區塊鏈的3.0版本。Cosmos旨在解決區塊鏈互動操作和可擴充套件性問題,其區塊鏈間通訊協議可以實現區塊鏈的互聯,支援不同區塊鏈之間的資產轉移。以下為Cosmos專案詳細解讀。


Cosmos核心技術:Tendermint


Cosmos有一個很獨特的宇宙觀:這個世界不可能由一個區塊鏈主導,一定是多鏈並存,多幣並行的世界。如何把多鏈和多幣整合成一個生態系統,就是Cosmos的終極理想。它的理想還有個獨特的地方,它認為幣和鏈應該是分離的。在Cosmos裡有個核心技術,使得代幣可以跨區塊鏈進行轉移,這個核心技術就是Tendermint。Tendermint是區塊鏈領域較早的基於拜佔廷容錯協議的PoS共識引擎。


Cosmos認為以比特幣為代表的區塊鏈1.0,是網路層、共識層和應用層混合成一體的產品。以以太坊為代表的區塊鏈2.0,簡化了這一構架,使用者不需要直接處理共識和網路層相關細節,只需基於以太坊提供的虛擬機器的高階語言寫分散式應用就可以了。


Tendermint架構的創新之處在於將區塊鏈應用(狀態)與底層進行了分離,它的核心程式碼Tendermint Core涵蓋了可重用可配置的共識和網路層功能,同時它還定義了一組ABCI回撥介面與應用層進行互動,應用邏輯可以用你熟悉的任何語言來寫。客戶端發給Tendermint的交易,透過ABCI介面到達應用,比如檢查交易的有效性。有效交易進入Tendermint記憶體池,提議節點從記憶體池選擇交易進入候選新塊,經過PoS達成共識的新塊向全網廣播。收到新塊的全節點都會透過ABCI介面把交易播放給應用,應用邏輯在執行交易的過程中相應地改變自身內部狀態,最後把狀態雜湊以AppHash的形式返回給Tendermint,計入新塊頭部。


當新一輪的區塊開始選擇的時候,會有一個驗證人以輪詢等方式選出來,作為提議節點提交一個候選新塊。這個新塊裡包含一些已經跟應用確認過是有效的交易。把這個塊廣播到網路裡以後,所有的驗證人進行Prevote預投票。這裡因為有超時機制,所以Tendermint協議是一個弱同步協議。Prevote投票超過三分之二後,系統達成所謂的“Polka”狀態,接著對這個塊進行Precommit投票,一旦Precommit超過三分之二,新塊就被提交(Commit)生成新區塊高度,進入下一輪提議。


Tendermint共識演算法的特色是拜佔廷容錯。它最多可以容納整個網路裡面三分之一的驗證人犯錯,包括無意的犯錯或者有意的作惡。投票的時候三分二不是指三分之二的驗證人數,而是三分之二的權益。


另外它有即時最終性,這是跟PoW的最大區別;當它生成新區塊高度,這個塊就是最終的,它將來不會被推翻,所以它會帶來比以太坊、比特幣高的效能。


它透過應用邏輯和共識邏輯進行整合,透過ABCI介面進行通訊,可以用任何語言編寫應用。這個應用做的事情實際上就是狀態機控制。它把共識引擎這部分抽象出來,可以用它做公有鏈,也可做私有鏈。


Tendermint強調一致性的演算法,必須三分之二的投票才能生成新的塊。如果網路達不到三分之二的人投票,這個協議就被停了。所以它強調的是一致性而不是可用性,它不允許短暫的分叉。


如何利用Tendermint機制開發應用


一是基於ABCI協議直接開發應用。只需確保應用邏輯所用到的開發語言特性是確定的。也就是說這個邏輯在任何一個節點的語言執行環境上執行的時候,都會返回相同的AppHash。這種開發模式的好處是你有最大的控制權,你在應用裡想寫什麼樣的邏輯就寫什麼樣的邏輯。聯盟鏈可以採用這種模式開發。但這套協議的缺點是技術難度大,要求開發人員非常熟悉ABCI回撥介面,而且應用的所有邏輯都要自己開發。


二是基於Ethermint開發。Ethermint是Tendermint團隊開發的另外一個專案,它把以太坊的Go語言庫拿過來,透過ABCI介面和Tendermint Core進行了融合,實現了在PoS協議上執行以太坊虛擬機器。它的效能很強大,比如在以太坊寫的分散式應用,可以直接部署在Ethermint上面,以太坊現有的客戶端工具和開發工具都可以直接使用。基於Ethermint開發應用的好處顯而易見,開發者可以用熟悉的開發工具和理念;缺點是面臨以太坊同樣的安全風險。


三是基於Cosmos SDK開發。Cosmos SDK是一個提供了基本區塊鏈邏輯的ABCI應用。它是多代幣的區塊鏈,賬號可以管理多種代幣,同時它還提供一些常見的功能,如比鏈上治理。它的強大之處在於可以在Cosmos SDK所包含的已有功能、最佳實踐和外掛架構上快速開發區塊鏈應用。Cosmos Hub就是基於Cosmos  SDK開發的,這種方式適合開發公有鏈專案,速度很快。


Cosmos生態系統


Cosmos的生態系統總結起來就是:Cosmos Hub作為支援多幣種的一個樞紐將多個同樣基於Tendermint開發的區塊鏈分割槽(Zone)連線成一體。Cosmos將在今年底或明年第一季度上線“主網”,即Cosmos Hub。伴隨主網上線,將會同時上線幾個分割槽,其中一個就是作為公有鏈的Ethermint,另外一個是OmiseGO,接下來是跟以太坊的橋接分割槽(Peg Zone)。Hub和Zone之間的通訊,透過IBC協議實現。


IBC協議


互聯鏈通訊(IBC)協議是個非阻塞的非同步協議,能保證不同鏈之間不會在交易處理上產生耦合。它透過Merkle樹實現可靠的訊息佇列,並將佇列儲存在各個分割槽裡面,實現有序儲存,然後透過把訊息的Merkle證明作為IBC資料包的一部分發出去。


在兩個通訊鏈上建立雙向信任時如何操作呢?這是一種特殊的,需要有許可權管理的訊息,而且需要人為干涉。相當於一個分割槽要將所有驗證人的公鑰告訴它想與之建立聯絡的另外一條鏈。當需要驗證來自另一條鏈的訊息時,只需拿對方的驗證人公鑰集合來驗證其Merkle證明的有效性就可以了。


IBC協議還會透過一些高階訊息型別超時、狀態清理、跨鏈路由和閘道器以及多種模式中繼等複雜情況進行處理。


鏈幣分離


過IBC可以幫助代幣實現跨鏈使用。以STORJ.IO為例,它在鏈上原生的代幣就是自己的代幣,如果STORJ區塊鏈連到Cosmos  Hub上,理論上透過IBC協議就可以把以太幣或者其他幣轉移到STORJ.IO的區塊鏈上使用。這不是幣種交換的概念,而是完全可以把一個幣轉移到另一個區塊鏈上。假設一個以太幣透過Cosmos Hub轉到另外一個鏈上,比如STORJ.IO,那麼以太幣在以太坊就會被鎖定或銷燬,在STORJ平臺上會生成對應數量的以太幣,只不過這個以太幣嚴格意義上來說不是原生的以太幣,但是它是用STORJ區塊鏈的多幣系統生成的一個代表對應的以太幣價值和功用的代幣符號。當你需要把這個代幣再轉回來時,就會銷燬STORJ上的代幣,然後在以太坊對應的賬號上生成代幣。所以Cosmos在現階段主要是透過IBC協議實現代幣在不同區塊鏈之間的轉移和跨鏈使用。


由此,許可鏈也可以與公有鏈進行互動。許可鏈沒有原生代幣,如果許可鏈因為業務需求,需要引入激勵機制,那麼可以和公有鏈進行互動,透過Cosmos把代幣轉到自己鏈上進行使用。


Cosmos——區塊鏈網際網路


Cosmos被稱為“區塊鏈網際網路”,基於剛剛介紹的技術特性,“區塊鏈網際網路”呈現出以下幾種特點:多樣性、互操作性、效能擴充套件、安全性和自主性。


它的效能擴充套件包括垂直擴充套件和水平擴充套件。水平擴充套件,因為它是按照應用的邊界來劃分的一種分片,在減少效能瓶頸上是最符合邏輯的。每一個分割槽或者Hub上是按照不同的應用來劃分的,所以應用的並行處理非常自然。另外從邏輯方面來說,你只需要成為你關心的應用裡區塊鏈的全節點,提高工作效率。


多樣性和安全性。大部分的生產級應用不需要跑在圖靈完備的區塊鏈上,這也是Cosmos的“宇宙觀”和以太坊的根本性差異之一。這樣做的好處是可以減少攻擊介面,因為用Tendermint寫的針對某個特定場景的ABCI應用,只需要幾個定製交易型別就可以,不像以太坊的整個EVM和智慧合約程式碼都暴露給潛在駭客攻擊。分割槽還可以降低成本,提升效率,並透過微調來最佳化,這些都是這種的架構帶來的好處。


互操作性就是不同鏈上的應用和智慧合約可以透過IBC協議進行互動。可以使得不同的代幣經濟得以深度整合,不同的代幣在一條區塊鏈上可以混合使用,未來可能會實現跨鏈的智慧合約呼叫。


自主性。舉個例子,透過硬分叉分裂出來的以太坊和以太坊經典,它們不可能擁有同樣的驗證節點集合。按照Cosmos的架構,這兩條鏈各自跑在自己的分割槽裡,它們有不同的驗證人,可以實現不同的鏈上治理和經濟激勵、經濟治理。


合併安全性。對於很小的公有鏈,要找100個見證人是很麻煩的事。這時可以與Cosmos Hub共享100個驗證人,實現公有鏈的快速自舉。

免責聲明:

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

推荐阅读

;