Cosmos和Polkadot是跨鏈兩大天王級(jí)項(xiàng)目,備受矚目,但其本身具有一定的理解難度,本文從五個(gè)角度對(duì)比Cosmos與Polkadot,為你詳解兩者本質(zhì)區(qū)別,更好理解其特性。
關(guān)于Cosmos和Polkadot之間的差異一直有很多討論,這兩個(gè)項(xiàng)目側(cè)重于跨鏈。如果你不熟悉這兩個(gè)項(xiàng)目,那么這個(gè)推特風(fēng)暴非常好地對(duì)它們進(jìn)行了解釋,并提供了學(xué)習(xí)它們的一些資源。
盡管有很多文章解釋并強(qiáng)調(diào)兩者之間的差異,但是我相信今天大多數(shù)“Cosmos vs. Polkadot”的文章要么存有偏見,要么缺乏細(xì)微差別。這篇文章試圖對(duì)這兩個(gè)項(xiàng)目進(jìn)行更深入的討論,從設(shè)計(jì)上的權(quán)衡到方法上的差異。
為什么要開發(fā)一個(gè)新的區(qū)塊鏈?
有兩個(gè)主要原因可以解釋為什么人們更愿意從頭開始開發(fā)特定應(yīng)用的區(qū)塊鏈,而不是在現(xiàn)有的平臺(tái)上將應(yīng)用以智能合約的形式存在。
首先,現(xiàn)有智能合約平臺(tái)可能無(wú)法提供你的應(yīng)用程序所需的靈活性和可定制性。例如,如果你的應(yīng)用程序需要自定義哈希函數(shù),那么將其寫在以太坊上會(huì)花費(fèi)很多的gas,因?yàn)槊看握{(diào)用它時(shí)都需要在EVM(以太坊虛擬機(jī))上執(zhí)行該函數(shù)。
一個(gè)選擇是建議以太坊協(xié)議將這個(gè)哈希函數(shù)作為預(yù)編譯合約納入其中,但是除非這個(gè)函數(shù)也在許多其他應(yīng)用程序中被廣泛使用,要不然這一提議可能不會(huì)被批準(zhǔn)。從頭開始編寫自己的區(qū)塊鏈讓您可以自由靈活地設(shè)計(jì)區(qū)塊鏈的核心邏輯,來(lái)滿足您的應(yīng)用的特定需求。
第二個(gè)原因是自治。在一個(gè)智能合約平臺(tái)上開發(fā)應(yīng)用程序會(huì)強(qiáng)迫您的應(yīng)用程序遵守它的規(guī)則和管理。這可能包括影響用戶體驗(yàn)的因素,比如出塊時(shí)間和gas價(jià)格,還有比如鏈上操作回滾這樣的狀態(tài)改變決策。
當(dāng)然,獨(dú)立、自治的區(qū)塊鏈放棄了與其他應(yīng)用程序無(wú)縫通信的能力,因?yàn)樗鼈兇嬖谟诰哂胁煌瑺顟B(tài)機(jī)的單獨(dú)的區(qū)塊鏈上。 Cosmos和Polkadot試圖解決這個(gè)問(wèn)題;前者使用Hub-and-Zone模型,后者采用Relay Chain / Parachain模型。
這篇文章將介紹這兩個(gè)項(xiàng)目的大致知識(shí),并將重點(diǎn)弄清楚它們之間的差異。
差異1:本地安全 vs. 全局安全
Cosmos和Polkadot在兩種截然不同的安全模型下運(yùn)行。簡(jiǎn)單地說(shuō),Polkadot的工作原理如下:
Parachains是Polkadot網(wǎng)絡(luò)中的區(qū)塊鏈。這些鏈有自己的狀態(tài)機(jī),自己的規(guī)則,以及自己的本地區(qū)塊生產(chǎn)者(collators)。每個(gè)parachain本質(zhì)上都是一個(gè)獨(dú)立的狀態(tài)機(jī),可以使用任何類型的特有功能,共識(shí)算法,交易成本結(jié)構(gòu)等。
在Polkadot網(wǎng)絡(luò)中,所有的parachain都是中繼鏈(Relay Chain)這個(gè)母鏈的子鏈,它包含所有parachain組合的“全局狀態(tài)”的某種表示。
中繼鏈有自己的共識(shí)算法GRANDPA,由它來(lái)快速地確定parachain鏈上的區(qū)塊。通過(guò)這個(gè)模型,Polkadot中的parachain運(yùn)行在“共享安全”模式下 - 如果中繼鏈有1000個(gè)驗(yàn)證者來(lái)提供高度的安全性,那么任一個(gè)parachain只要連接到中繼鏈就能獲得強(qiáng)大的安全保障。這可以讓子鏈對(duì)其狀態(tài)機(jī)和本地規(guī)則擁有自治權(quán),以及與數(shù)百個(gè)其他鏈共享的強(qiáng)大安全保障。
這個(gè)模型的缺點(diǎn)是,中繼鏈中的驗(yàn)證者對(duì)任一條parachain鏈中的狀態(tài)更改都有最終決定權(quán)。例如,驗(yàn)證者可以出于某種原因一直拒絕來(lái)自某條鏈的collator的出塊,并永久地阻止這條鏈的進(jìn)展被包括在全局狀態(tài)中。
Polkadot試圖通過(guò)打亂驗(yàn)證者來(lái)減少這種情況的發(fā)生,以便于他們驗(yàn)證隨機(jī)的parachain,這降低了特定的驗(yàn)證者審查特定的鏈的可能性。 Polkadot還有另一類稱為Fishermen的驗(yàn)證者,他們不斷檢查驗(yàn)證者是否有惡意行為。
Cosmos Network的設(shè)計(jì)完全不一樣。
在Cosmos網(wǎng)絡(luò)中,不再使用本地/全局模型來(lái)保障安全,每個(gè)區(qū)塊鏈都是獨(dú)立的并且可以自我保護(hù)。每個(gè)區(qū)塊鏈都運(yùn)行自己的共識(shí)算法,并且每個(gè)區(qū)塊鏈的驗(yàn)證者獨(dú)自負(fù)責(zé)區(qū)塊鏈的安全。
Cosmos網(wǎng)絡(luò)使用hub-and-zone模型來(lái)實(shí)現(xiàn)互操作性,其中zone(獨(dú)立區(qū)塊鏈)可以通過(guò)hub(也是獨(dú)立的區(qū)塊鏈)“發(fā)送代幣”到其它的zone。這個(gè)協(xié)議稱為IBC(鏈間通信),它是在鏈之間發(fā)送消息來(lái)表示代幣傳遞的協(xié)議。 IBC協(xié)議還在開發(fā)中,首先解決的是代幣傳遞,最終可以在區(qū)塊鏈之間傳遞任何類型的消息。
將這個(gè)模型與Polkadot相比較,這里最大的差別是每個(gè)zone的狀態(tài)只由其驗(yàn)證者來(lái)保障安全。如果zone想要具有強(qiáng)大的安全性,那么它需要自行完成并招募自己的驗(yàn)證者,這對(duì)于小的應(yīng)用程序可能比較困難。不過(guò),對(duì)于某些需要更多控制權(quán)的應(yīng)用來(lái)說(shuō),這是一個(gè)強(qiáng)大的賣點(diǎn)。
例如,Binance通過(guò)將自己的節(jié)點(diǎn)作為Binance Chain的驗(yàn)證者作為起點(diǎn)來(lái)自行建立他們的DEX。通過(guò)這種方式,他們可以在測(cè)試DEX并推出新功能時(shí)對(duì)這個(gè)鏈有完全的控制權(quán)。
在我看來(lái),很難想象Binance Chain會(huì)放棄對(duì)哪些交易進(jìn)入哪個(gè)區(qū)塊的自治權(quán),如果選擇在以太坊或Polkadot上開發(fā),他們就將不得不這樣做。同樣,我相信這樣做的公司會(huì)不少,比如Telegram,F(xiàn)acebook,Kakao。
差異2:治理與會(huì)員
Polkadot和Cosmos之間的第二個(gè)主要區(qū)別是關(guān)于治理和成員資格。在Polkadot網(wǎng)絡(luò)中,有一個(gè)單獨(dú)的中繼鏈和一些中繼鏈的驗(yàn)證者能夠支持的parachain。目前的估計(jì)是,將有100個(gè)parachain,但這個(gè)數(shù)字以后可以減少或增加。
Polkadot網(wǎng)絡(luò)通過(guò)拍賣機(jī)制為成為parachain分配時(shí)間 - 最高出價(jià)者能夠通過(guò)在PoS系統(tǒng)中鎖定DOT(Polkadot的原生加密貨幣)來(lái)保證一段固定時(shí)間內(nèi)parachain的存在。這意味著要成為Polkadot網(wǎng)絡(luò)中的一個(gè)parachain,只要你想繼續(xù)作為parachain,你需要購(gòu)買大量的DOT并鎖定。
另一方面,Cosmos 網(wǎng)絡(luò)沒(méi)有固定的成員規(guī)則 - 任何人都可以建立一個(gè)hub或zone。Hub本身就是自治的區(qū)塊鏈,其中設(shè)計(jì)了連接其他區(qū)塊鏈的功能。兩個(gè)例子是Cosmos Hub和Iris Hub,前者是最近由Tendermint團(tuán)隊(duì)推出的,后者是一個(gè)計(jì)劃連接主要在中國(guó)和亞洲其他地區(qū)運(yùn)行的區(qū)塊鏈的Hub。這種hub-and-zone模型使鏈間通信更加高效,因?yàn)椴辉偈桥c每個(gè)其它區(qū)塊鏈相連接,而是只要與hub相連即可。
與成員資格密切相關(guān)的是兩個(gè)網(wǎng)絡(luò)的治理流程的不同。在Polkadot網(wǎng)絡(luò)中,治理決策由投票者持有的DOT數(shù)量決定。將有一個(gè)正式的鏈上投票機(jī)制,但還沒(méi)有最終確定。除了正常的權(quán)重投票,Polkadot還采用委員會(huì)作為被動(dòng)利益相關(guān)者的代表。該委員會(huì)由一群人組成,開始時(shí)6個(gè)人,每?jī)芍茉黾?人直到24人。
每個(gè)成員都經(jīng)過(guò)投票同意選出來(lái)。盡管這個(gè)治理流程的具體細(xì)節(jié)還沒(méi)有最終確定,但其可能的結(jié)果是有多種方法來(lái)更改中繼鏈中的參數(shù),例如出塊時(shí)間,出塊獎(jiǎng)勵(lì)等,還有多種方法來(lái)改變parachain的成員資格。例如,Polkadot治理流程可能會(huì)改變所需的DOT數(shù)量或成為parachain的拍賣機(jī)制。
一個(gè)常見的誤解是,DOT持有者可以投票隨意踢出某些parachain,但實(shí)際上DOT持有者只能改變成為會(huì)員的過(guò)程。這意味著成為了parachain就可以在指定時(shí)間里保留這樣的資格。
另一方面,Cosmos 網(wǎng)絡(luò)并沒(méi)有唯一的“治理”過(guò)程。每個(gè)hub和zone都有自己的治理流程,并且沒(méi)有適用于整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的最高規(guī)則。當(dāng)人們談?wù)摗癈osmos的治理”時(shí),他們指的是由Tendermint團(tuán)隊(duì)推出的Cosmos Hub的治理。
Cosmos Hub有一套規(guī)則來(lái)讓任何人可以發(fā)送文本提案,并且Atom持有者被允許在其上進(jìn)行投票,其中,投票的權(quán)重由他們擁有的Atom數(shù)量決定。
差異3:鏈間通信
Polkadot和Cosmos之間的另一個(gè)不同是它們的鏈間通信協(xié)議的結(jié)構(gòu)及其設(shè)計(jì)目標(biāo)。 Polkadot的目標(biāo)是在并行鏈(parachains)之間傳遞任意消息。這意味著Parachain A可以調(diào)用Parachain B中的智能合約,可以在鏈之間發(fā)送代幣,或者進(jìn)行其他類型的通信。
另一方面,Cosmos專注于不同鏈之間的資產(chǎn)轉(zhuǎn)移,這種協(xié)議更簡(jiǎn)單。目前,這兩種通信協(xié)議都沒(méi)有完全確定,也都還沒(méi)有開發(fā)好。這方面的細(xì)節(jié)可以參考IBC(鏈間通信)和ICMP(parachain中的鏈間消息傳遞)。
鏈間通信的最大挑戰(zhàn)不是怎么樣在一個(gè)鏈上表示另一個(gè)鏈上的數(shù)據(jù),而是如何處理鏈上出現(xiàn)數(shù)據(jù)來(lái)自分叉并且又重新組織來(lái)將交易排除在外的情況。這是由于結(jié)構(gòu)設(shè)計(jì)上Cosmos和Polkadot最不同的地方。
Polkadot使用兩種不同的機(jī)制來(lái)保護(hù)鏈間通信。首先,共享安全模式的存在使得交換消息更容易。共享安全的附帶結(jié)果是所有的并行鏈都有統(tǒng)一的安全級(jí)別,因此每個(gè)鏈可以彼此信任。
為了理解這一點(diǎn),我們來(lái)用Ethereum(高安全性)和Verge(低安全性)的互操作來(lái)舉例。如果我們想在Verge上表示 Ethereum,我們可以鎖定ETH并在Verge區(qū)塊鏈上挖一些ETH-XVG代幣。
不過(guò),由于安全性較低,攻擊者可以對(duì)Verge鏈實(shí)施51%攻擊,并對(duì)以太坊區(qū)塊鏈發(fā)送雙花交易,這讓攻擊者可以取走比他實(shí)際擁有的更多的ETH。因此,在彼此發(fā)送消息時(shí)安全性高的鏈很難信任安全性低的鏈。當(dāng)消息被傳送給到不同安全級(jí)別的多個(gè)不同鏈時(shí),這就變得更加復(fù)雜。
理論上,統(tǒng)一的共享安全是一種保護(hù)鏈間通信的好方法。不過(guò),為了實(shí)現(xiàn)這個(gè)目標(biāo),這個(gè)協(xié)議必須能夠經(jīng)常并隨機(jī)地打亂分配給每個(gè)鏈的驗(yàn)證者。這導(dǎo)致了經(jīng)典的“數(shù)據(jù)可用性問(wèn)題”,即每個(gè)驗(yàn)證者必須不斷地下載分配給它的每個(gè)parachain的狀態(tài)。這是今天這一領(lǐng)域最困難的問(wèn)題之一,目前還不清楚Polkadot能夠解決這個(gè)問(wèn)題。
其次,Polkadot使用了Fishermen的概念,這些Fishermen是Polkadot網(wǎng)絡(luò)上的“賞金獵人”,他們觀察Parachains上的惡意行為。從某種意義上說(shuō),這是針對(duì)惡意行為的“第二道防線”。
在負(fù)責(zé)某個(gè)特定parachain的驗(yàn)證者讓一個(gè)無(wú)效區(qū)塊不可逆轉(zhuǎn)的情況下,F(xiàn)ishermen可以向中繼鏈提交證據(jù)并有效地回滾Polkadot網(wǎng)絡(luò)的整個(gè)狀態(tài)以及其中的所有parachain。在鏈間通信階段,我們最擔(dān)心的是一個(gè)鏈重組,另一個(gè)照常運(yùn)行,但是Polkadot確保,如果發(fā)現(xiàn)了無(wú)效的區(qū)塊,所有內(nèi)容都會(huì)回滾。
Cosmos對(duì)鏈間通信采用了完全不同的方法。由于每個(gè)區(qū)塊鏈都有自己的驗(yàn)證者,因此存在共謀的驗(yàn)證者而“變異的”zone是完全有可能的。這意味著,當(dāng)一個(gè)zone想要與另一個(gè)zone通信時(shí),zone A需要信任Cosmos Hub(為了尋找連接路線)和zone B中的驗(yàn)證者。
理論上,它聽起來(lái)效率低下,因?yàn)閦one A中的人員在他們決定向zone B發(fā)送消息之前必須查找其中的驗(yàn)證者,但我相信實(shí)際情況不會(huì)那么糟糕。 像Polychain Labs或Zaki Manian的iqlusion等“著名的”驗(yàn)證者可能會(huì)驗(yàn)證許多不同的區(qū)塊鏈,并且隨著時(shí)間的推移積累起“良好”的聲譽(yù)。這意味著當(dāng)zone A明白zone B由Polychain Labs和iqlusion驗(yàn)證時(shí),他們就可能決定信任它。
不過(guò),即使人們信任一個(gè)鏈,它仍然可能被惡意者接管并引發(fā)問(wèn)題。讓我們看看一個(gè)演講中的例子:
比方說(shuō),這些小紅點(diǎn)表示一種ETM代幣(Ethermint zone的原生貨幣)。zone A,B和C中的用戶想將ETM用于這些zone內(nèi)的一些應(yīng)用程序,并且他們信任Ethermint zone,所以他們發(fā)送IBC消息來(lái)將ETM傳遞到這些zone。現(xiàn)在假設(shè)Ethermint驗(yàn)證者共謀、發(fā)起雙花交易,隨意動(dòng)用代幣等等。
這將對(duì)網(wǎng)絡(luò)的其余部分產(chǎn)生影響,因?yàn)镋TM代幣也存在于不同的zone。不過(guò),唯一將受此影響的是在Ethermint或其他zone內(nèi)持有ETM代幣的人。 Ethermint中的惡意驗(yàn)證者不可能隨意破壞除自身以外的其他zone。這是Cosmos設(shè)計(jì)的目的 - 確保惡意行為不會(huì)影響整個(gè)網(wǎng)絡(luò)。
相反,如果無(wú)效的狀態(tài)轉(zhuǎn)換發(fā)生在中繼鏈(全局狀態(tài))上,并且沒(méi)有被Fishermen接收到,那么這可能會(huì)影響Polkadot網(wǎng)絡(luò)中的每個(gè)并行鏈。我們不能假設(shè)并行鏈都是明顯不同的,因?yàn)樗鼈冏罱K仍然與網(wǎng)絡(luò)的其余部分共用一個(gè)全局狀態(tài)。
差異4:共識(shí)算法
Polkadot 中繼鏈?zhǔn)褂靡粋€(gè)由GRANDPA團(tuán)隊(duì)開發(fā)的共識(shí)算法。這個(gè)算法可以讓中繼鏈快速地確定所有并行鏈的許多區(qū)塊的最終狀態(tài),并且還可以接受大量的驗(yàn)證者(超過(guò)1000個(gè))。
簡(jiǎn)單來(lái)將,這是因?yàn)椴⒎撬序?yàn)證者都需要對(duì)每個(gè)區(qū)塊進(jìn)行投票 - 相反,驗(yàn)證者可以對(duì)他們認(rèn)為有效的、高度最高的區(qū)塊進(jìn)行投票,并且這個(gè)算法可以將該投票傳遞給那個(gè)區(qū)塊的所有祖先。
通過(guò)這個(gè)過(guò)程,共識(shí)算法找到票數(shù)最多的區(qū)塊集合并認(rèn)定它是最終有效的。 GRANDPA還處在開發(fā)階段,我們不知道它實(shí)際運(yùn)行的情況將會(huì)怎么樣。
并行鏈可以使用各種共識(shí)算法來(lái)達(dá)成局部共識(shí)。 Polkadot提供了一個(gè)軟件開發(fā)工具包(Substrate),它帶有3種即裝即用的共識(shí)算法:GRANDPA,Rhododendron和Aurand??赡軐?huì)有更多算法添加到Substrate中,并且將在Polkadot網(wǎng)絡(luò)內(nèi)供使用。
另一方面,Cosmos網(wǎng)絡(luò)中的每個(gè)區(qū)塊鏈都可以使用任一種符合稱為ABCI規(guī)范的共識(shí)算法。這個(gè)規(guī)范的創(chuàng)建是為了讓鏈間的通信標(biāo)準(zhǔn)化。目前,只有Tendermint算法符合這個(gè)規(guī)范,但現(xiàn)在還有其他的一些嘗試。
從高一些的層面來(lái)看,Tendermint算法的工作原理是讓每個(gè)驗(yàn)證者彼此討論來(lái)同意/拒絕某個(gè)區(qū)塊,從而在每個(gè)區(qū)塊層面上確定其不可逆。這個(gè)算法速度很快,并且在“Game of Stakes“項(xiàng)目的具有200個(gè)驗(yàn)證者和6秒出塊時(shí)間的實(shí)時(shí)環(huán)境中進(jìn)行了壓力測(cè)試。
Cosmos團(tuán)隊(duì)還提供了一個(gè)軟件開發(fā)工具包,其中的Tendermint算法可以即裝即用。Tendermint最大的缺點(diǎn)是驗(yàn)證者之間很高的通信費(fèi)用。這意味著盡管它可以用不到200個(gè)驗(yàn)證者相當(dāng)快速地工作,但使用2000個(gè)驗(yàn)證者則會(huì)慢得多。不過(guò),這里的權(quán)衡是通過(guò)異步方式你獲得了安全。
這意味著在一個(gè)網(wǎng)絡(luò)分區(qū)中,不再是有兩個(gè)最終將會(huì)合并的交易歷史(并且在這個(gè)過(guò)程中1個(gè)歷史將被丟棄),而是網(wǎng)絡(luò)將會(huì)停止。這很重要,因?yàn)槿绻憧吹健按_定了最終狀態(tài)”的交易,那么甚至在最糟的網(wǎng)絡(luò)狀況下它也不會(huì)被逆轉(zhuǎn)。
我個(gè)人對(duì)此的觀點(diǎn)是,在所使用的共識(shí)算法的基礎(chǔ)上比較這兩個(gè)項(xiàng)目長(zhǎng)期來(lái)看并不是特別有用。這兩個(gè)項(xiàng)目都在還在開發(fā)中,將來(lái)都將會(huì)在其設(shè)計(jì)中使用許多不同的共識(shí)算法。今天的絕大多數(shù)應(yīng)用程序應(yīng)該都會(huì)運(yùn)行良好,無(wú)論它們是用Tendermint還是使用Polkadot的共識(shí)算法中的一個(gè)。
差異5:Substrate vs Cosmos SDK
Polkadot和Cosmos都提供了一個(gè)軟件開發(fā)工具包,分別稱為Substrate和Cosmos SDK。它們的目的都在于讓開發(fā)人員能夠輕松開始構(gòu)建自己的區(qū)塊鏈,并包含各種即裝即用的模塊,比如治理模塊(投票系統(tǒng)),抵押模塊,身份驗(yàn)證模塊等等。
兩者之間的主要不同在于Cosmos SDK支持Go,而Substrate支持任何一種可以編譯為WASM(Web Assembly)的語(yǔ)言,這讓開發(fā)人員有了更多的靈活性。
結(jié)論
雖然這篇文章非常長(zhǎng)、內(nèi)容詳盡,但仍然沒(méi)有面面俱到。 Cosmos和Polkadot之間的差別不太好理解,并且有許多我可能漏掉的內(nèi)容。很難全面了解這兩個(gè)項(xiàng)目,有時(shí)候它們的開發(fā)文檔每天都在變化。
這兩個(gè)項(xiàng)目仍處于開始階段,并將在明年開足馬力 - 我提出的一些問(wèn)題可能很快就不再存在??傊议_始相信Polkadot優(yōu)于Cosmos的優(yōu)勢(shì)如下:
1.應(yīng)用程序開發(fā)人員不需要自己構(gòu)建自己的安全機(jī)制
2.如果他們可以解決數(shù)據(jù)可用性,那么共享安全下的鏈間消息傳遞就更加容易
3.他們似乎對(duì)Substrate的期望非常高(WASM,更多的即裝即用的共識(shí)算法和模塊)
4.專注于更好地為跨合約調(diào)用提供任意類型的消息傳遞(現(xiàn)在還不確定用例)
5.似乎有更多的開發(fā)人員在開發(fā)1.0版本
相反,與Polkadot相比,Cosmos的優(yōu)勢(shì)如下:
1.Cosmos在正式運(yùn)行。Polkadot還沒(méi)有。
2.Polkadot的parachain會(huì)員資格是有限制的、并且可能成本非常高
3.對(duì)特定項(xiàng)目(例如,Binance) 有更多的定制性
4.parachain鏈的惡意驗(yàn)證者可能會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)的腐敗。 Cosmos將腐敗只限制在zone和相應(yīng)的資產(chǎn)內(nèi)
5.Cosmos SDK已經(jīng)被許多項(xiàng)目使用
6.專注于更簡(jiǎn)便,更容易地轉(zhuǎn)賬。今天已經(jīng)有驗(yàn)證過(guò)的用例。
評(píng)論
查看更多