クロスチェーンプロトコル COSMOS(コスモス)に関して徹底解説
Shota
こんにちは!
本記事では、EthereumのVitalik Buterin氏がよくPlasmaと並べて口にしているCosmosという、ブロックチェーンのスケーリングや相互運用性(Interoperability)を解決するための分散型ネットワークを紹介していきます。
PlasmaやRaiden NetworkなどのEthereumのスケーリングのみに対応したソリューションと比較して、Cosmosは様々なブロックチェーンに対応するクロスチェーンプロトコルとしてスケーラビリティ問題を解決します。
Cosmosの仕組みは複雑で、記事のボリュームが大きくなってしまっている上に多少予備知識なども必要になってくるので、とりあえず全体のイメージを掴んでいただくために簡単な解説をしたいと思います!
Cosmos(コスモス)を簡単に解説!
Cosmosは複数のブロックチェーン同士での接続を可能し同時にスケーラビリティ問題を解決する、クロスチェーンプロトコルと呼ばれる分散型のネットワークです。
Cosmosは簡単にいうと以下のようなケースでその力を発揮します。
異なる複数の通貨の交換
例えば、ビットコインとイーサリアムを交換するためには、現状だと取引所を介してこれを行う必要があります。
しかし、保有する銘柄が国内の取引所には対応しておらず、海外の取引所のみといった場合に
①一度日本円に両替してビットコインを購入
②それを海外の取引所に送金
③海外の取引所でビットコイン建てで目当ての通貨を購入
といったプロセスを取る必要がでてきます。
このプロセスをCosmosネットワークを介することで一発で欲しい通貨を手に入れることができます。
異なるブロックチェーン間での双方向的なやり取りの可能性は『インターオペラビリティ』と呼ばれます。
ユーザー数増加への対応
仮想通貨を利用するユーザーの数は指数関数的に増加しています。
しかし、例えばイーサリアムではトランザクションの検証はすべて1件ずつ行われるため、トランザクションに詰まりが発生し、ユーザー数の増加に対応できない可能性が危惧されています。
これは『スケーラビリティ問題』と呼ばれます。
ここで、Cosmosのネットワークではこの検証作業を分担するアルゴリズムを採用することで、将来的なユーザー数やトランザクション数の増加に対しても対応できるような設計となっています。
上記2点がCosmosにおいて注目すべきポイントですが、ここからは更にその詳細な設計やクロスチェーンの本質などに迫っていきたいと思います。
クロスチェーンプロトコルの意義
BitcoinやEthereumなどのブロックチェーンは一本のブロックチェーンですべてを完結させるというフィロソフィー的なものを軸に開発がなされていました。
しかしこれには言うまでもなく限界や不都合が伴います。
利用者が増えると、ブロックサイズや生成時間が固定されている一本のチェーンにすべてのトランザクションデータを格納することは徐々に難しくなりトランザクション詰まりが発生します。
また、チェーンの数が増えすぎてしまうとそれぞれが独立しているために、それぞれの機能(決済やDAPPS)に長けたチェーン間での資産の移動を行いたい場合に、集権的な取引所やBTCなどの通貨を介する必要性が出てきます。
さらに、これは利用者やチェーンの数が増えれば増えるだけ指数関数的に利便性を損ない続けていく結果になります。
これらの問題をメインチェーン上で解決しようとすると、新たな機能を実装しようとするたびにフォークを行う必要があり、これは非常に不便です。
ここで、異なるチェーン間での相互運用性やスケーリング、その他機能の補完をそれらのメインチェーン以外の場所で、プロトコルとして標準の規格を作ることで解決していこうというのがこのクロスチェーンプロトコルの意義になります。
Cosmos(コスモス)の特徴
Cosmosはビジョンとして”Internet of Blockchain“を掲げており、インターネットのように誰もが簡単に開発に参加することができ、スケーリング+相互運用性を実現することを目指しています。
CosmosはTendermintに搭載されたメインチェーンに平行的な複数のチェーンにより成り立つ分散型のネットワークとして機能します。
各チェーンにおける合意形成は、Tendermintにより2014年に開発された、PoSをベースとする一方で、Nothing to Stake問題を解決した『BFT(Byzantine Fault Tolerance)』が採用されています。
- BFT(Byzantine Fault Tolerance)とは?
- ビザンチン故障に対しての耐性を持つ合意形成モデルです。合意形成の際にビザンチン故障を起こしたValidator(検証者)の閾値を定めておくことで一部で故障が起こっても問題なく合意形成ができるようになります。
また、Ethereumにおいてノードはすべてのトランザクションを検証していましたが、Tendermintの提供するBFTを採用する各チェーンではSharding(後述)を利用しているため、より効率的で素早い承認を得ることができ、TPSは4,000程度まで対応しているようです。
今年2018年の4月にはICOも行われましたが、17,000,000USDのキャップはわずか27分で達成されたことからも、このソリューションに対する期待度の高さを伺うことができます。
Cosmos(コスモス)の設計
上述の通り、Cosmosは様々なブロックチェーンに対して平行的なスケーリング、相互運用性を付与するネットワークとしてのソリューションを提供します。
この設計が少し複雑なので可能な限りわかりやすく説明していければと思います。
Cosmos(コスモス)と既存のブロックチェーン
上の画像の中心にあるHubと呼ばれるブロックチェーンこのシステムの根幹をなすブロックチェーンで、Cosmosにおいても初めて形成されたのがこのCosmos Hubになります。
このHubはMulti-Asset Distributed Ledger(マルチ資産対応ブロックチェーン)として機能します。
イメージ的には、このHubの周りにはZoneと呼ばれる、様々なコインやトークンのブロックチェーンが存在し、Hubを介することによって各Zone同士のやり取りができるようになります。
上述したShardingのイメージを思い浮かべていただくとわかりやすいと思いますが、Hubは各ブロックチェーンの最新ブロックの情報を各Zoneから受け取ることによって総供給量などの整合性を保っています。
これはHubだけでなくZone上でも機能することができ、例えば一つのZoneでTPS以上のやり取りが発生している場合、上の画像のように、一つのZoneに平行的な同一のZoneを作成することができます。
Zone-AにTPS以上のトランザクションが発生した場合にAaとAbのZoneにこれを分担させることができる感じです。マークルツリーのモデルとかと似ています。
この分担はBFTを合意形成のアルゴリズムに利用している上、理論上無限に作成することができるので非常に強力なスケーラビリティ問題へのソリューションとなり得ます。
更に、様々なブロックチェーンを接続することのできるハブとして標準規格的な機能を果たすCosmosのネットワークが存在することで、各ブロックチェーン同士の機能の統合(互換性の付与?)もフォークという形を取らずに行うことが可能になります。
例えば、BitcoinのトランザクションとEthereumのトランザクションの間に共通のHubを通すことで互換性が生まれるので、RootstockのようにBitcoinにスマコンを搭載させるようなことも可能になります。
Cosmos(コスモス)のトークン【Atom】について
上で軽くICOが行われたことについて言及しましたが、ここでCosmosのトークンであるAtomやその他エコシステム内で利用されるトークンの使い道に関しても触れておきたいと思います。
現在、CosmosのトークンであるAtomは取引所における扱いがないため購入することができません。このトークンを手に入れたい場合、Cosmosネットワークのローンチや取引所への上場まで待っておく必要があります。
2017年4月に終了した資金調達に参加した人々向けにAtomの分配が行われたようで、こちらをチェックしても2017年4月で調達が終了していることがわかると思います。
Cosmos(コスモス)におけるAtomトークンのユースケース
CosmosのトークンであるAtomの使い道を以下に簡単にまとめておきます。
- Atomの使い道
- 全体の流通量に対する保有量に応じた新規ブロック生成の提案権(Proposer)
- 新規ブロック生成の提案に対する投票権(Validator)
- ValidatorやProposerの不審な挙動に対するAtom没収のペナルティ
- ネットワーク内(Zone⇄Hub⇄Zone)での手数料
通常のPoSのモデルと同様に、HubやZoneに預け入れられているトークン保有量がStakeの割合を決める感じになっています。
また、悪意のあるアクションを起こした人間に対して罰がなかった従来のPoSにおける『Nothing to Stake問題』を解決しており、悪意のあるアクションが確認された場合はデポジットされているAtomが没収される形となります。
このようにAtomはネットワーク維持のインセンティブとして主な役割を果たします。
Cosmos(コスモス)における【Photon】のユースケース
一方で、Photonと呼ばれるトークンもCosmosのネットワークでは利用されます。
- Photonの使い道
- ネットワーク内(Zone⇄Hub⇄Zone)での手数料
ここで、なぜAtomで手数料を支払うことができるのにPhotonというトークンが存在するのか、という疑問を抱くと思います。
手数料にAtomではなくPhotonを採用することには、Atomの流動性を下げる意図があります。
Atomを手数料としてメインで採用された場合、トークン自体の流動性が増し、ZoneもしくはHubにおいてAtomの入手可能性(取引所などで安値で購入される可能性)が増え攻撃に対して脆くなってしまいます。
そこで、Photonを手数料の用途のみ(Stakeとは別で)のトークンとして導入することで、市場でAtomトークンを入手しづらい状況にあえておくことで、Validator(承認者)の安定(=ネットワークの堅牢性)を高めることができます。
このようにAtomトークンだけでなく手数料用にPhotonトークンを導入することで、更にネットワークが強力なものになると考えられます。
Cosmos(コスモス)と他の競合との比較
本記事では、クロスチェーンプロトコルとしてCosmosを紹介し、その役割の一つとしてスケーラビリティ問題の解決が挙げられているので、クロスチェーンプロトコルの競合であるPolkadotとの比較を行っていきたいと思います。
両者が捉える問題と対するソリューション
CosmosとPolkadotは一見すると両者とも、ブロックチェーンのインターオペラビリティ(相互運用性)とスケーラビリティ問題にたいするソリューションとして考えることができます。
しかし、これら2つのプロジェクトが問題として捉える部分は異なっています。
Cosmosは、既存のブロックチェーンが適用されている形、例えばPoWの合意形成アルゴリズムやそれぞれのブロックチェーンの乏しいパフォーマンス(スケーラビリティ)、またEthereumのガバナンスなどを問題視しています。
しかし、現状ではこれらを改善する手段として代表的なものはフォークを行うことや、新たなコインを創り上げることでしか達成することができず、非常に非効率的です。
Cosmosはこれらの問題へのソリューションとして新たな切り口でクロスチェーンプロトコルという形の標準規格を創り上げることでアプローチを図ります。
一方で、Polkadotは現状でもブロックチェーンの技術は素晴らしく約束されているものだと考えます。
しかし、Polkadotのホワイトペーパーによれば、Cosmosではサイドチェーンを利用した資産のやり取りは可能である一方でデータのやり取りが難しいとしており、資産だけでなくデータのやり取りも可能にするというのがPolkadotになります。
技術面での比較
- スケーラビリティ問題
これに関しては両者とも、現状ノードは全てのトランザクションを検証する必要がある点を非効率的と捉え、検証を分割させるソリューション(シャーディング)を採用している点は非常に似ていると言えます。
TPSに関して、Polkadotは1,000TPS程度と言われている一方で、Cosmosは4,000TPS程度と言われています。しかし上述の通り両者ともにシャーディングを採用していることから一概にCosmosが優れているということではなさそうです。 - セキュリティ
CosmosではPoSをベースにしたBFTを採用しており、Cosmosにおいては2/3以上の各Zoneでのビザンチン故障がない限り安全であるとしています。
一方で、PolkadotではNominated PoSというアルゴリズムをベースとしたBFTを採用しており、Stakeの多少にかかわらずすべての人間が公平に合意形成をする機会を得る可能性があること、またゲーム理論的に悪意のある人間がStakeを失う仕組みから安全であるとしています。 - インターオペラビリティ(相互運用性)
CosmosではHub同士が同様の合意形成アルゴリズムで無数にやり取りをすることができるようですが、PolkadotではEthereumなどの他のチェーンと交信する役割を果たすHubに該当する存在はブリッジチェーンと呼ばれます。
Cosmosにおいてそれぞれの異なるZone(ETH ZoneやZcash Zone)とのやり取りはHubのIBC(Inter Blockchain Communication)により一括して行われますが、Polkadotの仕組みですと、最終的な合意形成はオリジナルのメインチェーンに合わせたものが採用されていくようです。
結論
色々比較していきましたが、CosmosとPolkadotの違いはチェーン間で何のやり取りにフォーカスをしているかという部分と言えるでしょう。。
両者ともプロトコルとしてブロックチェーン同士をそれぞれの方法で繋ぐという点は変わりませんが、資産の数値を安全にやり取りすることに比重を置いているCosmosと、ScalabilityとIsolatabilityに比重を置きstateのやり取りを可能にするPolkadotという感じでしょう。
まとめ
EthereumのVitalik Buterin氏がよく口にするCosmosですが、いろいろ調べてみた結果他のスケーラビリティ問題に対するソリューションと比べ物にならないほどのポテンシャルを感じました。
公式サイトのロードマップを見ると、Cosmos HubやSDKなど、それぞれの進捗は80%を超えていてこれからの実装にも十分期待ができるプロトコルだと思います。
また、インターオペラビリティ(相互運用性)は個人的にもアツい分野だと考えているので、CosmosだけでなくPolkadotやAionなども是非注目していきたいですね。
読了ありがとうございました。