2009年にビットコインが運用開始されて以来、様々なブロックチェーンが誕生し、発展してきました。しかし、依然として解決されていない問題がいくつかあります。そのうち代表的なものが「スケーラビリティ」と「インターオペラビリティ」のふたつです。
スケーラビリティ問題とは?:トランザクションの処理に時間やコストがかかること。
インターオペラビリティとは?:相互運用性。異なるブロックチェーン同士が通信できる状態のこと。2020年11月現在、基本的に異なるブロックチェーンは相互運用性がなくトークンの交換などができない。
こうした問題を解決すべく生み出されたプロジェクトが、「The Internet of Blockchain」というコンセプトを掲げる「Cosmos」(コスモス)です。
特にインターオペラビリティの問題を解決するプロジェクトとして紹介されることの多い「Cosmos」についてご紹介していきます。
Cosmosとは?概要紹介
Cosmosの開発を行っている会社はアメリカに拠点を置く「All in Bits, Inc.」(通称:Tendermint Inc)です。
All in Bitsは2014年にJae Kwon氏によって、当時主流だったBitcoinやEthereumのPoW(Proof of Work)の速度、スケーラビリティ、使用する上での問題点を解決するために設立されました。
2020年11月現在、All in Bits, Inc.は、Cosmosでも採用されているコンセンサスアルゴリズム「Tendermint」の研究開発やCosmos Network、Cosmos-SDKの開発を行っています。同社はCosmosの開発やエコシステムの充実を図るために設立されたスイスの非営利財団「Interchain Foundation」からの委託を受けて、Cosmos関連のソフトウェアを開発しています。
2017年にCosmosは、ICO(Initial coin offering)によって、わずか30分間で1,680万ドル(日本円で約18億円)もの資金調達を成功させました。当時からCosmosは注目されていたのです。
ICOとは?:暗号資産(仮想通貨)やトークンを発行・販売して行われる資金調達手法。なお2020年11月現在、日本では資金調達に使われるトークンは「電子記録移転権利」と呼ばれ、金融商品取引法などの規制を受ける。
このようにCosmosが注目されていた背景には、All in Bitsが2015年に開発した「Tendermint」や「ABCI」(Application Blockchain Interface)、異なるブロックチェーン同士の通信を可能にする「IBC」(Inter-Blockchain Comunication protocol)があります。
Cosmosの基盤、Tendermintって?
ブロックチェーンの構造
Tendermintの開発された経緯を知るために、まずはブロックチェーンの構造について見ていきましょう。
ブロックチェーンの構造は図のように階層構造になっており、上から順に概要を紹介すると、以下のようになります。
- アプリケーション層:トランザクションの処理をする。
- コンセンサス層:ノードがシステムの現在の状態について合意し、ブロックが生成される。
- ネットワーキング層:トランザクションとコンセンサスアルゴリズム関連の情報を伝播する。
ブロックチェーン開発を行う際に、これらすべての層をゼロからスクラッチで作るのは、非常に工数がかかり大変な作業です。
Tendermint開発の経緯
諸説あるものの、Bitcoinをブロックチェーン1.0、Ethereumをブロックチェーン2.0、BitcoinやEthereumの課題を解決しようとするプロジェクトをブロックチェーン3.0と呼ぶことがあります。
ここではBitcoinとEthereumの課題を簡単に整理し、なぜTendermintが開発されたのかを紹介していきましょう。
Bitcoin(ブロックチェーン1.0)
Bitcoinは当時、「PoW」(Proof of Work)というコンセンサスメカニズムを使用しました。これは初めてのブロックチェーンであり、最初の分散型アプリケーション(DApps)でした。
DAppsの有用性に気づいた人たちは、他のアプリケーションも分散型で作りたいと思い始めます。
ただ、先述の通りゼロから構築するのは工数がかかる上に難しいので、それ以外の方法でDAppsを開発するには、主に以下の2通りしかありませんでした。
- Bitcoinのコードをベースとしてフォークする
- Bitcoinブロックチェーン上に構築する
しかし、Bitcoinのスクリプト言語で開発できるアプリケーションは限られており、開発しやすい環境もありませんでした。Bitcoinブロックチェーンを活用して、新しくトークンを発行したり、ゲームを開発したりする動きは見られたものの後述するEthereumほど多様なアプリケーションが生まれてはいません。
「Ethereumほど多様なアプリケーションが生まれてはいない」と記載していますが、それ自体は悪いことではありません。Bitcoinはあくまでも分散型の決済システムを実現する目的で開発されたブロックチェーンであるからです。
Ethereum(ブロックチェーン2.0)
DAppsを開発しづらいというBitcoinの問題を解決すべく、Ethereumは2014年に発表されました。
前述のアプリケーション層を「EVM」(Ethereum Virtual Machine)という仮想マシンに変更することで、様々なDAppsを開発できるようにしたのです。そして、開発者は自由にEthereumのようなDAppsを展開することが可能となりました。
ローンチから5年以上が経過した2020年11月現在でも、Ethereumは主要なDApps開発プラットフォームであり続けています。
ただ同時に今日まで解決されていないブロックチェーン(パブリックチェーン)の問題が明らかになっているのが現状です。以下はEthereumの課題として記載していますが、多くのパブリックチェーンが抱えている問題でもあります。
問題①スケーラビリティ
Ethereumには1秒あたりのトランザクション処理速度が約15tps(transaction per seconds)という制限があります。これは単一のブロックチェーンのPoWに依存していることが原因です。
問題②使いにくさ
開発の柔軟性が比較的低いという点です。EVM自体はすべてのユースケースに対応できるよう最適化されているので、開発者側がアプリケーションの設計や効率性についてある程度の妥協をしなければなりません。
たとえば、プライバシーを重視したい場合は、BitcoinのようなUTXO(Unspent Transaction Output)モデルの方が好まれる傾向にありますが、Ethereumではアカウントモデルを使わざるを得ません。
参考:知っておきたいブロックチェーンの基礎知識|UTXO vs アカウントベース
問題③DApps開発者はEthereum自体への変更権限が無い
Ethereum上のDAppsはすべて、Ethereumを基盤として共有しているため、アプリケーションに対する権限が二層になってしまいます。DApps開発者は、基盤となるEthereumに関して対して直接的な変更ができません(ただし、変更提案は誰でもできます)。
これらの問題を解決すべく、TendermintやCosmosは開発されています。
Tendermintの特徴
Ethereumよりもブロックチェーンの開発をシンプルにしようと2014年にTendermintは開発されました。
Tendermint BFT(Benzantine fault Tolerance)は、ブロックチェーンのネットワーキング層とコンセンサス層をパッケージ化することで、開発者がアプリケーション開発に集中できるようにしています。
コンセンサス層であるTendermintBFTのエンジンは、ABCI(Application Blockchain Interface)というソケットプロトコルによって、開発したアプリケーションに接続されています。
ABCIのおかげで、開発者は得意な言語でアプリケーションを開発しつつ、TendermintBFTを扱うことができます。つまり、開発者がニーズに柔軟に対応することが可能となったのです。
Cosmosはブロックチェーンの問題をどう解決するのか?
それでは、Cosmosにより焦点を当てて、そのメリットを紹介していきましょう。
IBC:ブロックチェーンが相互につながる仕組み
インターオペラビリティを解決するために、Cosmosでは「IBC」(Inter-Blockchain Comunication protocol)という仕組みが開発されました。
IBCを用いることで“異なる”ブロックチェーン間でトークンやデータを転送することができます。ここで言う“異なる”の意味合いは以下の通りです。
- ブロックチェーンの階層構造の実装方法が違うこと
- それぞれが同一の基盤に権限を依存せず、独立した権限を持つこと
Cosmosでは、ネイティブトークンである「ATOM」を用いて、異なるブロックチェーン間でのトークンのやり取りを可能にします。
ここではチェーンAとチェーンBというふたつの異なるチェーン間でのトレードを例に、IBCの原理についておおまかな流れを見ていきましょう。
- チェーンA上のATOMがロックされる
- チェーンA側でATOMがロックされている証明をチェーンBに送る
- チェーンB側で受け取った証明は、チェーンAのブロックヘッダに対して検証され、証明が正しい場合にはチェーンAでロックされたATOMと同額の「ATOMバウチャー」がチェーンB上で作成される
上記はIBCの原理的な説明であり、仕組みとしては単純ですが、ブロックチェーンの数が増えるとブロックチェーン間のやり取りの数が二次関数的に増加してしまいます。そこで複数の異なるチェーンを仲介するハブを備えた以下のような構造が考案されました。
上図のようなCosmos Networkは「Zone」と「Hub」の二種類のブロックチェーンから構成されています。
「Zone」は先ほどの異なる個々のブロックチェーン群です。
「Hub」は「Zone」がお互いに接続するために作られた中継役となるブロックチェーンです。
そして「Zone」ひとつひとつと「Hub」は、IBCによって接続されているという構造になっています。
BitcoinやEthereumもCosmos Networkに参加可能
さらに、Cosmosで相互に繋がれるのは、Tnedermintをベースとしたブロックチェーンだけではありません。
「Peg Zone」という、別のブロックチェーンの状態を追跡するためのブロックチェーンを仲介することによって、BitcoinやEthereumのように、異なるコンセンサスメカニズムを持つ既存のブロックチェーンをの接続も可能になるのです。
スケーラビリティ問題の解決
Tendermintのコンセンサス層は、BFT系のPoS(proof of stake)であり、ネットワークの参加者から選ばれたバリデータノードによって、新規のブロックが承認される仕組みになっています。ブロックが承認されるには、2/3以上のバリデータによる署名が必要です。
Proof of Workのように膨大な計算をコンセンサスノードに課すわけではないので、PoW系のブロックチェーンよりもトランザクション処理速度の向上が見込めます。ゆえに、PoWでは解決が難しいとされたスケーラビリティ問題を解決するアプローチとして期待されているのです。
また、各アプリケーションがそれぞれ独立したブロックチェーンを持つことによって、取引の負荷は分散されます。
さらに、ひとつのアプリケーションで、同一のバリデーターによる複数のブロックチェーンを同時に保つという方法も試みています。
より効率的に開発できる(Cosmos SDK)
Tendermint BFTによって開発者はアプリケーション開発に集中できるようになりましたが、それでもゼロからセキュアなアプリケーションを開発する作業は簡単ではありません。そこで「Cosmos SDK」が発明されました。
Cosmos SDKはTendermint BFTの上に安全なブロックチェーンアプリケーションを簡単に構築できるフレームワークです。誰でも標準化されたモジュールを使用でき、カスタマイズすることができます。
さらに、Cosmos SDKのおかげで既存のブロックチェーンのコードベースを移植することも可能になるのです。
まとめ
Cosmosはインターオペラビリティをはじめとする複数のブロックチェーンの問題を解決し得る有力プロジェクトです。
本記事を読んでパブリックチェーンの文脈が強いと感じた方も多いかもしれませんが、実はプライベートチェーンとパブリックチェーンを接続したり、Cosmos関連のプロジェクトの中にはエンタープライズ向けのものも開発されていたりします。
当メディアでは「企業がブロックチェーンを活用するなら?」という視点から事例やプロジェクトを紹介していますが、Cosmos関連のプロジェクトや仕組みについても随時追加していく予定です。例えば、パブリックチェーンとコンソーシアムチェーンを接続し、エンタープライズ向けブロックチェーンをCosmos SDKで開発している「IRISnet」などを取り上げています。
▼詳細はこちら
Cosmos SDK活用のプロジェクトIRISnetとは?
参考資料:
What is Cosmos?
Cosmos Network(Crunchbase)
About(Cosmos Network)
Validators Overview
記事:吉田克己
編集:原伶磨