Cosmos被譽為“區(qū)塊鏈的互聯(lián)網(wǎng)”,也被認(rèn)為是區(qū)塊鏈的3.0版本。Cosmos旨在解決區(qū)塊鏈交互操作和可擴(kuò)展性問題,其區(qū)塊鏈間通訊協(xié)議可以實現(xiàn)區(qū)塊鏈的互聯(lián),支持不同區(qū)塊鏈之間的資產(chǎn)轉(zhuǎn)移。以下為Cosmos項目詳細(xì)解讀。
Cosmos核心技術(shù):Tendermint
Cosmos有一個很獨特的宇宙觀:這個世界不可能由一個區(qū)塊鏈主導(dǎo),一定是多鏈并存,多幣并行的世界。如何把多鏈和多幣整合成一個生態(tài)系統(tǒng),就是Cosmos的終極理想。它的理想還有個獨特的地方,它認(rèn)為幣和鏈應(yīng)該是分離的。在Cosmos里有個核心技術(shù),使得代幣可以跨區(qū)塊鏈進(jìn)行轉(zhuǎn)移,這個核心技術(shù)就是Tendermint。Tendermint是區(qū)塊鏈領(lǐng)域較早的基于拜占廷容錯協(xié)議的PoS共識引擎。
Cosmos認(rèn)為以比特幣為代表的區(qū)塊鏈1.0,是網(wǎng)絡(luò)層、共識層和應(yīng)用層混合成一體的產(chǎn)品。以以太坊為代表的區(qū)塊鏈2.0,簡化了這一構(gòu)架,用戶不需要直接處理共識和網(wǎng)絡(luò)層相關(guān)細(xì)節(jié),只需基于以太坊提供的虛擬機(jī)的高級語言寫分布式應(yīng)用就可以了。
Tendermint架構(gòu)的創(chuàng)新之處在于將區(qū)塊鏈應(yīng)用(狀態(tài))與底層進(jìn)行了分離,它的核心代碼Tendermint Core涵蓋了可重用可配置的共識和網(wǎng)絡(luò)層功能,同時它還定義了一組ABCI回調(diào)接口與應(yīng)用層進(jìn)行交互,應(yīng)用邏輯可以用你熟悉的任何語言來寫??蛻舳税l(fā)給Tendermint的交易,通過ABCI接口到達(dá)應(yīng)用,比如檢查交易的有效性。有效交易進(jìn)入Tendermint內(nèi)存池,提議節(jié)點從內(nèi)存池選擇交易進(jìn)入候選新塊,經(jīng)過PoS達(dá)成共識的新塊向全網(wǎng)廣播。收到新塊的全節(jié)點都會通過ABCI接口把交易播放給應(yīng)用,應(yīng)用邏輯在執(zhí)行交易的過程中相應(yīng)地改變自身內(nèi)部狀態(tài),最后把狀態(tài)哈希以AppHash的形式返回給Tendermint,計入新塊頭部。
當(dāng)新一輪的區(qū)塊開始選擇的時候,會有一個驗證人以輪詢等方式選出來,作為提議節(jié)點提交一個候選新塊。這個新塊里包含一些已經(jīng)跟應(yīng)用確認(rèn)過是有效的交易。把這個塊廣播到網(wǎng)絡(luò)里以后,所有的驗證人進(jìn)行Prevote預(yù)投票。這里因為有超時機(jī)制,所以Tendermint協(xié)議是一個弱同步協(xié)議。Prevote投票超過三分之二后,系統(tǒng)達(dá)成所謂的“Polka”狀態(tài),接著對這個塊進(jìn)行Precommit投票,一旦Precommit超過三分之二,新塊就被提交(Commit)生成新區(qū)塊高度,進(jìn)入下一輪提議。
Tendermint共識算法的特色是拜占廷容錯。它最多可以容納整個網(wǎng)絡(luò)里面三分之一的驗證人犯錯,包括無意的犯錯或者有意的作惡。投票的時候三分二不是指三分之二的驗證人數(shù),而是三分之二的權(quán)益。
另外它有即時最終性,這是跟PoW的最大區(qū)別;當(dāng)它生成新區(qū)塊高度,這個塊就是最終的,它將來不會被推翻,所以它會帶來比以太坊、比特幣高的性能。
它通過應(yīng)用邏輯和共識邏輯進(jìn)行整合,通過ABCI接口進(jìn)行通訊,可以用任何語言編寫應(yīng)用。這個應(yīng)用做的事情實際上就是狀態(tài)機(jī)控制。它把共識引擎這部分抽象出來,可以用它做公有鏈,也可做私有鏈。
Tendermint強調(diào)一致性的算法,必須三分之二的投票才能生成新的塊。如果網(wǎng)絡(luò)達(dá)不到三分之二的人投票,這個協(xié)議就被停了。所以它強調(diào)的是一致性而不是可用性,它不允許短暫的分叉。
如何利用Tendermint機(jī)制開發(fā)應(yīng)用
一是基于ABCI協(xié)議直接開發(fā)應(yīng)用。只需確保應(yīng)用邏輯所用到的開發(fā)語言特性是確定的。也就是說這個邏輯在任何一個節(jié)點的語言執(zhí)行環(huán)境上執(zhí)行的時候,都會返回相同的AppHash。這種開發(fā)模式的好處是你有最大的控制權(quán),你在應(yīng)用里想寫什么樣的邏輯就寫什么樣的邏輯。聯(lián)盟鏈可以采用這種模式開發(fā)。但這套協(xié)議的缺點是技術(shù)難度大,要求開發(fā)人員非常熟悉ABCI回調(diào)接口,而且應(yīng)用的所有邏輯都要自己開發(fā)。
二是基于Ethermint開發(fā)。Ethermint是Tendermint團(tuán)隊開發(fā)的另外一個項目,它把以太坊的Go語言庫拿過來,通過ABCI接口和Tendermint Core進(jìn)行了融合,實現(xiàn)了在PoS協(xié)議上運行以太坊虛擬機(jī)。它的性能很強大,比如在以太坊寫的分布式應(yīng)用,可以直接部署在Ethermint上面,以太坊現(xiàn)有的客戶端工具和開發(fā)工具都可以直接使用?;贓thermint開發(fā)應(yīng)用的好處顯而易見,開發(fā)者可以用熟悉的開發(fā)工具和理念;缺點是面臨以太坊同樣的安全風(fēng)險。
三是基于Cosmos SDK開發(fā)。Cosmos SDK是一個提供了基本區(qū)塊鏈邏輯的ABCI應(yīng)用。它是多代幣的區(qū)塊鏈,賬號可以管理多種代幣,同時它還提供一些常見的功能,如比鏈上治理。它的強大之處在于可以在Cosmos SDK所包含的已有功能、最佳實踐和插件架構(gòu)上快速開發(fā)區(qū)塊鏈應(yīng)用。Cosmos Hub就是基于Cosmos SDK開發(fā)的,這種方式適合開發(fā)公有鏈項目,速度很快。
Cosmos生態(tài)系統(tǒng)
Cosmos的生態(tài)系統(tǒng)總結(jié)起來就是:Cosmos Hub作為支持多幣種的一個樞紐將多個同樣基于Tendermint開發(fā)的區(qū)塊鏈分區(qū)(Zone)連接成一體。Cosmos將在今年底或明年第一季度上線“主網(wǎng)”,即Cosmos Hub。伴隨主網(wǎng)上線,將會同時上線幾個分區(qū),其中一個就是作為公有鏈的Ethermint,另外一個是OmiseGO,接下來是跟以太坊的橋接分區(qū)(Peg Zone)。Hub和Zone之間的通信,通過IBC協(xié)議實現(xiàn)。
IBC協(xié)議
互聯(lián)鏈通信(IBC)協(xié)議是個非阻塞的異步協(xié)議,能保證不同鏈之間不會在交易處理上產(chǎn)生耦合。它通過Merkle樹實現(xiàn)可靠的消息隊列,并將隊列保存在各個分區(qū)里面,實現(xiàn)有序存儲,然后通過把消息的Merkle證明作為IBC數(shù)據(jù)包的一部分發(fā)出去。
在兩個通訊鏈上建立雙向信任時如何操作呢?這是一種特殊的,需要有權(quán)限管理的消息,而且需要人為干涉。相當(dāng)于一個分區(qū)要將所有驗證人的公鑰告訴它想與之建立聯(lián)系的另外一條鏈。當(dāng)需要驗證來自另一條鏈的消息時,只需拿對方的驗證人公鑰集合來驗證其Merkle證明的有效性就可以了。
IBC協(xié)議還會通過一些高級消息類型超時、狀態(tài)清理、跨鏈路由和網(wǎng)關(guān)以及多種模式中繼等復(fù)雜情況進(jìn)行處理。
鏈幣分離
通過IBC可以幫助代幣實現(xiàn)跨鏈?zhǔn)褂?。以STORJ.IO為例,它在鏈上原生的代幣就是自己的代幣,如果STORJ區(qū)塊鏈連到Cosmos Hub上,理論上通過IBC協(xié)議就可以把以太幣或者其他幣轉(zhuǎn)移到STORJ.IO的區(qū)塊鏈上使用。這不是幣種交換的概念,而是完全可以把一個幣轉(zhuǎn)移到另一個區(qū)塊鏈上。假設(shè)一個以太幣通過Cosmos Hub轉(zhuǎn)到另外一個鏈上,比如STORJ.IO,那么以太幣在以太坊就會被鎖定或銷毀,在STORJ平臺上會生成對應(yīng)數(shù)量的以太幣,只不過這個以太幣嚴(yán)格意義上來說不是原生的以太幣,但是它是用STORJ區(qū)塊鏈的多幣系統(tǒng)生成的一個代表對應(yīng)的以太幣價值和功用的代幣符號。當(dāng)你需要把這個代幣再轉(zhuǎn)回來時,就會銷毀STORJ上的代幣,然后在以太坊對應(yīng)的賬號上生成代幣。所以Cosmos在現(xiàn)階段主要是通過IBC協(xié)議實現(xiàn)代幣在不同區(qū)塊鏈之間的轉(zhuǎn)移和跨鏈?zhǔn)褂谩?/p>
由此,許可鏈也可以與公有鏈進(jìn)行交互。許可鏈沒有原生代幣,如果許可鏈因為業(yè)務(wù)需求,需要引入激勵機(jī)制,那么可以和公有鏈進(jìn)行交互,通過Cosmos把代幣轉(zhuǎn)到自己鏈上進(jìn)行使用。
Cosmos——區(qū)塊鏈互聯(lián)網(wǎng)
Cosmos被稱為“區(qū)塊鏈互聯(lián)網(wǎng)”,基于剛剛介紹的技術(shù)特性,“區(qū)塊鏈互聯(lián)網(wǎng)”呈現(xiàn)出以下幾種特點:多樣性、互操作性、性能擴(kuò)展、安全性和自主性。
它的性能擴(kuò)展包括垂直擴(kuò)展和水平擴(kuò)展。水平擴(kuò)展,因為它是按照應(yīng)用的邊界來劃分的一種分片,在減少性能瓶頸上是最符合邏輯的。每一個分區(qū)或者Hub上是按照不同的應(yīng)用來劃分的,所以應(yīng)用的并行處理非常自然。另外從邏輯方面來說,你只需要成為你關(guān)心的應(yīng)用里區(qū)塊鏈的全節(jié)點,提高工作效率。
多樣性和安全性。大部分的生產(chǎn)級應(yīng)用不需要跑在圖靈完備的區(qū)塊鏈上,這也是Cosmos的“宇宙觀”和以太坊的根本性差異之一。這樣做的好處是可以減少攻擊界面,因為用Tendermint寫的針對某個特定場景的ABCI應(yīng)用,只需要幾個定制交易類型就可以,不像以太坊的整個EVM和智能合約代碼都暴露給潛在黑客攻擊。分區(qū)還可以降低成本,提升效率,并通過微調(diào)來優(yōu)化,這些都是這種的架構(gòu)帶來的好處。
互操作性就是不同鏈上的應(yīng)用和智能合約可以通過IBC協(xié)議進(jìn)行交互??梢允沟貌煌拇鷰沤?jīng)濟(jì)得以深度整合,不同的代幣在一條區(qū)塊鏈上可以混合使用,未來可能會實現(xiàn)跨鏈的智能合約調(diào)用。
自主性。舉個例子,通過硬分叉分裂出來的以太坊和以太坊經(jīng)典,它們不可能擁有同樣的驗證節(jié)點集合。按照Cosmos的架構(gòu),這兩條鏈各自跑在自己的分區(qū)里,它們有不同的驗證人,可以實現(xiàn)不同的鏈上治理和經(jīng)濟(jì)激勵、經(jīng)濟(jì)治理。
合并安全性。對于很小的公有鏈,要找100個見證人是很麻煩的事。這時可以與Cosmos Hub共享100個驗證人,實現(xiàn)公有鏈的快速自舉。
電子發(fā)燒友App









評論