Tendermintとは?そのコンセンサスアルゴリズムの特徴を解説

▼おすすめの取引所ランキング

この記事ではTendermint(テンダーミント)について解説しています。

Tendermintはブロックチェーンにおけるスケーラビリティ問題を解決して開発を簡単に行う為のソフトウェアであり、新たなコンセンサスアルゴリズムによってブロックチェーンのパフォーマンスを向上させます。

Tendermintとは?

Tendermintとは、一言で表すと…
ブロックチェーン技術を簡単かつ安全に構築する為のソフトウェア

Tendermintとはブロックチェーンにおけるスケーラビリティ問題を解決して開発を簡単に行う為のソフトウェアであり、新たなコンセンサスアルゴリズムによってブロックチェーンのパフォーマンスを向上させます。

現在ブロックチェーンを用いたプロジェクトがたくさん出てきていますが、それらを実用化させる為には開発者が簡単にそれを構築できる仕組みや、今後のトランザクションの増加などに対応する必要があります。

そこでこのTendermintは、今後のブロックチェーン実用化を促進する為に開発されたのですが、以下よりその仕組みや特徴を解説していきます。

Tendermintの特徴と構成要素

このTendermintは2つの構成要素から出来ており、それが「Tendermint Core」とABCI(Application Blockchain Interface)の2つです。

Tendermint Core

Tendermint Coreはプルーフ・オブ・ステーク (PoS) アルゴリズムによって新規ブロックを生成します。

ビットコインなどの仮想通貨を調べていて、よく出てくるProof of Work(プルーフオブワーク)という言葉、聞いたことはあるけど、詳しくはわからない。そんな

TendermintのPoSに参加するバリデータは、「ブロックを提案するバリデータ」と「提案に対して投票を行うバリデータ群」に分かれます。
ブロックを提案するバリデータは交代制となっており、提案しないバリデータ群は投票者としての役割を担います。

Tendermint Coreの投票メカニズム

さて、提案されたブロックが承認される為のプロセスは2段階に分かれていますが、まず1段階目のプロセスでは2/3以上の投票数を集める必要があります。

参考:Tendermint

そして2段階目も同じように投票がなされ、同様に2/3以上の投票数を集める必要があります。
このように両プロセスで一定以上の投票を得ることが出来ればブロックが承認され、新規のブロックが追加されるのです。
これによって1/3以上の悪意ある参加者が現れない限りブロックチェーンを安全に保つ事が可能となります。

ABCI(Application Blockchain Interface)とは?

ABCI(Application Blockchain Interface)はブロックチェーンを簡単に構築できるAPIを提供します。
これによって、ブロックチェーンの設計を分解して簡素化することが出来ます。
大まかな仕組みとしては、コアとなる「コンセンサスエンジン」の部分とDappsを開発する為の「アプリケーションロジック」をメッセージング機能を用いてメッセージを送り合います。

なお、その具体的なメッセージング機能は以下の3つです。

  • Deliver Tx
  • Check Tx
  • Commit

Deliver Tx メッセージ

検証されたトランザクションがアプリケーションへと状態更新依頼を出すメッセージです。
ブロックチェーン内におけるトランザクションは主にこのメッセージから配信されます。

Check Tx メッセージ

トランザクションが検証されているかを確認する為の検証依頼メッセージです。

Commit メッセージ

コンセンサスエンジンの状態更新をアプリケーションへコミットメントする為のメッセージです。

このように3つのメッセージをコア部分とアプリケーション部分とで相互に送り合い、Tendermintのドキュメントにある図のようにメッセージが流れていきます。

参考:Tendermint

Tendermintのメリット

Tendermintのメリットは、主に以下の通りです。

  • 開発者は簡単にDappsを開発できる
  • 迅速に行われるトランザクション処理
  • 即座にファイナリティを得られる
  • ブロックチェーンのフォークを防ぐ

開発者は簡単にDappsを開発できる

ブロックチェーンを用いてDappsを開発したい開発者は、上述したABCIを用いる事でブロックチェーンの設計を分解し、誰でも簡単にブロックチェーン技術を利用してDappsを開発出来るようになります。
迅速に行われるトランザクション処理

上述した通りTendermintではPoSアルゴリズムを採用する為、PoWのような複雑な計算をする必要が無くなり、効率的にトランザクション処理を進めることが出来ます。

即座にファイナリティを得られる

Tendermintのブロックの生成時間は1〜3秒となっており、ブロックを作成した時点でファイナリティを得られる仕組みとなっています、
これによって新規で承認されたトランザクションは覆らなくなります。

PoWアルゴリズムを採用するビットコインの場合はファイナリティを得る為に6個のブロックが追加される必要がありますが、Tendermintでは即座にファイナリティを得られます。

ブロックチェーンのフォークを防ぐ

TendermintではPoSアルゴリズムにおいて2段階の投票制度を設けていると説明しましたが、2段階にする事によって同じBlock Height(ブロック高)に複数のブロックが作成される事を防ぎます。
なお、前述のようにTendermintでは即座にファイナリティが得られる仕組みであり、不正が成立しない限りブロックが分岐する恐れがありません。
つまりブロックチェーンのフォークを出来なくする仕組みなのです。

COSMOSで活用されるTendermint

TendermintはブロックチェーンネットワークのCOSMOSの基盤として活用されます。
COSMOSとは、互いに異なったブロックチェーン同士でもトークンの移動を可能にするブロックチェーンネットワークです。

公式サイトはこちらへどうぞ 現在多くのブロックチェーンプロジェクトが登場していますが、それに伴い発行されたトークン達は異なるブロックチェーンの間で

このCOSMOSは上記図の通り、「COSMOS HUB」から「Zone」へと接続されていきますが、この仕組みが様々なトークンの移動を実現され、オープンソースであるCOSMOSネットワークによって誰でもCOSMOS HUBを作成する事ができるのです。

さて、このCOSMOSですが、全てのZoneにおけるブロックチェーンはTendermintが活用されています。
TendermintのABCIを実装する事で、COSMOSは異なるブロックチェーンでも対応可能なクロスチェーンプラットフォームを提供出来るのです。

まとめ

本記事を要約すると以下の通りです。

  • Tendermintはブロックチェーン技術を簡単かつ安全に構築する為のソフトウェア
  • Tendermint CoreとABCIという二つの構成要素から成り立っている
  • クロスチェーン実現を目指すCOSMOSで活用される

以上がCOSMOSについてでしたが、このPoSアルゴリズムの特徴から、ネットワーク参加者の1/3以上がもしも悪意を持っている場合は安全であるとは言えず、PoS自体の問題でもある「Nothing at Stake問題」を抱えているといった点が今後の課題でしょう。

しかし、Tendermintは今後の重なるブロックチェーンプロジェクトを並列して実用化させる為の重要な技術となるはずです。
実際に上述したCOSMOSでは2018年6月現在、既にTendermintに関する開発が94%まで進んでいます。
まずこのCOSMOSが広く普及すれば、Tendermintも同時に拡大することも予想出来るでしょう。


イーサリアム (ethereum) ブロックチェーン 用語解説