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