テンダーミントとは

テンダーミント は、多くのマシンで安全で一貫性のある状態レプリケーションを提供する低レベルのブロックチェーンエンジンです。これは、弱同期(ほとんど非同期)のビザンチンフォールトトレラント(BFT)ツールであり、任意のアプリケーション状態と分散システムのプラグアンドプレイコンセンサスとして使用されます。.

主にビットコインのプルーフオブワークプロトコルに対するより効率的で安全なコンセンサスメカニズムとして考案されたTendermintは、その存在の過程で進化し、現在はCosmosNetworkの基盤となるコンセンサスエンジンとなっています。.

テンダーミントとは

テンダーミントの背景

Tendermintは、2014年にJaeKwonが学術機関で提案したオープンソースプロジェクトです。 出版物 それは今では時代遅れですが、時間があれば魅力的な読み物です。本質的に達成が困難なステートマシンでの安全で一貫性のあるレプリケーションの問題に対処します.

ブロックチェーンシステムでは、ノードを危険にさらし、誤ったメッセージを伝播する悪意のあるアクターを許容する必要性は、それらが機能し、ネットワークの状態について正直な合意に達することを可能にする重要な機能です。ただし、ビットコインのプルーフオブワークモデルでこのコンセンサスを達成する手段は非効率的であり、リソースを大量に消費します。 Tendermintは、新しいBFTモデルを提案しました。特に、Tendermintソフトウェアのプライマリコンセンサスエンジンを他のさまざまなブロックチェーンネットワークで使用し、他のプログラミング言語と普遍的に互換性を持たせることに重点を置いています。.

実用的なビザンチンフォールトトレランス

読む:ナカモトコンセンサスとは?

その結果、Tendermintの初期の概念は、独自のアプリケーションインターフェイスを備えた汎用ブロックチェーンコンセンサスエンジンとしての使用を容易にするために、長年にわたって最適化されてきました。現在、Tendermintは、一般に「ブロックチェーンのインターネット」として知られている、マルチチェーンフレームワークプラットフォームであるCosmosNetworkのインフラストラクチャエンジンです。

全体として、テンダーミントにはいくつかのユニークな機能と興味深いテクノロジーがあります。それで、それはどのように機能しますか?

それはどのように機能しますか?

Tendermintは、任意のアプリケーション状態をホストできる汎用ブロックチェーンエンジンであり、主に2つの主要コンポーネントで構成されています。

  1. Tendermint Core – TendermintBFTコンセンサスエンジン
  2. Application BlockChain Interface(ABCI)–任意のプログラミング言語で記述されたアプリのBFTレプリケーションを可能にします

テンダーミントは プルーフオブステーク BFTであるプロトコル。プラグアンドプレイツールとして設計されており、直感的に使用でき、効率的な相互運用性を実現するように作成されています。これは、任意のブロックチェーンネットワークのコンセンサスメカニズムとして効果的に実装できます。 ABCIは、コンセンサスメカニズムをアプリケーション状態のP2Pレイヤーから切り離し、アプリケーションロジックとコンセンサスエンジン間のクリーンなインターフェイスを可能にします。.

Tendermintは、プルーフオブステークメカニズムを使用しています。これは、以下のセクションを読むときに覚えておくことが重要です。 2つの主要なコンポーネントを見てみましょう.

テンダーミントコア

Tendermintソフトウェア全体の基盤となるコンセンサスエンジンであるTendermintCoreは、分散ネットワーク内のマシンがトランザクションの順序を同じ方法で記録することを保証します。 TendermintはBFTコンセンサスメカニズムであるため、他のBFTシステムと同じ仮定を行います。具体的には、ネットワーク内のノードの1/3以下が任意のインスタンスでビザンチンになることができるということです。.

同様に、他のBFTメカニズムと同様にラウンドベースの投票メカニズムを使用します。概念をより適切に理解するために、各ラウンドでリーダーノードを選択するための同様のBFTメカニズムのリストを以下に示します。

  • 実用的なBFTは、各ラウンドのリーダーノードを選択するためにラウンドロビンスタイルの形式を使用します.
  • Proof of Elapsed Timeは、リーダー選択プロセスにSGX内のランダム化されたタイマーを使用します.
  • ビットコインはナカモトコンセンサスを使用しており、プルーフオブワークの計算パズルが宝くじのような形式で解決され、各ラウンドのリーダーが決定されます(マイニング).

Tendermintは、毎秒数千のトランザクションに拡張できるように設計された最適化されたバージョンを使用し、簡単なプラグアンドプレイ機能を可能にします。テンダーミントBFTのラウンドは、次の3つの段階に分けることができます。

  • ブロック提案
  • 事前投票
  • 事前コミット

プロトコルの参加者はバリデーターです。バリデーターは、ラウンドの全体的な利害関係に基づいて、ネットワーク内のブロックを提案し、投票します。したがって、1/3のBFTの仮定は、参加しているノード全体の1/3ではなく、各バリデーターの「重み」(相関するステークによって決定される)に基づいています。.

バリデーターは、ブロックチェーンのコピーを使用してフルクライアントノードを維持し、公開鍵を識別子として使用します。ザ・ ブロック提案 フェーズは、バリデーターがラウンドで新しいブロックを提案するときです.

ザ・ 事前投票 フェーズでは、バリデーターが提案されたブロックに投票し、バリデーターの2/3以上が提案されたブロックに事前投票した場合、事前コミットフェーズに進みます。これは、 ポルカ.

事前コミットラウンドでは、バリデーターの2/3以上が事前投票されたブロックを事前コミットした場合、ブロックはブロックチェーンにコミットされます。特に、すべての事前コミットは同じラウンドのポルカによって正当化されなければなりません.

失敗したブロックを提案したり、不適切なブロックに署名したりするバリデーターは、利害関係を持つリスクがあります スラッシュ. 上記で繰り返された3ステップのプロセスは、1ラウンドと見なされます.

Tendermintはほとんど非同期(または弱同期)であるため、ブロックがコミットされるまでに数ラウンドかかる場合があります。提案プロセスは部分的に同期していますが、投票プロセスは非同期です。テンダーミントによると:

「バリデーターは、さまざまな理由でブロックのコミットに失敗する可能性があります。つまり、現在の提案者がオフラインであるか、ネットワークで遅延が発生している可能性があります。 Tendermintでは、バリデーターをスキップできます。バリデーターは、次のラウンドに進むために投票する前に、提案者から完全な提案ブロックを受け取るまで少し待ちます。このタイムアウトへの依存により、Tendermintは非同期プロトコルではなく、弱い同期プロトコルになっています。ただし、プロトコルの残りの部分は非同期であり、バリデーターは、バリデーターセットの2/3以上から聞いた後にのみ進行します。」

Tendermintはその設計により、安全性が侵害されないことを保証しているため、Tendermintブロックチェーンが分岐することはありません。ただし、バリデーターの過半数に100%の稼働時間が必要なため、ネットワークが停止する可能性があります.

全体として、コンセンサスメカニズムは、コンセンサスの安全性と即時のファイナリティのためにある程度の活気を犠牲にします.

アプリケーションBlockChainインターフェース(ABCI)

ABCIは、Tendermintの柔軟性の重要なコンポーネントであり、アプリケーションのBFTレプリケーションを任意のプログラミング言語で記述できるようにします。.

Tendermintは、ABCIの背後にある動機を、ビットコインやイーサリアムなどの現在の暗号通貨プラットフォームのモノリシックスタック設計として説明しています。モノリシック設計は、プロトコルのメンテナンスの複雑さにつながり、他のプログラミング言語がブロックチェーンと対話する能力を制限します。たとえば、イーサリアムはチューリング完全なバイトコード仮想マシンをサポートしていますが、プログラミング言語は、SolidityやVyperなどのそのバイトコードにコンパイルできる言語に制限されています。.

ABCIの主要な実装はTendermintSocket Protocol(TSP)であり、TendermintCoreがアプリケーションと通信する方法です。 Tendermint Coreは、ブロックチェーンのブロック内のトランザクションの正規の順序を維持および検証する責任がありますが、ABCIは暗号化署名を検証し、トランザクションデータベースを維持し、クライアントがトランザクションデータベースにクエリを実行できるようにします。.

ABCIは、次の3つの主要なメッセージタイプを使用します。

  • DeliverTX
  • CheckTX
  • コミット

ザ・ DeliverTX メッセージはブロックチェーン内のすべてのトランザクションに付随し、検証後にのみアプリケーションの状態を更新できます.

ザ・ CheckTX メッセージはトランザクションを検証するためのものであり、最初にTendermintCoreのmempoolによって検証されます。有効なトランザクションのみがネットワーク全体に伝播されます.

ザ・ コミット メッセージは、現在のアプリケーション状態へのコミットメントを計算し、Merkle証明が署名されたブロックハッシュに対して検証できるようにします。 定足数.

ABCIはコネクション型であり、TendermintCoreはアプリケーションへの3つのABCI接続を維持します.

  • Mempool接続
  • コンセンサス接続
  • クエリ接続

ザ・ Mempool接続 CheckTXメッセージを使用し、トランザクションがコミットされる前にトランザクションを中継する必要があるかどうかを確認するためのものです.

ザ・ コンセンサス接続 コミットされたトランザクションを実行します.

ザ・ クエリ接続 クライアントがアプリケーションの状態を照会できるようにします.

ABCIはTendermintソフトウェアの動的コンポーネントであり、Cosmos Networkのマルチチェーンフレームワーク容量に不可欠であり、ネットワークの基盤となるブロックチェーンエンジンとして機能します。.

画像クレジット–Tendermintドキュメント

テンダーミント & コスモスネットワーク

コスモスネットワーク は、ブロックチェーンシステムのスケーラビリティと相互運用性の主要な問題に対処することに焦点を当てたマルチチェーンブロックチェーンフレームワークです。.

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

読む:ブロックチェーンの相互運用性:問題 & 将来のソリューション

Tendermintの古典的なBFTブロックチェーンエンジンを搭載しており、独立したブロックチェーンが標準化された通信環境にプラグインして機能するためのより広範な構造として機能します。このネットワークにより、パブリックブロックチェーンとプライベートブロックチェーンの両方が相互に通信して価値を交換し、Tendermintのプルーフオブステークコンセンサスメカニズムを通じて相互運用可能なスケーラビリティを活用できます。.

さらに、TendermintのABCIを使用すると、開発者は任意のプログラミング言語を使用して、エコシステムの一部として多様なブロックチェーンを簡単に構築できます。ザ・ Cosmos SDK Goプログラミング言語で記述されたABCIフレームワークであり、 ローションJS JavaScriptで書かれたABCIフレームワークです.

CosmosやPolkadotのようなマルチチェーンフレームワークを取り巻く大きな興奮があります。 CosmosとTendermintとの統合に関する詳細情報とリソースは、 ドキュメンテーション.

結論

Tendermintは、分散ネットワーク、特にブロックチェーンシステムにおけるビザンチンフォールトトレランスの研究開発におけるもう1つの進歩を表しています。これらのタイプのイノベーションは、Cosmosのようなよりスケーラブルで相互運用可能なブロックチェーンネットワークの開発に不可欠です。.

BFTコンセンサスにおけるテンダーミントおよび同様の進展は、暗号通貨業界が最先端技術の限界を押し上げることにどれだけ進んだかを示す優れた例です。ブロックチェーンテクノロジーの背後にある幅広い概念がその真の可能性を実現するには、さらに多くのイノベーションが必要ですが、プロジェクトは正しい方向に進んでおり、分散コンピューティングの展望を動的に変化させています.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me