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