見出し画像

PolkadotとCosmosは何が違うのか?

こんにちは、you425です。

前回、前々回とPolkadot・Cosmosの話をしてきましたが、今回は予告通り両者の違いを考察していきたいと思います。

よく「何が違うの?」とか「どっちがいいの?」と疑問に持たれている方を見かけますが、この記事が参考になれば幸いです。

下記2つの記事を読んだ前提で進めていきますので、未だ読まれてない方はご一読いただければと思います。

また、今回は性質上少し難しい話が続くと思います。

「細けぇことはいいんだよ!」というかたは最初の概念の違いと最後のまとめだけ読むのでもいいかもしれません。

それでは進めていきます。

※個人の解釈や感想が強めに出ますのでお気をつけください。


1.エコシステムとしての概念の違い

正直仕組みやテクノロジーの部分は一般ユーザーからしたらよくわからない領域だと思います。

なのでどのようにして相互運用性を持ったエコシステムが成り立つか、ここがわかれば十分と言えば十分かもしれません。
というわけで言語化していきましょう、案外簡単です。

Cosmos:相互運用性を持ったブロックチェーン群(ソブリンチェーン群)
Polkadot:独自性を持った子チェーンとそれをまとめる親チェーン(シャーディング)

これでばっちりですね!とはいかないかもしれないので、いつものように国に例えて行きましょう。

Cosmos:複数の国からなる同盟(例えばEU)
Polkadot:自治権の強い地方からなる連邦政府(例えばアメリカ)

これだとなんとなく違いに納得いく方も多いのではないでしょうか。

Cosmosは複数の独立したブロックチェーンが集まって相互運用性を持ったネットワークとして動くのに対し、Polkadotは複数の相互運用性を持ったブロックチェーンが集まった大きな一つのチェーンとして動きます。

そのため、Cosmosはエコシステムとしては分散しており、Polkadotは中央集権寄りであると言えると思います。

ここら辺が2つの違いとしては一番大きなポイントでしょう。

ではこの先からはより詳しく仕様の違いについて深掘りしていきましょう。


2.仕様の違いと専門用語の整理

まずはそれぞれの仕様や専門用語を表にしてみました。

キャプチャ

これまでの記事では深掘りしてない部分もありますが、大分専門的なので簡単に解説しながら違いを説明していきます。


3.Cosmos HubとRelay Chain

どちらも各チェーンが接続する先として存在しており、それぞれ$ATOMや$DOTをネイティブトークンとして動いているブロックチェーンです。

大きな違いとしては、Relay Chainは各チェーンの取り纏めのみに専念するのに対してCosmos Hub(GaiaやIris Hub等)は他の機能を持たせることもあります。

またPolkadotではRelay Chainによって各チェーンのブロック生成を同期していることと、各チェーンのセキュリティを担っているため、Relay Chainを増やすということは今のところありませんが(増設自体は可能で何個も繋げられる)Cosmosでは各チェーンが独立しているためGaiaやIrisのように複数のHubを自由に用意することが出来ます。

Cosmos Hubの増設がしやすいのは拡張性として良い点ではありますが、その分ブリッジの拠点が増えてしまうために、ぱっと見同じトークンなのにブリッジが違う為コントラクトが違う別トークンが増えてしまい混乱する可能性があることや、Hub上にdAppsが構築されているためにチェーン間の通信が増えた時にさばき切れなくなる可能性が出たりと一長一短となっています。
また、ブリッジが増えることでプールにペグされるトークンが増えるためにハッキングの標的にもなりやすくなる可能性があります。

因みにPolkadotではチェーン間のトークン移動はブリッジではなくテレポートと呼ばれてるものが可能で、元のチェーンではバーンして移動先のチェーンでミントすることが出来るのはセキュリティ上大きな利点です。
これは全てのチェーンをRelay Chainが取りまとめているために出来ることでもあります。


4.ZoneとParachain/Parathread

HubやRelay Chainにつながるチェーンとして、関係性としての違いはほぼありません。

但しParachainはPolkadot独自のPLOに勝利しなければならないため、ハードルは高くなります。
また、Zoneは数に制限がありませんがParachain/Parathreadは上限があります。

総合するとParachain/Parathreadの方が繋がるための難易度が高いと言えます。

見方を変えると、Cosmos Hubには比較的誰でも繋がれますがRelay Chainにつながるにはハードルを越える必要がある(特にParachain)ため、繋がっているプロジェクトはある程度有望なものが集まりやすいとも考えられます。
また、PLOには強力なマーケティング効果があるのも見逃せない点です。

とはいえ、簡単にクローンしてデプロイが出来るdAppsと違いチェーンを作って運用することはかなりのコストが必要ですので、Cosmosの各チェーンの質が悪いという話ではもちろんありません。


5.DPoSとNPoS

これに関してはPolkadotの記事で書いた内容がほぼそのままですが折角なので補足します。

DPoSでは発言権がステーキング量に比例するため、コンセンサスのストップをするためにはステーキング量の3分の1以上、乗っ取りは3分の2以上必要です。

それに対し、NPoSでは発言権を得るためにはステーキング量が上位に入る必要がありますが上位に入れば後は全て発言権は同じになります。
そのため、コンセンサスのストップをするにはノードの3分の1以上、乗っ取りは3分の2以上必要です。

つまりセキュリティとしてはNPoSの方がより堅固であると言えます。

PolkadotのNPoSでは、最低ステーキング量と各バリデーターへのノミネーターの上限があるため、分散性の問題や資本主義への傾倒が見られますが、両方ともにガバナンスで変更されます。(現状は最低120DOTでバリデーターへのステーキングは256アカウントまで報酬が貰える)

またKusamaでは既にバリデーターへステーキング可能なdAppsが出ており、それを使うことで上記の制限を気にすることなくネットワークに参加することもできるため、Polkadotでも同じようになると予測されます。


6.PBFTとGRANDPA/BABEとファイナリティ

さて、こちらは今までの記事で一度も出していない少々難しい内容です。

この二つはコンセンサスアルゴリズムという、生成され提出されたブロックに対し、どのように合意形成をとるかという方式です。

が、細かいところは難しいの今回はパスしてファイナリティについて説明します。

ファイナリティというのは、ブロックが確定して覆されなくなることを言い、形式が両者では違います。

CosmosのPBFTでは、ブロックの生成と合意形成によるファイナライズが同時に行われ、チェーンとしての安全性を重視した設計をしています。

PolkadotのGRANDPA/BABEでは、ブロックの生成と合意形成によるファイナライズが別に行われ可動性を重視した設計をしています。

ファイナリティには確定的ファイナリティ確率的ファイナリティというものがあります。

確定的ファイナリティでは、上記の様にブロックを確定させて覆せなくなりますが、確率的ファイナリティでは確定していないので覆す(ロールバックを起こす)ことが出来ます。

BitcoinやEthereum1.0等のPoWは基本的に確率的ファイナリティで、6つ前のブロックが覆えるのは天文学的確率になるなので、覆ることはないとしています。

これでピンときた方はすごいと思います。
この2つの違いについてもう少し掘り下げましょう。

Cosmosのようなブロック生成とファイナライズが同時に行われるものは仮に何らかの原因(通信の混雑等)によって合意形成が取れなくなるとブロック生成も止まりチェーン全体がストップします。
その分異常が起こっても無理にブロックが作られないために安全性が高くなります。

Polkadotの様にブロック生成とファイナリティが別に行われるものは、仮に何らかの原因によって合意形成が取れなくなってもブロック自体は作られ続け、正常になったタイミングでファイナライズを行います。
そのため、確定的ファイナリティと確率的ファイナリティのハイブリットと言えます。
ブロック生成が止まらないためチェーンは動き続けるため可動性は高くなりますが安全性が少し落ちます。

とはいえBitcoinやEthereum1.0の様に確率的ファイナリティで動いているチェーンはいくつもあるため一定の安全性はあると思います。
その際のセキュリティ能力はPoWであればハッシュレート、PoSであれば時価総額とステーキング量で図ることが出来ます。


7.チェーンのアップグレード

これに関しては、Polkadotが特殊でCosmosは通常です。

ブロックチェーンでは、チェーンの仕様を変更する場合には通常ハードフォークやソフトフォークというものが行われます。

フォークと言うのは食器のフォークから来ていて、チェーンが別れることを指しています。

チェーンの仕様を変更する際には各ノードに新しいノードクライアントに更新してもらい、そこから新しい仕様でブロックを作成するようになります。

その際以前と互換性があるフォークをソフトフォーク、ないものをハードフォークと言います。(本当はちょっと違う話ですが今回は割愛)

ソフトフォークの場合互換性があるため、各ノードは順次ノードクライアントを更新していけば良いのですが、ハードフォークの場合は決められたタイミングですべて更新していないと互換性がないため別々のチェーンに別れてしまうことになります。

こうして別れて行ったのがBitcoinとBitcoin CashやEthereumとEthereum Classicです。

ノード運営は分散して行われるため、コミュニティでの合意やスケジュールのすり合わせなど、ハードフォークを行うことは難易度が高くなっています。

そこでPolkadot(Substrate系全て)ではフォークレスアップグレードを可能にしたことでアップグレードが容易になり、チェーンの改善や仕様の変更などがスムーズに行えるようになりました。

ただしこれは開発側にイニシアチブがあるため、やや中央集権寄りであると言えます。
とはいえオンチェーンガバナンスで合意が取れないとアップグレードが出来ないように出来るので、開発者が好き勝手やれるというわけではありません。


8.ブロック生成とセキュリティ

基本的な状態ではCosmosの各チェーンはそれぞれブロック生成をし、セキュリティも各自のバリデーターに依存します。

それに対しPolkadotではRelay Chainにセキュリティを委任しているためブロック生成は同時に行われます。

これもそれぞれに一長一短です。

Cosmosでは
・それぞれ独立して動いているためHubが止まっても動き続ける(但しHubが止まること自体は大きな影響が出る)
・各自でバリデーターを用意する必要があるため、時価総額やリソースがばらけてセキュリティが落ちる

Polkadotでは
・Relay Chainが止まると全てのチェーンが止まる(Parachain/Parathreadのどれかが止まった場合は他に影響は出ない)
・セキュリティは全てRelay Chainに任せることが出来るため、バリデーターや時価総額を考える必要はなくリソースが集中されて強固になる

ということになります。

ただしCosmosでもHubにセキュリティ共有の機能を付ける開発をしているため、実装完了後に利用するチェーンはPolkadotと同じ利点と問題を抱えることになるはずです(仕様がまだ不明)。


9.Cosmos SDKとSubstrate

この2つは
・ブロックチェーンを作るためのフレームワーク(ツールキット)
・オープンソースで拡張機能が分散的に作成されていて利用可能
・このフレームワークを利用することでエコシステムに簡単に入ることが出来る

という点で同じです。

あとは基本の使用言語の違いがありますが…開発者以外にはわからない内容なので省きます(僕も細かいところはわかりません)。

それぞれの特徴として

Cosmos SDK
・コンセンサス(Tendermint)とアプリケーション(Cosmos SDK)のレイヤーに別れていて、今後別のコンセンサスレイヤーが実装される可能性がある
・VMはEthermint(EVM互換)やCosmWasm(WASM系統)等で各自選択もしくは作成

Substrate
・Web3 Foundationが巨額のGrant Programを動かしているため、公式に認められたオープンソースのモジュールが大量に集まる
・VMとしてWASMにネイティブ対応、モジュールや各自作成で他に対応

というのが挙げられます。

Substrate系がフォークレスでアップグレードできるのはWASMにネイティブに対応していてその機能を使っているからです。

Cosmos SDKもCosmWasmを標準搭載するようになれば同じような機能を持つかもしれません。

余談ですが、今後はEVM系統からWASM系統がスマートコントラクトの主流になると予想されています。
それは、Ethereum2.0がeWASM(WASM系統)を搭載するということからも想像できます。

現状ではスマートコントラクトプラットフォームとして圧倒的な人口があるEthereumで使われているためEVM系統が主流ですが、メインの開発言語はSolidityというスマートコントラクト用の専門言語であるため敷居が高くなっています。

WASM系統はEVM系統と違い、多彩な言語に対応しています。
最近プログラム業界で人気のRustをメインにC系、JAVA、Javascript等の技術者人口が多い言語でもスマートコントラクト開発ができるうえ、高速で動作することができます。

今はプラットフォーム競争が盛んですが、注目しているチェーンがどういうチェーンでどういう拡張性を持つかはチェックした方がいいと思います。


10.IBCとXCM

どちらもチェーン間の通信方式の名前です。

IBC:Inter-Brockchain Communication(ブロックチェーン間通信)
XCM:Cross-Consensus Message Format(クロスコンセンサスメッセージ方式)

言葉は違いますが、ブロックチェーン同士で通信するための方法ということは同じです。

違いは
・IBCではブロックチェーン間での資産(トークン)の行き来に重点を置いている
・XCMではブロックチェーン間での全て(トークン・データ・トランザクション)の通信を可能とする

ということです。

つまり、Polkadotではクロスチェーントランザクションにネイティブ対応をしているということです。

ではCosmosでクロスチェーントランザクションが出来ないかというと、そういうわけではありません。

専用のモジュールを用いることでクロスチェーントランザクションを可能としますが、現在研究中ということと標準化がされていないため、今後対応していくと思います。


11.まとめ

過去一の長さになってしまいました…7000字オーバーとは…なんてこったい。

色々違いを書きましたが、どっちがいいというと難しいですよね。
EUとアメリカどっちが良い?と聞かれているようなものです。

僕のイメージでは
Cosmos:エコシステムは分散的だが盛り上がりは弱く玄人向け
Polkadot:エコシステムは集権的だが盛り上がりが強く大衆向け

こういう感じです。
当然あくまで僕のイメージなので印象は人によるでしょう。
仕様の多少の違いは開発が進むにつれてある程度埋まっていくと予想しているので「好みでよいのでは?」という結論になります。

また、CosmosもPolkadotもブロックチェーンが抱える相互運用性へのソリューションとしての一面を持ちますが

クロスチェーンブリッジ:いっぱい
クロスチェーンスワップ:Anyswap・Biconomy等
クロスチェーントランザクション:Axelar・LayerZero等

というように、既存のチェーンに相互運用性を持たせる競合が出ているために以前と比べると優位性が落ちているのは確かです。

そのため、相互運用性を持った新規チェーンを集めつつ既存のチェーンとも相互運用性を持たせて大きなエコシステムを作るというこの2つのプロジェクトはエコシステムの新規のチェーンがどのような役割を持つかが大事になってくると思います。

今回の記事はここまでです。
非常に長いうえに難しい内容でしたが最後までお付き合いありがとうございました。

え、最初と最後しか見てない?
気が向いた時にでも全部読んでくださいw

それではまたお会いしましょう、お疲れ様でした。

この記事が気に入ったらサポートをしてみませんか?