雖然有很多文章解釋和強調了 Cosmos 與 Polkadot 之間的差異,但作者認爲今天大多數有關「Cosmos vs Polkadot」的文章要麼有偏見,要麼缺乏探討雙方的細微差別。本文將試圖從架構上的權衡到哲學理念上的差異對這兩個項目進行更深入的討論。

原文標題:《5 Differences between Cosmos & Polkadot》
作者:Julian Koh,Metastable Capital 顧問
編譯:Jhonny

揭祕 Cosmos 與 Polkadot 五大區別:兩種截然不同的跨鏈哲學Julian Koh,Metastable Capital 顧問

爲何搭建一條新的區塊鏈?

首先,現存的智能合約平臺可能並不能滿足你搭建的應用所需的靈活性和可定製性要求。比如,如果你的應用要求一個自定義的哈希函數,那麼在以太坊上編寫這個哈希函數將花費大量的 gas 費用,因爲每次調用時都需要在 EVM 上執行該函數。

一種選擇是建議以太坊協議將該哈希函數作爲預編譯合約(precomplied contract)包含在以太坊協議中,但除非該哈希函數在很多其他的應用中也廣泛被使用,不然這個建議是不會被批准的。

從頭開始編寫自己的區塊鏈可以讓你自由和靈活地設計該區塊鏈的核心邏輯,以滿足你搭建的應用的特定需求。

第二個原因就是從中獲得的主權性(也即控制權)。在某個現有的智能合約平臺搭建應用,這將要求你的應用必須遵循該平臺協議的規則和治理:從影響用戶體驗的因素(如出塊時間和 gas 定價)到改變狀態的決策 (如鏈回滾),都有可能涉及。

當然,一個獨立的、讓你擁有主權的區塊鏈平臺意味着放棄了與其他應用進行無縫通信的能力,因爲這些應用是在有着單獨的狀態機(state machine)的區塊鏈上運行的。Cosmos 和 Polkadot 試圖解決的是:Cosmos 的 Hub-Zone 模式和 Polkadot 的 Relay Chain/Parachain 模式

這篇文章將假定讀者已經對這兩個項目有大致的瞭解,並將重點梳理出它們之間的差異。

區別 1:本地 vs 全局安全

Cosmos 和 Polkadot 在兩種完全不一樣的安全模式下運行。

簡單來說,Polkadot 的工作原理如下:

揭祕 Cosmos 與 Polkadot 五大區別:兩種截然不同的跨鏈哲學Polkadot 網絡的架構

Parachains (平行鏈) 是 Polkadot 網絡中的區塊鏈,這些 Parachain 有着自己的狀態機、自己的規則和本地的區塊生產者 (即 collators,校對人)。

每條 Parachain 實際上都是一臺獨立的狀態機,可以利用任何類型的獨特功能、共識算法和交易成本結構等等。

在 Polkadot 網絡中,所有的 Parachains 都是一條被稱爲 Relay Chain (中繼鏈) 的父鏈的子鏈,Relay Chain 包含了所有 Parachains 合併起來的「全局狀態 (global state)」的某種表徵形式。

Relay Chain 有着自己的共識算法,即 GRANDPA 共識,該算法能夠快速地在 Parachain 上敲定區塊。通過這種模式,Polkadot 網絡中的 parachains 就運行在一個「共同的安全」模式中 —— 如果 Relay Chain 擁有 1,000 以上的驗證者來保證高度的安全性,那任何一條 parachain 都可以通過簡單地連接到 Relay Chain 來從這種安全性中獲益。這允許 parachain 掌控自身的狀態機、其他的本地規則以及與其他數百條 parachains 共享的高安全性。

Polkadot 的這種模式的缺點在於,Relay Chain 中的驗證者(validator)對任何一條 parachain 做出的狀態更改擁有最終決定權。比如,出於某種原因,驗證者可能會不斷地拒絕來自某條特定的 parachain 的 collators (校對人,也即區塊生產者)創建的區塊,並永久性地阻止該條 parachain 的進程被被包含在全局狀態(global state)之中。

爲此,Polkadot 試圖通過打亂驗證者來減少這種問題的發生,這樣驗證者就可以隨機地驗證 parachain,降低了某個特定的驗證者審查某條特定的 parachain 的可能性。此外,Polkadot 也具有另一類稱爲 Fishermen (釣魚人) 的驗證者,他們會不斷地檢查驗證者是否存在惡意行爲。

相比而言,Cosmos 網絡的架構完全不一樣:.

揭祕 Cosmos 與 Polkadot 五大區別:兩種截然不同的跨鏈哲學Cosmos 網絡的架構

在 Cosmos 網絡中,每條區塊鏈都是獨立並進行自我保護的,而不是像 Polkadot 那樣使用一種本地 / 全局模式來保障安全。每條區塊鏈都將運行自己的共識機制,每條鏈的驗證者僅僅負責保障該條鏈的安全。

Cosmos 網絡使用一個 hub-zone 模式來實現每條鏈之間的互操作性(interoperability),其中 zone (一條獨立的區塊鏈)可以通過 Hub (同樣也是一條獨立的區塊鏈)向其他的 zones「發送代幣」。Cosmos 使用的協議稱爲 IBC 協議(Inter-Blockchain Communication protocol,即跨鏈通信協議),這是一種在不同的區塊鏈之間傳遞用於表示代幣轉移的信息的協議。IBC 協議尚處於開發進程中,起初將實現代幣轉移,最終將實現在區塊鏈之間傳遞任何類型的信息。

與 Polkadot 的架構模式對比,我們可以發現,Cosmos 的最大的區別在於每個 zone (獨立的區塊鏈)的安全都是僅僅有這條區塊鏈的驗證者來保障的。如果某個 zone 想要獲得很高的安全性,那它將需要引導並補充更多的驗證者,而這對於一些較小的應用來說可能是很困難的。

但是對於某些需要擁有更多掌控權的應用來說,這是一個強大的賣點--比如,Binance (幣安)通過使自己的節點成爲幣安鏈(Binance Chain)的驗證者,以此來引導他們的 DEX (去中心化交易所),通過這種方式,幣安就能在測試其 DEX 以及推出新功能時完全控制幣安鏈。

作者認爲,難想象幣安鏈會放棄對哪些交易進入哪個塊的控制權,但如果幣安鏈是搭建在以太坊或是 Polkadot 平臺之上,那就不得不放棄這種控制權了。出於同樣的原因,作者認爲將會出現一類公司(比如 Telegram、Facebook 和 Kakao 等)選擇搭建自己的區塊鏈並由自己掌握控制權,未來這種鏈與其他鏈進行連接的重要性將微乎其微。

區別 2:治理 & 成員資格

Polkadot 和 Cosmos 的第二大區別在於兩者的治理和成員資格。

在 Polkadot 網絡中,只存在一條 Relay Chain 和一定數量的 Parachains (由 Relay Chain 的驗證者支持)。當前的預計是,Polkadot 網絡中將容納 100 條 parachains,但這一數量可能在將來有所增加或減少。

Polkadot 網絡通過一種拍賣機制來分配 parachain 的鏈槽 (parachain slots) -- 出價最高者將能夠通過在一個 PoS 系統中鎖定 DOT (Polkadot 網絡的原生代幣) 從而獲得一個鏈槽 (slot)。這意味着,如果想要稱爲 Polkadot 網絡中的一條 Parachain,那你將需要購買大量的 DOT 代幣並鎖定起來,而且如果你想要繼續運行一條 Parachain,就必須一直鎖定這些 DOT 代幣。

另一方面,在 Cosmos 網絡中不存在固定的成員資格規則 —— 任何人都可以搭建一條 Hub 鏈或者一條 Zone 鏈。Hub 本身是擁有主權(控制權)的區塊鏈,搭建的目的是鏈接其他的區塊鏈。

其中的一個例子是最近由 Tendermint 團隊搭建的 Cosmos Hub 鏈(https://cosmos.bigdipper.live/),另一個例子就是計劃將主要在中國和亞洲其他地區運營的那些區塊鏈連接起來的 Iris Hub 鏈 (https://www.irisnet.org/)。

Hub-Zone 模式能夠使跨鏈通信更加高效,因爲每條鏈只需與一條 Hub 鏈相連接,之後就可以與連接此 Hub 鏈的其他區塊鏈進行連接了。

揭祕 Cosmos 與 Polkadot 五大區別:兩種截然不同的跨鏈哲學Hubs (右圖) 在連接多條區塊鏈方面更加高效

與成員資格緊密相關的是這兩個網絡的治理過程 (governance processes)。

在 Polkadot 網絡中,治理決策是投票者持有的 DOT 代幣數量來決定的。在鏈上會有一個正式的投票機制,但這方面還沒有最終確定,可以通過此鏈接查看最新相關更新信息:

https://github.com/paritytech/polkadot/wiki/Governance

除了定期的由持幣量加權的投票之外,Polkadot 也使用委員會 (council) 的理念來代表被動的利益相關者(即不主動參加投票的持幣者)。該委員會會由 6 人組成,每兩週增加 1 人,直到總人數滿 24 人。每個委員會成員都是通過認可投票(approval vote)的方式來選擇。

雖然有關這種治理過程的具體細節還沒有最終敲定,但這意味着存在一些方式能夠改變 Relay Chain 中的一些參數(比如區塊時間、區塊獎勵等等),以及改變獲取 Parachain 鏈槽的成員資格規則。比如,Polkadot 的治理過程可能會改變成爲 Parachain 所要求持有的 DOT 數量或者相關的拍賣機制。

一個常見的誤解就是認爲 DOT 持有者可以隨意地通過投票來將 Parachain 踢出去,但實際上 DOT 持有者只能改變成員資格的過程,也就是說,當某條鏈通過鎖定一定數量的 DOT 成爲一條 Parachain 之後,在其鎖定這些 DOT 代幣的整個期間,這條 Parachain 都是有擔保的。

另一方面,Cosmos 網絡並沒有單一的治理過程。每條 Hub 鏈和 Zone 鏈都有着自己的治理過程,沒有適用於整個區塊鏈網絡的中心規則集。當人們談論「Cosmos 的治理」時,指的是 Cosmos Hub 的治理,也即那條由 Tendermint 團隊推出的 Hub 鏈。Cosmos Hub 鏈有着一套規則集,任何人都可以發起提議,並且 Atom (Cosmos 發行的代幣)持有者可以對提議進行投票,他們的投票權重有持有者持有的代幣數量來決定。通過下方鏈接可以進一步瞭解有關 Cosmos Hub 的治理過程:

https://blog.chorus.one/an-overview-of-cosmos-hub-governance/

區別 3:跨鏈通信

Polkadot 和 Cosmos 的第三個區別就是兩者在跨鏈通信協議的架構及其設計目標的區別。

Polkadot 的目標是在 Parachains 之間傳遞任意消息,這意味着 Parachain A 可以調用 Parachain B 中的智能合約,可以在兩條鏈之間轉移代幣,或者任何其他類型的通信。

另一方面,Cosmos 專注於區塊鏈之間的資產轉移,這是一種更簡單的協議。

當前,這兩種通信協議規範都還沒有充分地完善和建成。有關這兩種規範的更多細節,請參閱:

但當前在跨鏈通信方面的最大挑戰並不是如何在一條鏈上表示另一條鏈的數據,而是當這些數據來源的那條鏈分叉和重組了,並將這筆交易排除出去時,如何處理這種情況。這是 Cosmos 和 Polkadot 在架構設計方面最大的不同之處!

Polkadot 使用兩種不同的機制來保證跨鏈通信的安全:

首先,Relay Chain 和 Parachains 共享安全性使交換消息變得更容易。共享安全性 (shared security) 的另一個作用是所有的 Parachains 都用着相同級別的安全性,其結果是這些鏈之間可以相互信任。

爲了便於理解這一點,我們以將以太坊 (安全性高) 和 Verge (安全性低) 之間進行相互操作作爲例子:如果我們想要在 Verge 上表徵以太坊,我們可以在 Verge 區塊鏈上鎖定 ETH 並鑄造一些 ETH-XVG 代幣,但由於 Verge 的安全性低,攻擊者可能會對 Verge 發起 51% 攻擊並向以太坊區塊鏈上發送一筆雙花,允許該攻擊者能夠提取比他實際擁有的更多的 ETH。

因此,在相互發送消息時,對於安全性高的區塊鏈來說,很難回去信任安全性低的區塊鏈。而當消息是經由多條具有不同安全級別的區塊鏈進行傳遞時,這將使情況更加複雜。

理論上來說,共享安全性是一個保證跨鏈通信的良好方式。但是,爲了達到這一目標,跨鏈通信協議必須能夠經常性和隨機性地打亂那些分配給每條 parachain 的驗證者。這帶來了經典的「數據可用性問題」,即每個驗證者必須經常下載他被分配到的每一條 Parachain 鏈的狀態。這是當前這一領域最爲困難的問題之一,目前還尚不清楚 Polkadot 將能否解決這一問題!

其次,Polkadot 使用了 Fishermen (釣魚人) 的概念,他們是 Polkadot 網絡中監視 Parachains 的惡意活動的「賞金獵人」。從某種意義上說,這是 Polkadot 網絡抵禦惡意行爲的「第二道防線」。如果某條特定的 Parachain 的驗證者敲定了一個無效的區塊,那 Fishermen 可以向 Relay Chain 提交一個證明,並有效地將 Polkadot 網絡和相關的 Parachains 的整個狀態都進行回滾。

在跨鏈通信期間,我們最爲擔心的情況是其中一條鏈在重組 (reorganizing) 中,而另一條鏈正在正常地進行中,但是 Polkadot 會確保一旦發現了無效區塊,一切都會回滾!

相比之下,Cosmos 則採取了一種完全不同的方式來進行跨鏈通信。由於在 Cosmos 網絡中,每條鏈都擁有自身的驗證者,完全有可能存在一些包含串謀驗證者的「惡意」 Zone 鏈,這意味着當某一條 Zone 鏈想要與另一條 Zone 鏈通信時,Zone A 需要信任 Cosmos Hub 以及 Zone B 中的驗證者。

理論上來說,這聽起來並不十分高效,因爲 Zone A 中的人在決定發送消息之前,將必須調查 Zone B 中的所有驗證者,但作者認爲在是在實際操作中,這也並沒有那麼糟糕:諸如 Polychain Labs 等「著名的」驗證者和 Zaki Manian 的 iqlusion 都很可能將驗證很多不同的區塊鏈,且隨着時間的推移建立起「良好驗證者」的名聲。這意味着,當 Zone A 看到 Zone B 是由 Polychain Labs 和 iqlusion 驗證時,就會決定信任 Zone B。

區別 4:共識算法

Polkadot 的 Relay Chain 使用了一種由該團隊發明的稱爲 GRANDPA 的共識算法。該算法允許 Relay Chain 快速地敲定很多來自所有 Parachains 的區塊,並且也能容納大量的驗證者(超過 1,000 個)。

簡單來說,這並不是因爲所有的驗證者都需要對每一個區塊進行投票,而是驗證者可以對某個他們認爲有效的、高度最高的區塊進行投票,並且該算法會將投票應用於該區塊之前的所有區塊。通過這種方式,該算法會找到那些擁有絕大多數票數的區塊並將這些區塊進行敲定。GRANDPA 尚處於開發階段,我們也不清楚該算法將在實際中表現如何。

在 Polkadot 網絡中,Parachains 可以使用一系列不同的共識算法來達成本地共識。Polkadot 提供一個軟件開包 Substrate(https://github.com/paritytech/substrate),Substrate 提供了三種縣城的共識算法:GRANDPA、Rhododendron 和 Aurand。很可能將會有更多的共識算法被增加到 Substrate 之中,並且將能在 Polkadot 網絡中使用。

另一方面,Cosmos 網絡中的每條鏈都可能會使用任何一種共識算法,只要該共識算法遵守一個稱爲 ABCI 的規範 (https://tendermint.com/docs/spec/abci/)。

該規範的創建是爲了實現鏈之間通信的標準化。當前,只有 Tendermint 的共識算法符合該規範的要求,但當前也正在通過一些努力來創建符合該規範的其他共識算法。

從高層次來看,Tendermint 的算法使通過使每個驗證者都相互對話,以此來同意 / 拒絕任何單個區塊,在單個區塊的層次上進行最終敲定。該算法速度很快,已經在一個有 200 個驗證者的實時環境中進行了壓力測試,在 Game of Stakes 遊戲中的出塊時間達到了 6 秒。Cosmos 團隊同樣也提供一個軟件開發包,其中包含了 Tendermint 的算法可供使用。想要了解更多有關此共識算法,可以通過下方鏈接進行了解:

https://medium.com/tendermint/a-to-z-of-blockchain-consensus-81e2406af5a3

Tendermint 算法的最大缺點就是該算法在驗證者時間有着很高的通信成本(high communication overhead)。這意味着雖然該算法可以相當快地與大約 200 名驗證者運行,但如果驗證者是 2,000 個時,該算法將變得非常緩慢。但是,其中的權衡是在異步(asynchrony)中獲得安全性,這是非常重要的,因爲如果你看到了某筆交易被「敲定了」,那即便是在最糟糕的網絡狀況下,這筆交易將不會被逆轉的。

對此,作者的個人觀點是,從長遠來看,將這兩個項目基於它們所使用的共識算法進行比較並不是特別有用。Polkadot 和 Cosmos 在創建的架構都將在未來允許許多不同的共識算法在網絡中被使用,當前絕大多數應用程序都可以很好地運行,無論它們使用 Tendermint 還是 Polkadot 的共識算法。

區別 5:Substrate vs Cosmos SDK

Polkadot 和 Cosmos 都提供一個軟件開發包,分別是 Substrate (https://www.parity.io/substrate/) 和 CosmosSDK(https://cosmos.network/sdk)。這兩個開發包的目的都是爲了使開發者能夠更容易地開始搭建自己的區塊鏈,其中包括各種開箱即用的模塊(包括治理模塊)、staking 模塊、認證模塊等等。

兩個開發包的主要區別在於,Cosmos SDK 支持 Go 語言,而 Substrate 支持任何一種兼容於 WASM (Web Assembly)的語言,使其給予開發者更多的靈活性。這兩個開發包都是用於搭建區塊鏈的全新框架,將在接下來幾年內增加更多的功能。

結論

雖然這篇文章很長也很詳細,但並不是詳盡的。Cosmos 和 Polkadot 之間的區別很難理解,而且也可能有一些細節是作者沒有提及的。要全面瞭解這兩個項目是非常困難的,有時相關文檔會隨着時間的推移而改變。這兩個項目都處於襁褓階段,並有望在下一個年度大大得以發展 —— 因此本文中提及的一些觀點可能在之後會過時。

總結而言,作者認爲 Polkadot 在以下幾個方面相比 Cosmos 更具優勢:

  • 應用程序開發者需要引導自己的安全性;
  • 如果我們能夠解決數據可用性問題,那共享安全性情況下的跨聯消息傳遞將變得更容易;
  • 他們似乎對 Substrate 開發包 (WASM,更多的共識算法 & 開箱即用的模塊) 更有野心;
  • 專注於爲跨 parachain 合約調用傳遞任意消息 (當前此用例尚不明確)
  • 似乎搭建 1.0 版本的開發者更多。

相反,Cosmos 相比於 Polkadot 的優勢主要有以下幾個方面:

  • Cosmos 已經上線了,而 Polkadot 還沒有上線;
  • Polkadot 在 parachain 成員資格過程方面更具限制 & 成本也可能更高;
  • 對於特定的項目 (如幣安) 來說,Cosmos 具有更多的可定製性;
  • Polkadot 網絡中的 Parachains 鏈的惡意驗證者可能在整個網絡中擴展其破壞影響,而 Cosmos 將破壞影響限定在一個 Zone 鏈 & 相應的資產中;
  • 已經有很多項目在使用 Cosmos SDK 了 (https://cosmos.network/ecosystem);
  • Cosmos 專注於更簡單、更容易地進行資產轉移,當前已經證明了其用例。

來源鏈接:medium.com