跨鏈與無(wú)限擴(kuò)容:Cosmos
一、摘要
Cosmos是一個(gè)新型的區(qū)塊鏈網(wǎng)絡(luò)架構(gòu)基礎(chǔ)平臺(tái),將重點(diǎn)放在了跨(區(qū)塊)鏈技術(shù)上,提出了跨鏈溝通以及不同區(qū)塊鏈之間價(jià)值傳遞的解決方案。Cosmos的結(jié)構(gòu)由多個(gè)獨(dú)立的區(qū)塊鏈共同組成,并且都被稱(chēng)作“空間(Zones)”。其中第一個(gè)空間叫做Cosmos中心[Cosmos Hub,中心是翻譯后的結(jié)果,并不意味著這個(gè)Hub是所有區(qū)塊鏈的中心],其他所有空間都與Cosmos中心相連接。Cosmos中心負(fù)責(zé)記錄整個(gè)Cosmos網(wǎng)絡(luò)的狀態(tài),也就是所有其他空間的狀態(tài)。除Cosmos中心外,其他空間之間相互獨(dú)立,只負(fù)責(zé)自己的空間狀態(tài)。Cosmos采用Tindermint共識(shí)機(jī)制解決交易量表現(xiàn)問(wèn)題;在Tindermint共識(shí)機(jī)制中采用權(quán)益證明(Proof of stake)的方式避開(kāi)了資源浪費(fèi)的問(wèn)題,同時(shí)也用于網(wǎng)絡(luò)的治理;Cosmos提出了跨區(qū)塊鏈溝通協(xié)議(Inter-Blockchain communication protocol,IBC)用于解決空間與空間之間的溝通問(wèn)題。
二、Tendermint
Tendermint可以理解為幫助開(kāi)發(fā)區(qū)塊鏈應(yīng)用的一個(gè)軟件,Tendermint提供了安全高效的區(qū)塊鏈共識(shí)機(jī)制解決方案和應(yīng)用程序開(kāi)發(fā)交互界面。我們之前說(shuō)過(guò),區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)是整個(gè)區(qū)塊鏈經(jīng)濟(jì)系統(tǒng)的底層架構(gòu),為去中心化應(yīng)用的開(kāi)發(fā)提供基礎(chǔ)設(shè)施服務(wù)。而Tendermint則既可以作為更底層的解決方案,為區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)服務(wù);同時(shí)也可以跨過(guò)區(qū)塊鏈網(wǎng)絡(luò)平臺(tái),直接為去中心化的應(yīng)用程序服務(wù)。Cosmos區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)就是建立在Tendermint的基礎(chǔ)上,因而在了解Cosmos之前,有必要對(duì)Tendermint做一個(gè)簡(jiǎn)單介紹。
(一)拜占庭容錯(cuò)
Tendermint對(duì)解決拜占庭將軍問(wèn)題(Byzantine generals)提出了一種實(shí)際有效的解決方案。拜占庭將軍問(wèn)題的實(shí)質(zhì)是指,在一個(gè)可能存在惡意參與者的集體中,如何讓這個(gè)集體對(duì)某一事件如何達(dá)成一致的結(jié)果的問(wèn)題。而拜占庭容錯(cuò)是對(duì)拜占庭將軍問(wèn)題的解決。在區(qū)塊鏈中的意思就是,在一個(gè)分布式的網(wǎng)絡(luò)結(jié)構(gòu)中,即使是在存在惡意節(jié)點(diǎn)的情況下,整個(gè)網(wǎng)絡(luò)依然能夠?qū)γ恳惠喰庐a(chǎn)生的唯一區(qū)塊達(dá)成共識(shí)。用EthanBuchman[Tendermint聯(lián)合創(chuàng)始人,而且這個(gè)算法也正是Buchman的博士論文]的話說(shuō)就是“不可靠的參與者共同建立的可靠系統(tǒng)。”
(二)Tendermint的結(jié)構(gòu)
Tendermint的設(shè)計(jì)初衷是為了解決當(dāng)前區(qū)塊鏈中的共識(shí)機(jī)制大一統(tǒng)式(Monolithic)的設(shè)計(jì)(與之對(duì)應(yīng)的是模塊化的設(shè)計(jì))存在的問(wèn)題。大一統(tǒng)的設(shè)計(jì)指區(qū)塊鏈的共識(shí)維持是一個(gè)單一的程序,涵蓋了節(jié)點(diǎn)與節(jié)點(diǎn)之間連接、向全網(wǎng)廣播交易、對(duì)新區(qū)塊的承認(rèn)機(jī)制、賬戶余額、圖靈完備的智能合約等內(nèi)容。這樣的大一統(tǒng)設(shè)計(jì)主要問(wèn)題有兩點(diǎn),一是代碼的重復(fù)利用率低,因?yàn)槿绻遣捎媚K化的設(shè)計(jì),那么細(xì)分的模塊就可以被重復(fù)利用。第二個(gè)是限制了區(qū)塊鏈支持的編程語(yǔ)言。而Tendermint將區(qū)塊鏈的結(jié)構(gòu)分為兩層:共識(shí)引擎(Consensus engine)和程序交互(Application interface)。其中前者負(fù)責(zé)節(jié)點(diǎn)間的信息記錄的一致性,也就是對(duì)區(qū)塊鏈共識(shí)的維持;后者使得智能合約的編寫(xiě)支持任意一種編程語(yǔ)言。
(三)共識(shí)的過(guò)程
區(qū)塊鏈網(wǎng)絡(luò)中的共識(shí)可以理解為全網(wǎng)對(duì)每一輪對(duì)新出現(xiàn)的唯一區(qū)塊的認(rèn)可。在Tendermint中,共識(shí)機(jī)制的參與者被稱(chēng)作驗(yàn)證人(Validators),他們負(fù)責(zé)對(duì)每一輪的新區(qū)塊進(jìn)行提議和投票。整個(gè)共識(shí)達(dá)成的過(guò)程如圖1所示。
圖1 Tendermint實(shí)現(xiàn)共識(shí)的過(guò)程
其中,在每一輪的開(kāi)始(New Round),節(jié)點(diǎn)對(duì)新一輪的區(qū)塊進(jìn)行提議。之后,合格的提議區(qū)塊首先經(jīng)過(guò)一輪預(yù)投票(Prevote)。在提議區(qū)塊獲得2/3以上的投票后,進(jìn)入下一輪的預(yù)認(rèn)可(Precommit),同樣是待獲得2/3以上的驗(yàn)證人預(yù)認(rèn)可后,被提議區(qū)塊就正式獲得了認(rèn)可(Commit)。而得到認(rèn)可的這個(gè)區(qū)塊就被添加的到區(qū)塊鏈中。
Tendermint的整個(gè)共識(shí)過(guò)程看起來(lái)其實(shí)比較簡(jiǎn)單,除了上述的這個(gè)過(guò)程外,還有兩點(diǎn)需要注意。第一,圖1中右下角有兩個(gè)小人正在跳舞,而這種舞叫做“Polka”,來(lái)自捷克。第一輪預(yù)投票的過(guò)程也被稱(chēng)作“Polka”。這個(gè)詞在Tendermint中最開(kāi)始在Buchman的博士論文中出現(xiàn),原因是在預(yù)投票的過(guò)程中,驗(yàn)證人的工作與Polka十分相似[ “The term evolved to polka as it was realized the validators are doing the polka.”引自論文。至于叫這個(gè)名字的更細(xì)節(jié)原因,筆者在查閱資料過(guò)程中并沒(méi)有發(fā)現(xiàn),有興趣的讀者可以自行查找]。
第二,我們上面關(guān)于Tendermint的描述相對(duì)較為簡(jiǎn)單,旨在讓讀者明白其工作過(guò)程,在Tendermint的完整結(jié)構(gòu)中還包括許多內(nèi)容,如治理、P2P的網(wǎng)絡(luò)同步、應(yīng)用程序的開(kāi)發(fā)等等。
三、Cosmos
(一)Cosmos的網(wǎng)絡(luò)結(jié)構(gòu)
在了解了Tendermint的內(nèi)容以后,我們接下來(lái)對(duì)Cosmos進(jìn)行介紹。在文章開(kāi)頭說(shuō)過(guò),Cosmos是由多個(gè)區(qū)塊鏈組成的。這也就是說(shuō),如果我們把區(qū)塊鏈網(wǎng)絡(luò)看作是不同的節(jié)點(diǎn)以去中心化的方式連接而成的網(wǎng)絡(luò),那么Cosmos則就是由不同的區(qū)塊鏈組成的網(wǎng)絡(luò)。圖2是對(duì)Cosmos的結(jié)構(gòu)的一個(gè)直觀描述。其中網(wǎng)絡(luò)中第一個(gè)區(qū)塊鏈為Comos中心,記錄著其他所有區(qū)塊鏈(被稱(chēng)作“空間”)的狀態(tài)。這些空間既可以是公有鏈,也可以是私有鏈。
對(duì)于Cosmos的結(jié)構(gòu)需要強(qiáng)調(diào)的一點(diǎn)是,圖2中看上去Cosmos中心是位于所有空間的中心位置,但是這只能代表Cosmos中心記錄所有其他空間的狀態(tài)功能。并不意味著Cosmos網(wǎng)絡(luò)結(jié)構(gòu)是一個(gè)中心化的結(jié)構(gòu)。事實(shí)上,連接到Cosmos中心的空間并沒(méi)有任何限制,這些空間完全可以作為區(qū)塊鏈網(wǎng)絡(luò)平臺(tái),然后在其平臺(tái)上衍生出其他區(qū)塊鏈或是應(yīng)用程序,這種結(jié)構(gòu)如圖3所示。從這個(gè)角度而言,Cosmos區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)具有無(wú)限擴(kuò)展性。
圖2 Cosmos結(jié)構(gòu)
圖3 擴(kuò)展的Cosmos網(wǎng)絡(luò)結(jié)構(gòu)
(圖中的每一個(gè)圓圈都代表一個(gè)空間)
(二)Cosmos中心
上面我們說(shuō)過(guò),Cosmos中心的功能是記錄其他空間的狀態(tài)。這個(gè)狀態(tài)特指其他空間的資產(chǎn)狀況。空間的資產(chǎn)狀況一般指空間內(nèi)部的代幣擁有量(這個(gè)代幣由空間開(kāi)發(fā)者自己開(kāi)發(fā))。代幣可以通過(guò)跨鏈溝通協(xié)議在不同的空間轉(zhuǎn)移,而這個(gè)過(guò)程由Cosmos中心記錄,并且Cosmos中心負(fù)責(zé)整個(gè)網(wǎng)絡(luò)系統(tǒng)中的各種代幣的總量不會(huì)出現(xiàn)差錯(cuò)[這里主要指不同代幣在不同空間轉(zhuǎn)移的時(shí)候,Cosmos中心保證轉(zhuǎn)出量始終等于轉(zhuǎn)入量]。所以Cosmos中心實(shí)際上就是一個(gè)多資產(chǎn)(代幣)的分布式賬本。而由于這個(gè)總賬本的功能,使得Cosmos中心這條區(qū)塊鏈的安全性在整個(gè)網(wǎng)絡(luò)的區(qū)塊鏈中是最重要的。
(三)空間
每一個(gè)空間都是一個(gè)獨(dú)立的區(qū)塊鏈系統(tǒng)。不同的空間可以通過(guò)Cosmos中心發(fā)送消息溝通,包括轉(zhuǎn)賬。需要注意一點(diǎn)的是,由于我們說(shuō)過(guò),每一個(gè)空間都可以作為一個(gè)區(qū)塊鏈平臺(tái),然后在平臺(tái)上開(kāi)發(fā)出不同的鏈。所以每一個(gè)空間可以擁有超過(guò)一種的代幣。另外,考慮到空間的規(guī)模可大可小,為了保證空間的安全性,每一個(gè)空間至少要擁有4個(gè)驗(yàn)證人。
(四)跨區(qū)塊鏈溝通協(xié)議(IBC)
不同的空間可以溝通傳遞信息,這個(gè)信息包括空間的代幣(下面的例子我們都用轉(zhuǎn)賬作為溝通內(nèi)容)。空間與空間交流的是非對(duì)稱(chēng)的,也就是說(shuō)雙方是依靠著Cosmos中心進(jìn)行,而不是直接進(jìn)行交易。這里的Cosmos中心充當(dāng)?shù)氖且粋€(gè)中介的作用。
為了說(shuō)明IBC的工作原理,我們假設(shè)現(xiàn)在有三個(gè)空間,分別是空間1、Cosmos中心以及空間2。現(xiàn)在空間1中有一個(gè)用戶想要發(fā)送一筆代幣給空間2的另一個(gè)用戶,那么空間1的這個(gè)發(fā)送人需要提供兩個(gè)證明:IBCBlockCommitTx和IBCPacketTx。IBCBlockCommitTx通過(guò)哈希值來(lái)表明發(fā)送方所在區(qū)塊鏈網(wǎng)絡(luò)的最新的區(qū)塊是哪一塊。IBCPacketTx則是轉(zhuǎn)賬本身的信息,包括發(fā)送方的身份證明等內(nèi)容。這兩個(gè)證明以交易請(qǐng)求的方式首先從空間1發(fā)起,在空間1得到認(rèn)可之后,被Cosmos中心所接收,Cosmos中心隨后更新在中心的區(qū)塊鏈上的空間1的狀態(tài)(扣除轉(zhuǎn)賬消息中的代幣數(shù))。然后Cosmos中心也同樣發(fā)起這兩個(gè)交易,更新中心區(qū)塊鏈上的空間2的狀態(tài)(增加轉(zhuǎn)賬消息中的代幣數(shù)),將代幣發(fā)送到空間2中。而在Cosmos中心發(fā)起的兩個(gè)交易證明與先前發(fā)起的不同地方在于,此時(shí)IBCBlockCommitTx證明的是Cosmos中心的最新區(qū)塊,而不是空間1。而IBCPacketTx則與先前的一致。這個(gè)過(guò)程可以通過(guò)圖4來(lái)表示。
圖4 IBC的工作過(guò)程
關(guān)于這個(gè)IBC的工作原理我們需要注意的一點(diǎn)是,我們很容易把這個(gè)跨連交易過(guò)程理解為“運(yùn)送”的過(guò)程,但是實(shí)際上卻有一些差別。這里的“運(yùn)送”是指,如同我們生活中的快遞服務(wù)一樣,用戶發(fā)送的東西通過(guò)快遞公司的中介服務(wù)之后,另一方用戶會(huì)接收到一模一樣的東西。但是在Cosmos中,這個(gè)過(guò)程更像是“凍結(jié)與創(chuàng)造”的過(guò)程。這一點(diǎn)與銀行服務(wù)有些類(lèi)似,一般情況下,收款人收到的錢(qián)并不是打款人轉(zhuǎn)出的那筆一模一樣的錢(qián)(例如打款人支付一張100元,收款人收到2張50元)。在Cosmos中心收到空間1的轉(zhuǎn)賬消息后,會(huì)將對(duì)應(yīng)的代幣“凍結(jié)”起來(lái),然后在空間2“創(chuàng)造”同樣數(shù)量的代幣,這兩個(gè)過(guò)程都是依靠智能合約完成。因此從這個(gè)角度講,當(dāng)Cosmos網(wǎng)絡(luò)中的空間數(shù)目增加,代幣種類(lèi)不斷增多,處理的跨鏈交易增多時(shí),Cosmos中心就相當(dāng)于是一個(gè)公共的代幣倉(cāng)庫(kù)。
四、總結(jié)
從Cosmos的設(shè)計(jì)上我們可以看出,Cosmos試圖構(gòu)建一個(gè)宏大的區(qū)塊鏈經(jīng)濟(jì)網(wǎng)絡(luò)系統(tǒng)。事實(shí)上,Cosmos甚至能夠“兼容”以太坊,這也正是Cosmos正在研究的一個(gè)項(xiàng)目,叫做“Ethermint”。從設(shè)計(jì)上看,Cosmos的擴(kuò)展性給予了其廣闊的前景空間,在垂直面上,Tendermint解決方案支持大規(guī)模的吞吐量以及交易快速處理能力;在水平層面上,跨鏈技術(shù)支持Cosmos網(wǎng)絡(luò)的無(wú)限擴(kuò)容。但是由于其仍然處于開(kāi)發(fā)階段,實(shí)際運(yùn)行后的情況是否能達(dá)到預(yù)期,同其他計(jì)劃中的區(qū)塊鏈網(wǎng)絡(luò)平臺(tái)一樣,有待檢驗(yàn)。
(完)

責(zé)任編輯:售電衡衡
- 相關(guān)閱讀
- 區(qū)塊鏈
- 大數(shù)據(jù)產(chǎn)業(yè)園
- 大數(shù)據(jù)應(yīng)用
-
5大重點(diǎn)任務(wù)11個(gè)重點(diǎn)細(xì)分 河北加快構(gòu)建省級(jí)能源大數(shù)據(jù)中心
-
能源互聯(lián)網(wǎng)注入數(shù)字經(jīng)濟(jì)新動(dòng)能 電力大數(shù)據(jù)實(shí)現(xiàn)更多價(jià)值
-
中國(guó)首個(gè)100%利用清潔能源運(yùn)營(yíng)的大數(shù)據(jù)產(chǎn)業(yè)園投運(yùn)
2020-07-21清潔能源,清潔能源消納,青海
-
探索大數(shù)據(jù) 區(qū)塊鏈實(shí)現(xiàn)與能源互聯(lián)網(wǎng)良好契合
2020-06-09區(qū)塊鏈,電力行業(yè),能源互聯(lián)網(wǎng) -
基于區(qū)塊鏈的含安全約束分布式電力交易方法
-
區(qū)塊鏈在能源交易與協(xié)同調(diào)度的應(yīng)用前景:提升電力交易的自由度和實(shí)時(shí)響應(yīng)效率
2019-11-04區(qū)塊鏈在能源交易與協(xié)同