區(qū)塊鏈中Polkadot網(wǎng)絡(luò)和Cosmos網(wǎng)絡(luò)之間的差異介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Polkadot和Cosmos是目前最受大家關(guān)注的兩個(gè)明星項(xiàng)目,這兩個(gè)項(xiàng)目都以跨鏈而為大家所知,目前也有不少文章從某些角度對(duì)這兩個(gè)項(xiàng)目進(jìn)行比較。其中,來自康奈爾大學(xué)計(jì)算機(jī)系的Julian Koh對(duì)這兩個(gè)項(xiàng)目的分析尤為條理清晰,相信這篇文章能夠幫助大家對(duì)這兩個(gè)項(xiàng)目有更加深入的了解和思考。
加密社區(qū)關(guān)于Cosmos和Polkadot之間的差異有過大量討論,這兩個(gè)項(xiàng)目都側(cè)重于區(qū)塊鏈的互操作性。如果你對(duì)這兩個(gè)項(xiàng)目還不太熟悉,不妨可以先訪問一下Linda Xie(@ljxie)的推特,上面有一個(gè)“推特頭腦風(fēng)暴”較好地解釋了這兩個(gè)項(xiàng)目,還提供了一些學(xué)習(xí)資源。
盡管有很多帖子解釋并強(qiáng)調(diào)了兩者之間的差異,但老實(shí)說,我覺得社區(qū)里很多人其實(shí)沒有徹底理解“Cosmos vs Polkadot”之間的差異,有的存在偏見,有的忽略了細(xì)節(jié)。所以,我希望通過這篇文章對(duì)這兩個(gè)項(xiàng)目進(jìn)行更深入的探討,包括架構(gòu)性權(quán)衡、哲學(xué)差異等。
那么,為什么要構(gòu)建一個(gè)新區(qū)塊鏈?
坦率地說,人們之所以更愿意從頭開始構(gòu)建特定應(yīng)用的區(qū)塊鏈而不是基于現(xiàn)有平臺(tái)編寫一個(gè)智能合約應(yīng)用程序,主要有兩個(gè)原因:
首先,如果你基于現(xiàn)有智能合約平臺(tái)可能無法為你的應(yīng)用程序提供所需的靈活性和定制化功能。舉個(gè)例子,如果你的應(yīng)用程序需要自定義哈希函數(shù),那么在以太坊區(qū)塊鏈上寫入的話可能需要支付很多gas費(fèi)用,因?yàn)槊看卧谝蕴惶摂M機(jī)(EVM)上執(zhí)行的時(shí)候都需要調(diào)用一次函數(shù)。不僅如此,除非這個(gè)函數(shù)能夠在其他應(yīng)用程序中被廣泛使用,否則你的提案很可能不會(huì)被批準(zhǔn)。相比之下,從頭開始編寫自己的區(qū)塊鏈,你可以自由靈活地設(shè)計(jì)區(qū)塊鏈核心邏輯,充分滿足自己的應(yīng)用需求。
第二個(gè)原因是“自主權(quán)”。在智能合約平臺(tái)上構(gòu)建應(yīng)用程序的時(shí)候,會(huì)迫使你必須遵循協(xié)議的規(guī)則和治理方案。在這種情況下,很多因素會(huì)影響到用戶體驗(yàn),比如阻塞時(shí)間、Gas定價(jià)、以及狀態(tài)變化決策(比如區(qū)塊鏈回滾)等。
如果使用具有自主權(quán)的獨(dú)立區(qū)塊鏈能夠?yàn)閼?yīng)用程序提供無縫通信能力,因?yàn)檫@些應(yīng)用程序可以在獨(dú)立區(qū)塊鏈上的獨(dú)立狀態(tài)機(jī)(state machines)運(yùn)行。 Cosmos和Polkadot都試圖解決這個(gè)問題,因此Cosmos帶來了“中樞-和-區(qū)域”(Hub-and-Zone)模型,Polkadot推出了“中繼鏈/平行鏈”(Relay Chain / Parachain)模型。
本文會(huì)介紹這兩個(gè)項(xiàng)目的大致情況,并會(huì)重點(diǎn)梳理這兩個(gè)項(xiàng)目之間的差異。
差異#1:本地化安全 vs. 全局化安全
Cosmos和Polkadot在兩種截然不同的安全模型下運(yùn)行。簡單地說,Polkadot的工作原理如下:
平行鏈(Parachains)是Polkadot網(wǎng)絡(luò)中的區(qū)塊鏈,這些鏈有自己的狀態(tài)機(jī)、自己的規(guī)則、以及自己的本地區(qū)塊生成器(校對(duì)者)。各個(gè)平行鏈本質(zhì)上是一個(gè)獨(dú)立的狀態(tài)機(jī),可以使用任何類型的獨(dú)立功能,一致性算法,交易成本結(jié)構(gòu)等。在Polkadot網(wǎng)絡(luò)中,所有平行鏈都是母鏈——也就是中繼鏈(Relay Chain)的子節(jié)點(diǎn),而中繼鏈中包含了所有平行鏈中組合的“全局狀態(tài)”部分表示。中繼鏈有自己的共識(shí)算法:GRANDPA共識(shí),該算法可以快速確定鏈中的區(qū)塊。通過這個(gè)模型,Polkadot網(wǎng)絡(luò)中的區(qū)塊鏈可以在“共享安全”模式下運(yùn)行——如果中繼鏈具有1000個(gè)驗(yàn)證器能夠保證高度安全,那么任何連接到中繼鏈的平行鏈都能受益于這種強(qiáng)大的安全性,同時(shí)子鏈對(duì)自己狀態(tài)機(jī)和其他本地規(guī)則的“自主權(quán)”不會(huì)受到任何影響,還能與數(shù)百個(gè)其他區(qū)塊鏈共享安全保護(hù)。
不過,這種模型的缺點(diǎn)是中繼鏈中的驗(yàn)證器對(duì)任何鏈中的狀態(tài)變化都有最終決定權(quán)。舉個(gè)例子,中繼鏈的驗(yàn)證者可以處于某些原因,不斷拒絕來自某個(gè)特定平行鏈的區(qū)塊,甚至可以永久地阻止該平行鏈被納入到全局狀態(tài)之中。為了避免出現(xiàn)這種情況,Polkadot網(wǎng)絡(luò)試圖通過改組驗(yàn)證者來確保他們可以驗(yàn)證隨機(jī)的平行鏈,大幅減少驗(yàn)證某個(gè)特定平行鏈的可能性。此外,Polkadot網(wǎng)絡(luò)還設(shè)立了一類叫做“漁民”(Fishermen)的特殊驗(yàn)證人,他們會(huì)不斷檢查驗(yàn)證人是否存在惡意行為。
Cosmos 網(wǎng)絡(luò)的架構(gòu)則完全不同。
Cosmos 網(wǎng)絡(luò)不是使用本地/全局模型來確保安全性的,而是讓每個(gè)區(qū)塊鏈都相對(duì)獨(dú)立,并且可以進(jìn)行自我保護(hù)。每個(gè)區(qū)塊鏈都有自己的共識(shí)算法,每個(gè)區(qū)塊鏈的驗(yàn)證人也會(huì)單獨(dú)負(fù)責(zé)保護(hù)區(qū)塊鏈。Cosmos 網(wǎng)絡(luò)使用“中樞-和-區(qū)域”模型實(shí)現(xiàn)互操作性,其中區(qū)域(獨(dú)立區(qū)塊鏈)可以通過中樞(也是獨(dú)立的區(qū)塊鏈)路由“將代幣”“發(fā)送”到其他區(qū)域。該協(xié)議稱為IBC(區(qū)塊間通信),它是用于在區(qū)塊鏈之間發(fā)送消息以表示代幣傳輸?shù)膮f(xié)議。 IBC協(xié)議正在不斷完善,他們希望從代幣傳輸開始,最終可以支持區(qū)塊鏈之間傳遞任何類型的消息。
如果將此模型與Polkadot進(jìn)行比較的話,會(huì)發(fā)現(xiàn)這里最大的區(qū)別就是每個(gè)區(qū)域的狀態(tài)都是由其驗(yàn)證人單獨(dú)維護(hù)和保護(hù)的。如果某個(gè)區(qū)域想要具有比其他區(qū)域強(qiáng)大的安全性,則需要引入、或招募更多驗(yàn)證人,這對(duì)于較小的應(yīng)用程序來說可能會(huì)比較困難。然而,對(duì)于某些需要更多控制的應(yīng)用來說,這絕對(duì)是一個(gè)很強(qiáng)大的賣點(diǎn)。以幣安為例,幣安通過將自己的節(jié)點(diǎn)作為幣安鏈(Binance Chain)的驗(yàn)證人起點(diǎn),然后自建了去中心化交易所(DEX)通過這種方式,幣安可以完全控制自己的區(qū)塊鏈,測(cè)試去中心化交易所,然后推出更多新功能。就目前來說,很難想象幣安鏈會(huì)放棄 “自主權(quán)”,他們可能更希望自己來決定哪些交易進(jìn)入哪些區(qū)塊。如果建立在以太坊或Polkadot上,這種“自主權(quán)”肯定沒有那么強(qiáng)。出于同樣的原因,相信未來會(huì)有類似的一批公司,比如Telegram、Facebook和Kakao等,都會(huì)選擇自己構(gòu)建區(qū)塊鏈并保持完全的控制權(quán),未來再把其他區(qū)塊鏈接入其中。
差異#2:治理 & 會(huì)員
Polkadot和Cosmos之間的第二個(gè)主要區(qū)別在于治理和會(huì)員資格。
在Polkadot網(wǎng)絡(luò)里,有一個(gè)獨(dú)立的中繼鏈和一些子鏈,子鏈?zhǔn)强恐欣^鏈的驗(yàn)證人提供支持。按照目前估計(jì)的數(shù)據(jù),中繼鏈可以接入大約100個(gè)子鏈,單證數(shù)字未來會(huì)進(jìn)一步擴(kuò)大(當(dāng)然也可能縮小)。中繼鏈會(huì)通過拍賣機(jī)制給接入的子鏈分配“插槽”(slot),在一定時(shí)間段內(nèi)出價(jià)最高的人可以在權(quán)益證明系統(tǒng)中鎖定DOT(Polkadot的原生加密貨幣)來確保自己鎖定了一條平行鏈插槽。這意味著,如果你想要成為Polkadot網(wǎng)絡(luò)中的一條平行鏈,就需要購買大量的DOT代幣并鎖定它們,否則你就無法持續(xù)使用這個(gè)平行鏈——這種模式更像是一種“會(huì)員制”,你需要付費(fèi)入會(huì)(鎖定DOT代幣),才能享受會(huì)員利益(鎖定平行鏈)。
相比之下,Cosmos網(wǎng)絡(luò)并沒有固定的會(huì)員規(guī)則。任何人都可以建立一個(gè)“中樞”或“區(qū)域”。中樞本身就是一個(gè)主權(quán)區(qū)塊鏈,旨在連接其他區(qū)塊鏈。最典型的兩個(gè)例子分別是Tendermint團(tuán)隊(duì)推出的Cosmos Hub,以及計(jì)劃連接主要在中國和亞洲其他地區(qū)運(yùn)營的區(qū)塊鏈的中樞Iris Hub。這種“中樞-和-區(qū)域”模式讓鏈間通訊變得更加高效,因?yàn)槊總€(gè)區(qū)塊鏈都不需要與其他區(qū)塊鏈連接,只需要連接到中樞即可。
與“會(huì)員”相關(guān)的另一個(gè)差異,是這兩個(gè)網(wǎng)絡(luò)的治理流程。在Polkadot網(wǎng)絡(luò)中,治理決策取決于選民持有的DOT代幣數(shù)量,他們正在創(chuàng)建一個(gè)正式的鏈上投票機(jī)制,但這個(gè)機(jī)制目前還沒有最終確定。除了常規(guī)的基于權(quán)益投票之外,Polkadot還設(shè)立了一個(gè)委員會(huì)來代表被動(dòng)權(quán)益持有人(passive stakeholders),該委員會(huì)最初共有六個(gè)人,之后每兩周增加一人,直到24人。每個(gè)委員會(huì)委員都是通過批準(zhǔn)投票選出的,雖然這種治理流程的具體細(xì)節(jié)還沒有最終確定,但目前他們會(huì)按照這種治理方式來處理中繼鏈中參數(shù)更改,比如調(diào)整區(qū)塊時(shí)間、區(qū)塊獎(jiǎng)勵(lì)、以及平行鏈會(huì)員規(guī)則等。舉個(gè)例子,Polkadot治理流程能夠改變平行鏈拍賣機(jī)制所需的DOT代幣數(shù)量。不過,人們常常對(duì)這種治理機(jī)制有一種誤解,認(rèn)為DOT代幣持有人可以通過投票把平行鏈“隨意”踢出去,但實(shí)際上DOT持幣人只能改變平行鏈的會(huì)員資質(zhì),而平行鏈在網(wǎng)絡(luò)里存在的時(shí)間其實(shí)取決于他們抵押在Polkadot網(wǎng)絡(luò)里的代幣時(shí)間長短。
另一方面,Cosmos網(wǎng)絡(luò)則沒有一個(gè)單一的“治理”流程,這意味著每個(gè)“中樞”和“區(qū)域”內(nèi)都有自己的治理流程,并沒有適用于整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的“中心化治理”規(guī)則。當(dāng)人們談?wù)摗癈osmos治理”時(shí),其實(shí)所指的是由Tendermint團(tuán)隊(duì)發(fā)起的區(qū)塊鏈Cosmos Hub治理。Cosmos Hub有一套治理治理規(guī)則,允許任何人發(fā)送文本提案,并允許Atom代幣之持有人對(duì)該提案進(jìn)行投票,投票權(quán)取決于他們擁有的Atom代幣數(shù)量。Chorus One曾專門在其博客上發(fā)文解釋了Cosmos Hub的治理規(guī)則,感興趣的可以去閱讀一下。
差異#3:鏈內(nèi)通信
Polkadot和Cosmos之間的另一個(gè)區(qū)別,是他們區(qū)塊鏈之間通信協(xié)議的體系結(jié)構(gòu)及其設(shè)計(jì)目標(biāo)。Polkadot的目標(biāo)是能夠在平行鏈之間任意傳遞消息,這意味著平行鏈 A可以調(diào)用平行鏈B的智能合約,繼而在區(qū)塊鏈之間傳輸代幣,或任何其他類型的通信。另一方面,Cosmos專注于區(qū)塊鏈之間的資產(chǎn)轉(zhuǎn)移,這是一種更簡單的協(xié)議。目前,由于這兩種通信協(xié)議都沒有完成構(gòu)建,因此也沒有明確鏈內(nèi)通信規(guī)定,尚未構(gòu)建。關(guān)于這兩個(gè)規(guī)范的更多細(xì)節(jié)可以在這里找到:IBC(區(qū)塊鏈間通信)和ICMP(平行鏈的鏈內(nèi)消息傳遞)。
然而,區(qū)塊鏈鏈內(nèi)通信的最大挑戰(zhàn)并不是如何在一個(gè)區(qū)塊鏈鏈上表示另一個(gè)區(qū)塊鏈鏈上的數(shù)據(jù),而是如何處理來自其他分叉鏈的數(shù)據(jù)源并重新組織、并排除其他區(qū)塊鏈的交易。從架構(gòu)設(shè)計(jì)角度來看,這也是Cosmos和Polkadot兩者差異最大的地方。
Polkadot使用兩種不同的機(jī)制來保護(hù)區(qū)塊鏈的鏈間通信。首先,Polkadot網(wǎng)絡(luò)希望獲得共享安全性,并基于此來更輕松地交換消息。不過共享安全性的“副作用”是所有平行鏈中必須要有統(tǒng)一的安全級(jí)別,這樣才能確保每個(gè)平行鏈可以相互信任。為了更好地去理解這一點(diǎn),讓我們舉個(gè)在Verge區(qū)塊鏈(低安全性)和以太坊區(qū)塊鏈(高安全性)進(jìn)行互操作的例子。如果我們想在Verge上“表示”以太坊,我們可以鎖定一部分以太坊(ETH)并在Verge區(qū)塊鏈上注入一些ETH-XVG代幣。但是,由于Verge區(qū)塊鏈的安全性較低,攻擊者可以對(duì)Verge區(qū)塊鏈實(shí)施51%攻擊并向以太坊區(qū)塊鏈發(fā)送雙重支付,這樣黑客就能提取比他實(shí)際擁有的更多的以太坊。因此,高安全性的區(qū)塊鏈鏈在發(fā)送鏈間信息的時(shí)候很難信任低安全性的區(qū)塊鏈。不僅如此,如果消息(或交易)在不同安全級(jí)別的多個(gè)區(qū)塊鏈之間傳遞的時(shí)候,情況將會(huì)變得更加復(fù)雜。
理論上,擁有統(tǒng)一的共享安全性是確保區(qū)塊鏈之間安全通信的好方法。但是為了實(shí)現(xiàn)這一點(diǎn),安全協(xié)議不得不經(jīng)常隨機(jī)調(diào)整(shuffle)分配給每個(gè)平行鏈的驗(yàn)證人,結(jié)果“數(shù)據(jù)可用性問題”也會(huì)隨之而來,即每個(gè)驗(yàn)證人必須不斷下載、分配給自己的每個(gè)平行鏈狀態(tài)。事實(shí)上,這也是目前行業(yè)里最難以解決的問題之一,我們還不清楚Polkadot網(wǎng)絡(luò)會(huì)如何解決它。
其次,Polkadot使用了“漁民”驗(yàn)證人的概念,這些漁民在Polkadot網(wǎng)絡(luò)上扮演著“賞金獵人”的角色,他們的主要工作就是觀察平行鏈上的惡意活動(dòng)。從某種意義上說,這是針對(duì)惡意活動(dòng)的“第二道防線”。如果某個(gè)平行鏈的驗(yàn)證人最終確定了無效區(qū)塊,“漁民”可以向中繼鏈提交證據(jù)并有效地回滾Polkadot網(wǎng)絡(luò)的整個(gè)狀態(tài)以及其中的所有平行鏈。在鏈間通信期間,我們最擔(dān)心的情況是一個(gè)區(qū)塊鏈正在重組,而另一個(gè)區(qū)塊鏈卻在正常進(jìn)行,不過即便有這種情況,一旦發(fā)現(xiàn)了無效區(qū)塊,Polkadot會(huì)確保所有區(qū)塊都回滾。
另一方面,Cosmos網(wǎng)絡(luò)采用了完全不同的方法來進(jìn)行鏈間通信。由于每個(gè)區(qū)塊鏈都有自己的驗(yàn)證人,因此完全有可能出現(xiàn)這樣一種情況:即幾個(gè)驗(yàn)證人勾結(jié)在一起創(chuàng)造了一個(gè)“邪惡”區(qū)域。這意味著當(dāng)一個(gè)區(qū)域想要與另一個(gè)區(qū)域通信時(shí),區(qū)域A需要信任區(qū)域B中的Cosmos Hub(為了路由)和驗(yàn)證人。理論上,這種方式聽起來效率低,因?yàn)閰^(qū)域A中的人員必須在向區(qū)域B發(fā)送消息之前查找區(qū)域B里的驗(yàn)證人,但是在實(shí)際操作中應(yīng)該不會(huì)那么糟糕。一些知名驗(yàn)證人(比如Polychain Labs、Zaki Manian的iqlusion)很可能會(huì)驗(yàn)證許多不同的區(qū)塊鏈,而且已經(jīng)在網(wǎng)絡(luò)內(nèi)建立了“良好驗(yàn)證人”的聲譽(yù)。此時(shí),當(dāng)區(qū)域A看到區(qū)域B已經(jīng)被Polychain Labs和iqlusion驗(yàn)證過了,那么就可以快速信任它。
然而,即使人們信任一個(gè)區(qū)塊鏈,它仍然可能被惡意行為者接管并導(dǎo)致出現(xiàn)問題。請(qǐng)參考下面這個(gè)例子:
在上圖中,我們假設(shè)每個(gè)小紅點(diǎn)代表一個(gè)叫做“ETM”的代幣,這個(gè)代幣是Ethermint區(qū)域內(nèi)的原生貨幣。區(qū)域A、B和C里額度用戶希望在自己區(qū)域內(nèi)的某些應(yīng)用程序中使用ETM代幣,并且他們也信任Ethermint區(qū)域,因此他們會(huì)執(zhí)行IBC消息,將ETM傳輸?shù)竭@些區(qū)域?,F(xiàn)在,我們假設(shè)Ethermint驗(yàn)證人串通并開始雙重支出、任意移動(dòng)代幣等惡意行為。顯然,這將對(duì)網(wǎng)絡(luò)的其余部分產(chǎn)生影響,因?yàn)镋TM代幣也存在于不同的區(qū)域。然而,唯一受此影響的人是在Ethermint或其他區(qū)域內(nèi)持有ETM代幣的人。需要注意的是,Ethermint區(qū)域中的惡意驗(yàn)證人不可能任意破壞除自身以外的其他區(qū)域,而這也是Cosmos架構(gòu)的安全目的——確保惡意行為不會(huì)影響整個(gè)網(wǎng)絡(luò)。
相比之下,在Polkadot網(wǎng)絡(luò)里如果在中繼鏈(全局狀態(tài))下發(fā)送無效狀態(tài)轉(zhuǎn)換、而且“漁民”也沒有發(fā)現(xiàn)這種情況,那么就會(huì)影響整個(gè)網(wǎng)絡(luò)內(nèi)的所有區(qū)塊鏈。我們不能單純地假設(shè)每個(gè)平行鏈本質(zhì)上是不同的區(qū)塊鏈,因?yàn)樗麄冏罱K都會(huì)與網(wǎng)絡(luò)內(nèi)的其他區(qū)塊鏈共享一個(gè)全局狀態(tài)。
差異#4:共識(shí)算法
Polkadot網(wǎng)絡(luò)中繼鏈?zhǔn)褂玫氖荊RANDPA團(tuán)隊(duì)開發(fā)的共識(shí)算法,該算法允許中繼鏈快速完成處理來自全部平行鏈的許多區(qū)塊,而且還可以支持容納更多驗(yàn)證人(超過1000個(gè))。簡單來說,由于Polkadot網(wǎng)絡(luò)內(nèi)并非每個(gè)驗(yàn)證人都需要對(duì)每個(gè)區(qū)塊進(jìn)行投票,導(dǎo)致驗(yàn)證人其實(shí)可以對(duì)自己認(rèn)為有效的單個(gè)最高區(qū)塊進(jìn)行投票,而且這個(gè)算法可以把投票結(jié)果傳遞給該區(qū)塊的所有前繼區(qū)塊(ancestor)。在這種狀況下,Polkadot算法會(huì)找到獲得“絕對(duì)多數(shù)”投票的區(qū)塊集合?,F(xiàn)階段,GRANDPA仍處于開發(fā)階段,我們還不知道它在現(xiàn)實(shí)世界中的表現(xiàn)會(huì)如何。
平行鏈可以使用各種共識(shí)算法最終形成一個(gè)局部共識(shí),Polkadot提供了一個(gè)軟件開發(fā)工具包(Substrate),它帶有3種開箱即用的共識(shí)算法:GRANDPA,Rhododendron和Aurand。當(dāng)然,未來可能會(huì)有更多共識(shí)算法添加到Substrate中,并且支持在Polkadot網(wǎng)絡(luò)中使用。
另一方面,Cosmos網(wǎng)絡(luò)中的每個(gè)區(qū)塊鏈都可以使用任何共識(shí)算法,但這些共識(shí)算法必須符合一種被叫做ABCIspec的規(guī)范。創(chuàng)建這個(gè)規(guī)范的目的,是為了標(biāo)準(zhǔn)化區(qū)塊鏈之間的通信。目前,只有Tendermint算法符合此規(guī)范,但其他項(xiàng)目同樣可以創(chuàng)建符合此規(guī)范的其他共識(shí)算法。如果站在一個(gè)較高級(jí)別的角度來看,Tendermint算法的工作原理是讓每個(gè)驗(yàn)證人相互通信,確定是否批準(zhǔn)/拒絕單個(gè)區(qū)塊,從而在每個(gè)區(qū)塊級(jí)別上達(dá)成一致性的最終結(jié)果。該算法速度很快,并且在200個(gè)驗(yàn)證人和6秒?yún)^(qū)塊時(shí)間的實(shí)時(shí)環(huán)境中進(jìn)行了壓力測(cè)試。 Cosmos團(tuán)隊(duì)也提供了一個(gè)軟件開發(fā)工具包,可以直接使用Tendermint算法。這里有一篇博文是對(duì)共識(shí)算法的一個(gè)很好的入門,你也可以通過這篇文章了解其他有用的Tendermint特性。
不過,Tendermint最大的缺點(diǎn)是驗(yàn)證人之間的通信成本很高。這意味著當(dāng)驗(yàn)證人數(shù)量在200個(gè)左右的時(shí)候可以相當(dāng)快地工作,但當(dāng)驗(yàn)證人數(shù)量達(dá)到2000之后就會(huì)慢得多。當(dāng)然,魚和熊掌不可兼得,雖然處理速度會(huì)有所下降,但安全性可能會(huì)更好。這意味著在一個(gè)網(wǎng)絡(luò)分區(qū)中,如果把兩個(gè)不同的交易歷史合并成一個(gè),并且其中另一個(gè)會(huì)被丟棄的話,會(huì)導(dǎo)致網(wǎng)絡(luò)暫停。這點(diǎn)非常重要,因?yàn)槿绻?dāng)你看到一筆“已完成”交易,意味著這筆交易永遠(yuǎn)不會(huì)被撤銷,即便在最糟糕的網(wǎng)絡(luò)條件下也不會(huì)。
對(duì)此,筆者個(gè)人的看法是,現(xiàn)在比較這兩個(gè)網(wǎng)絡(luò)的共識(shí)算法似乎并不是特別有用,你需要等待更長時(shí)間才能看到他們之間的優(yōu)劣,因?yàn)槟壳敖^大多數(shù)應(yīng)用程序無論使用Tendermint還是使用Polkadot的共識(shí)算法都應(yīng)該可以正常工作。
差異#5:Substrate vs Cosmos 軟件開發(fā)包
Polkadot和Cosmos都提供了軟件開發(fā)工具包,一個(gè)叫“Substrate”,一個(gè)叫“Cosmos SDK”,它們都可以幫助開發(fā)人員更輕松地構(gòu)建自己的區(qū)塊鏈。不僅如此,這兩個(gè)軟件開發(fā)工具包還包含了許多“開箱即用”的模塊,比如治理模塊(投票系統(tǒng))、權(quán)益分配模塊(staking modules)、身份驗(yàn)證模塊等。這兩個(gè)軟件開發(fā)工具包之間的主要區(qū)別在于Cosmos SDK支持Go,而Substrate支持任何編譯為WASM(Web Assembly)的語言,也為開發(fā)人員提供了更大的靈活性。
這兩個(gè)軟件開發(fā)工具包都可以構(gòu)建全新的區(qū)塊鏈框架,而且會(huì)在未來幾年添加更多新功能。
總結(jié)
雖然這篇文章寫了很多東西,但其實(shí)并沒有把Cosmos和Polkadot之間的差異充分說明,因?yàn)楹芏嗉?xì)微差別其實(shí)是很難掌握、也很容易錯(cuò)過的。所以,一般而言我們很難全面了解這兩個(gè)項(xiàng)目,畢竟他們現(xiàn)在都處于起步階段,預(yù)計(jì)明年可能會(huì)有較大發(fā)展,一些目前遇到的問題屆時(shí)也會(huì)得到充分解決。
總體而言,Polkadot對(duì)Cosmos的主要優(yōu)勢(shì)有以下五點(diǎn):
1、應(yīng)用程序開發(fā)人員不需要自己考慮安全性;
2、如果可以解決數(shù)據(jù)可用性問題,則共享安全下的鏈內(nèi)消息傳遞會(huì)變得更容易;
3、Polkadot對(duì)Substrate(WASM,更多的共識(shí)算法和開箱即用模塊)很有信心;
4、專注于平行鏈之間智能合同調(diào)用之間更好地進(jìn)行消息傳遞。(目前還不確定用例)
5、1.0版本的開發(fā)人員更多
Cosmos對(duì)Polkadot的主要優(yōu)勢(shì)有以下六點(diǎn),分別是:
1、Cosmos是實(shí)時(shí)的,Polkadot不是;
2、Polkadot有一個(gè)限制性的,成本也更昂貴的平行鏈會(huì)員流程;
3、對(duì)于某些特定項(xiàng)目(例如幣安),能夠提供更好的定制化支持;
4、Polkadot網(wǎng)絡(luò)平行鏈內(nèi)的惡意驗(yàn)證人可以在整個(gè)網(wǎng)絡(luò)中傳播腐敗,而Cosmos僅將腐敗限制在區(qū)域和相應(yīng)的資產(chǎn)內(nèi);
5、Cosmos SDK已經(jīng)被很多項(xiàng)目使用過了;
6、專注于更簡單、更輕松、更準(zhǔn)確的資產(chǎn)轉(zhuǎn)移,而且已經(jīng)有驗(yàn)證過的用例了。