さまざまな種類のブロックチェーンが登場し、それに伴いとても多くの種類のトークンが発行されています。それらのブロックチェーンの間ではトークンを移動することができないので、現状、トークンを他のトークンと交換したいときは取引所で売買する方法が主流です。

しかし、このような状態はいろいろな種類のインターネットが存在するくらい非効率的なことであり、ブロックチェーンを標準化するためにさまざまなプロジェクトが進行しています。

 

ブロックチェーン間の互換性がない問題を解決する代表的なプロジェクトのひとつにCosmosがあげられます。Cosmosネットワークを活用することで、異なるブロックチェーン間でも自由にトークンを移動させることを目指しているのです。

そこで、当記事ではCosmosがどのようにしてブロックチェーン間の橋渡しをするクロスチェーンを実現しようとしているのかその仕組みを解説していきます。

 

Cosmosとは

Cosmosでは、それぞれのブロックチェーンがCosmosネットワークに参加することで巨大なエコシステムを形成することを目指しています。Cosmosネットワーク内では、異なるブロックチェーン間においても、ひとつのブロックチェーンでトークンを送受信するようなイメージです。

Cosmosネットワークではハブ(Hub)ゾーン(Zone)という2種類のブロックチェーンが存在します。下図のように、ハブを中心としてさまざまなゾーンが接続するようになります。

Cosmos

(source: COSMOS.network)

ゾーン同士は互いにコミュニケーションを取っていなくても、ゾーンはハブと接続していれば任意のゾーンとトークンの送受信を行うことが可能です。

例えば、下図のようにCOSMOSハブを中心としてビットコインのブロックチェーンとイーサリアムブロックチェーンがゾーンとしてハブに繋がっている状況を考えます。

このように互いがゾーンとしてつながっていれば、取引所などを使うことなくビットコインブロックチェーンのトークンをイーサイリアムブロックチェーンに送ることができるのです。

 

Cosmos

(source: COSMOS.network)

 

コスモスハブの主な役割は接続しているゾーンから送られてくるトークンを適切なゾーンに送り届けることです。それぞれのゾーンにおけるトークンの量を管理してくれるのです。

また、ハブは誰でも開発することができるので、将来的には下図のようにCOSMOSハブの他にもさまざまなハブが作成され、それぞれのゾーンを持つようになります。

もちろん、ハブ同士で通信を行うこともできるので異なるハブに属するゾーン間でもトークンのやり取りを行うことは可能になります。

Cosmos

(source: COSMOS.network)

 

それでは、Cosmosはどのような仕組みでこのようなブロックチェーン間の橋渡しをするクロスチェーンを実現しようとしているのか見ていきましょう。

 

Cosmosの仕組み

Tendermint

Cosmosの仕組みを理解するためにまずはTendermintというベースとなるミドルウェアのようなシステムについて見ていきます。Tendermintは主にTendermint CoreABCIという2つの構成要素から成っています

ABCIでは、Dapp開発者があらゆるプログラミング言語で開発を行えるようなインターフェースを提供してくれます。

 

Tendermint Coreはブロックチェーンにおいて素早い合意形成を得るためにミドルウェアです。ここでのコンセンサスアルゴリズムはプルーフ・オブ・ステーク(PoS)が用いられていて、毎回の投票時にバリデーター達が資金を賭けることで不正のないブロックチェーンを維持していくという仕組みです。

PoWのように膨大な計算は行わないので、ブロック生成時間は1〜3秒ととても短く、1秒当たり数千トランザクションの処理ができると見込まれています。

 

また、TendermintのPoSで特徴的なのが即時にファイナリティを得られることです。つまり、ブロックがブロックチェーンに追加されたら、即時にそのブロックに含まれるトランザクションは確定することになります。

一方、ビットコインなどのPoWではファイナリティを得ることができない仕様になっており、基本的に6個のブロックが追加されたら覆ることはまずないだろうという確率的なファイナリティを得るようにできています。

要するに、TendermintのPoSでは不正な攻撃に成功しない限り、ビットコインなどのブロックチェーンのように分岐することがないのです。

このファイナリティを得られる仕組みがハブとゾーンをつなぐIBCというプロトコルで非常に重要となってきます。

参考:COSMOSネットワークに欠かせない基盤となる「Tendermint」とは

 

IBC(Inner Blockchain Communication)

それぞれのゾーンとハブはIBCというプロトコルによってトークンのやり取りを行うことができます。

CosmosネットワークのゾーンにおけるそれぞれのブロックチェーンはTendermintを使用しているので、このIBCを使うことができるのです。Tendermintでは上述したようにファイナリティを得ることができるのでIBCを活用することができます。

 

また、IBCの大きなメリットはそれぞれのゾーンにおいて独立性を保つことができることです。つまり、ゾーンごとにPoSのバリデーター群を動的に変更することができるのです。(PoSのコンセンサスアルゴリズム自体は変更することはできません)

これによりプライベートチェーンのセキュリティやプライバシーを維持したまま、プライベートチェーンのトークンをパブリックチェーンに送受信することが可能になるのです。

 

しかし、このようなIBCを使うためにはそれらのブロックチェーンが即時にファイナリティを得られるTendermintのようなコンセンサスアルゴリズムを使用している必要があります。

CosmosハブやEthermintなどはTendermintをベースとしているので下図のようにメッセージを送ることでIBCを確立し、トークンのやり取りを行うことができます。(EthermintゾーンではTendermintをベースとしてイーサリアムと同じスマートコントラクトを実行することができます)

Cosmos

(source: COSMOS white paper)

 

しかし、ビットコインやイーサリアムのブロックチェーンではファイナリティを得ることができないのでIBCを使用することができないのです。

このようなブロックチェーンがCosmosネットワークと互換性を持つためにはトークンのやり取りを行うペグシステムを構築する必要があります。

そこで、Tendermintを活用していないイーサリアムブロックチェーンにあるトークンとCosmosネットワークのゾーンがやり取りするために開発されたのがETGateです。

 

ETGate

ETGateはイーサリアムブロックチェーンとTendermintゾーンの間で双方向にトークンをやり取りできることを実現します。

ETateの基本的な仕組みはビットコインのサイドチェーンでTwo-way-Pegging(双方向のやり取り)を実現することを目指しているDrivechainと同様です。

Drivachainの仕組みは以下の記事で詳しく解説しているので参考にしてください。

参考:ビットコインのサイドチェーンを実現する大本命「Drivechain」とは

 

Drivechainではサイドチェーンからメインチェーンにトークンを移動させるときには、マイナーの投票によって不正が起こらないようにしています。一方、ETGateではPoSにおけるバリデーターの投票が行われるのです。

PoWによって承認されたブロックヘッダーはファイナリティを得ることができていないので、イーサリアムのヘッダーをゾーンに加えるためには、バリデーターの投票により全体の2/3以上の署名が必要になるのです。

 

最後に、Cosmosのエコシステムにおけるトークンモデルについて見ていきましょう。Cosmosではセキュリティを保つために少し特殊なトークンモデルを採用しています。

 

Cosmosのトークンモデル

Cosmosハブには、AtomPhontonという2種類のネイティブトークンが存在します。構想初期時には、Atomという1種類のトークンのみが考えられていましたが、セキュリティ的な観点からPhontonという新たなトークンも追加されることになりました。

AtomとPhontonのそれぞれの主な役割は以下の通りです。

  • Atom:PoSでの賭け金に使われる
  • Phonton:トランザクション手数料を支払うために使われる

 

上述したようにCosmosハブでは、繰り返しの投票メカニズムによるPoSでコンセンサスがとられます。このときに、バリデーターがデポジットする賭け金はAtomトークンで行われるのです。

一方、ユーザーが送金するときなどに発生するトランザクション手数料はPhontonトークンで支払われます。一見、Atomトークンに持たせた方がよりシンプルになると感じますがなぜわざわざ2種類のトークンに分けたのでしょうか。

 

それは、PoSのコンセンサスアルゴリズムに対して攻撃をしにくくするためです。TendermintのPoSでは賭け金全体のうち33%の資金を保持していれば攻撃することが可能になってしまいます。つまり、攻撃者に有利な二重支払いなどが可能になってしまうのです。

このような攻撃を防ぐためには33%以上の資金をある1人のユーザー(あるいは攻撃グループ)が保持することを困難にする必要があります。トークンエコノミーの規模が大きいほど33%以上の資金を持つことはより困難になりますが、規模が小さいとそれだけ33%以上を占めるために必要な資金も少なくて済んでしまうのです。

 

そこで、PoSの賭け金とトランザクション手数料で使うトークンを分けることで33%攻撃がしにくくなるのです。なぜかというと、Atomトークン(Posでの賭け金)の流動性を低く保ったまま、Phontonトークン(トランザクション手数料)の流動性を高めることができるからです。

一般的にトークンの流動性が低いと、そのトークンを市場で多く買い占めるのにはより多くの資金が必要になります。市場でトークンを買うためには、そのトークンを売る人がいなければなりません。流動性が低い場合は売る人が少ないので、トークンを買うにつれてトークンの価格が急激に上昇してしまうのです。

このようにPoSに対する攻撃をしにくくなるためにAtomとPhontonのトークンで役割を分けているということです。

 

以上のような仕組みでCosmosエコシステムを形成し、異なるブロックチェーン間でシームレスなトークンの移動を実現しようとしています。それに加え、Cosmosではそれぞれのゾーンでスケーラブルな分散型アプリケーション(Dapp)を開発できるようにしたり、最適な開発環境を整えたりと、Dappを含めてエコシステムを拡大していこうとしているのです。