Tendermintの説明
ホーム
記事
Tendermintの説明

Tendermintの説明

中級者
公開済 Jan 8, 2021更新済 Sep 1, 2022
7m

概要

皆さんが知っているブロックチェーンは、かなり厳格な構造を持っています。開発者として、2つのオプションがあります: 制限された環境下でアプリケーションを作成するか、コードをフォークして独自のチェーンを作成するかというものです。しかし、自身でチェーンを作成するのは簡単ではありません。– ネットワークを開始し、どのようなコンセンサスメカニズムを使用するかを決める必要があります。

Tendermintは、ブロックチェーンをローンチするためのオープンソースのソフトウェアで、あらゆる言語でアプリケーションを書くことができます。さらに言えば、他のブロックチェーンと通信することも可能です。


はじめに

仮想通貨ブロックチェーンのネットワークを作成するには、データベースを初期化するだけではなく、多くの手間がかかります。そのためには、インセンティブの微妙なバランスや、セキュリティ、分散、スケーラビリティの間のトレードオフが必要です。
当然のことながら、最強のブロックチェーン・エコシステムを構築しようとするチームは、さまざまなアプローチを模索しています。今回は、そのようなアプローチの1つをご紹介します: Tendermint


Tendermintについて知っておくべきこと

ブロックチェーンについて少しでも知っていれば、Tendermintの多くは馴染み深いものになるでしょう。その前に、いくつかのキーコンセプトを確認しておきましょう。


ブロックチェーンアーキテクチャの理解

Tendermintは、ブロックチェーンスタックの一種です。また、BitcoinEthereumのようなものもあります。ブロックチェーンのデータベースだけではなく、ピアツーピアネットワークまたは、ノード、それらの相互作用、そしてトランザクションやスマートコントラクトでできる楽しいことも重要です。ここでの目的は、たとえ誰も信用していなくても、全員がステート (データベースのスナップショットのようなもの) に合意することです。
ほとんどの場合、現在の主要なブロックチェーンは、これを可能にする秘密のソースを考案しました。しかし、それらは多くの場合、次のようなものに依存しています。モノリシック・アーキテクチャー: ソフトウェアエンジニアリングの概念で、コンポーネントが相互に接続され、相互に依存していることを意味します。その一部を切り取って他のものに接続することはできませんでした。
モノリシック・アーキテクチャーは、柔軟性を求める場合には向いていません。逆のタイプのモデル (モジュラー・アーキテクチャー) では、何かを壊す心配をせずに、個々のコンポーネントを調整することができます。モノリシック構造では、1つのコンポーネントをアップグレードしても、すべてのコンポーネントに互換性があることを確認する必要があります。 

この違いを理解した上で、Tendermintプロトコルについてもう少し詳しく説明しましょう。


ビザンチン・フォールト・トレランス (BFT)

Bitcoinの大きな革新は、ビザンチン将軍問題と呼ばれる問題を解決したことであることはご存知でしょう。この問題についての具体的な説明は省きます (興味のある方はビザンチン将軍問題に関する記事をご参照ください) 。これは、すべての参加者が分散設定でコミュニケーションを取らなければならないというシナリオを説明するためのものです。 
参加者は、相手が嘘をついているかどうか、自分たちの間で送信されたメッセージが修正されているかどうかは不明です。そのような問題があっても、参加者が一連の事実に合意することができれば、システムはビザンチン・フォールト・トレランス (BFT) と呼ばれます。
明らかに、分散型設定では、この点を正しく理解することが重要です。ビザンチン・フォールト・トレランスではない仮想通貨は、実際には機能しません – 何らかの中央当事者が調整する必要がありますが、それでは目的は達成されません。多くのデジタル通貨と同様に、Bitcoinは、プルーフ・オブ・ワーク (PoW) コンセンサスアルゴリズムを使用することで、この問題を回避しています。


ブロックチェーンの3つの層

そのため、モノリシック/モジュラー・アーキテクチャーの相違点も理解していますし、分散型仮想通貨ネットワークにはビザンチン・フォールト・トレランスが必要だということも認知されています。ブロックチェーンで一般的に見られる、アプリケーション層、コンセンサス層、ネットワーキング層を挙げてみましょう。
コンセンサス層とネットワーキング層は、ネットワークノードがお互いに会話し、一連の事実に合意しようとするところです。アプリケーション層は、自分で何かをすることができる場所です– Ethereumの分散型アプリケーションスマートコントラクトBitcoinのカスタムトランザクションなどを考慮してみてください。



Tendermint Core

まず、用語について簡単に説明します。ここでは、技術的なことだけに注目しているので、「Tendermint」と「Tendermint Core」という言葉を使い分けています。 

しかし、Tendermintは企業名であり (オリジナルのホワイトペーパーを書いた開発者Jae Kwon氏が設立した) 、Tendermint CoreはTendermint社が実際に開発したソフトウェアです。具体的には、コンセンサス・エンジン (Tendermint Core) とアプリケーション・インターフェース (ABCI) の2つの主要コンポーネントから構成されています。

Tendermint Coreは、フォールト・トレランスを実現するシステムです。要するに、全員に同じ状態を同時に見せる、大きな分散型コンピュータです。参加者の3分の2以上が誠実であれば、すべてがうまくいきます。でも、それはほとんどのブロックチェーンに言えることですよね? 何が特別なのでしょうか?

まず、使用するコンセンサスメカニズムはプルーフ・オブ・ステーク (PoS) です。各期間において、バリデーターセットからランダムなノードが選択されます。そのノードは次のブロックを提案しなければなりません (ラウンドロビンシステムと呼ばれる方法) 。他のバリデーターが納得すれば、新たなブロックが追加され、チェーンがアップデートされます。確定は即時に行われます – BitcoinやEthereumとは異なり、トランザクションが有効であることを確認するために確認事項を待つ必要はありません。

でも、待ってください、まだあるんです!Tendermint Coreのアーキテクチャはモジュラー式であり、アプリケーション層はコンセンサス層やネットワーキング層から切り離されています。要するに、独自のアプリケーションレイヤーをスタックに組み込むことができるということです。厄介なインセンティブやコンセンサス・アルゴリズムを気にする必要はありません。 

エンドユーザーにとっては、あまりスリリングではないかもしれません。しかし、開発者にとっては、既存のフレームワークを利用できるため、ネットワーク全体を構築することなく、すぐにアプリケーションを構築することができます。ブロックチェーンからのデータを統合レイヤーにパイプすることで、開発者はあらゆる言語でソフトウェアを書くことができます。

この魔法は、アプリケーション・ブロックチェーン・インターフェースと呼ばれるもので、略称はABCIとなります。これは、Raspberry Piに搭載されているGPIOピンのようなものだと思ってください。LEDから植物用の精巧なスプリンクラーシステムまで、さまざまなサードパーティ製の部品を接続することができます。同様に、ABCIはブロックチェーンとその上で動作するアプリケーションの境界を定義するものです。


Tendermint Coreの良さとは何でしょうか?

アプリケーションインターフェースとコンセンサスメカニズムを分離することで、様々な分散型アプリケーションがビジネスロジックにあらゆるプログラミング言語を取り入れることができる柔軟性が生成されます。

その具体的な例として、Ethermintを挙げます: Ethereumのコードベースからプルーフ・オブ・ワークの仕組みを取り除き、Tendermintの上にEthereum バーチャルマシンを載せたプロジェクトです。
これにより、いくつかの面白いことが可能になりました。1つ目は、Ethereumの開発者が、スマートコントラクトを新しいエンジンに簡単に移植したり、Solidity言語で新しいコントラクトを書いたりできることです。EthermintはEthereumの機能を提供するだけでなく、プルーフ・オブ・ステークEthereumのように機能し、Casperの実装がEthereum 2.0でどのようなものになるのかを垣間見ることができます。


ブロックチェーン相互運用性

「ブロックチェーンのインターネット」という約束が、多くの人をTendermintベースのプロトコルに惹きつけています。相互運用性は、何百もの個別のブロックチェーンが相互運用性を持つようになることを意味し、仮想通貨分野では待望の追加事項です。
現在、誰もがアプリケーション独自のパブリックまたはプライベートブロックチェーンを作成できるオープンソースのフレームワークであるCosmos SDKに多くの作業が行われています。これらのブロックチェーンは、Cosmos Hubと呼ばれるCosmosのネットワークに接続され、他のブロックチェーンとコミュニケーションをとることができます。
バイナンススマートチェーン(BSC) KAVAバンドプロトコルTerraIRISnetなど、数多くの人気プロジェクトがCosmos SDKで構築されています。


まとめ

Tendermintは、ブロックチェーンエンジンとして、開発者からエンドユーザーまで、仮想通貨圏の多くの関係者の注目を集めています。 

このソフトウェアが普及し続ければ、ブロックチェーンによるインターネットのバックボーンとなる可能性があります。これまで見てきたように、このビジョンを実現するために、一握りのプロジェクトがCosmos SDKを使用してすでに開始されています。