Tendermint (コンセンサス・アルゴリズム)まとめ

NO IMAGE

とりあえず、重要なところだけ簡単にまとめてみた。詳細はそのうち書くかも。

最近、用語の使い方が変わった様子。

  • TendermintCoreが、ブロックチェーン・コンセンサス・エンジン。
  • TMSP(The Tendermint Socket Protocol):
  • 社名が Tendermintから All in Bits, Inc. に変更(2017年1-3月位)

概要

現時点の最新バージョン Tendermint version 0.7 時点の説明です。

  • POS型のコンセンサス・アルゴリズム(分散型合意形成アルゴリズム)
  • BFT アルゴリズムをベースにしている
  • ユーザが、コンセンサス・プロセスに参加するためにバリデータになるには、担保の預金を入れなければいけない
  • PBFTと違って、固定のリーダーではなく、ラウンドロビン
  • PBFTと違って、ダイナミックメンバーシップ制
  • 1秒位でコミット

  • 250バイトのトランザクションで、10,000トランザクション/秒

公式サイト

用語

  • propose: プロポーズ: 提案: Tendermintでは、次のブロックの提案
  • prevote: プリボート: 前投票: Tendermintでは、次のブロックへの前投票
  • precommit: プリコミット: 事前コミット: 本コミット前の仮コミット
  • commit: コミット: ブロックをブロックチェーンへ入れること
  • proposer: プロポーザー: ブロック提案をするノード
  • heigit: 高さ: ブロックの高さ(番号)
  • newHeight: 新しい高さ: 新しいブロックの高さ(番号)

大雑把な状態遷移

新しい高さ -> (プロポーズ -> プリボート -> プリコミット)+ -> コミット -> 新しい高さ ->…

(プロポーズ -> プリボート -> プリコミット)が、ラウンドと呼ばれる。

ステート・マシーン・ダイアグラム

                           +-------------------------------------+
                            v                                     |(`CommmitTime+timeoutCommit`まで待つ)
                      +-----------+                         +-----+-----+
         +----------> |  プロポーズ  +--------------+          | 新しい高さ |
         |            +-----------+              |          +-----------+
         |                                       |                ^
         |(それ以外, timeoutPrecommit後)         v                |
   +-----+-----+                           +-----------+          |
   | プリコミット |  <------------------------+  プリボート  |          |
   +-----+-----+                           +-----------+          |
         |(ブロック用の3分の2以上のプリコミットが発見された時)                  |
         v                                                        |
   +--------------------------------------------------------------------+
   |  コミット                                                            |
   |                                                                    |
   |  * CommitTime = nowにセット;                                           |
   |  * ブロックを待ってから、ブロックをstage/save/commit;                   |
   +--------------------------------------------------------------------+

プロポーザル

  • プロポーザルは、ラウンド毎に指定されたプロポーザーによってサインされ、発行されたもの。プロポーザーは、投票力に比例してプロポーザーを選択する決定論的で、ノンチョーキング・ラウンドロビン選択アルゴリズムによって選ばれる。

Hacker News

Tendermint – The completely decentralized consensus engine | Hacker News

Tendermint vs PBFT

Tendermint vs PBFT

ラウンドロビン vs 固定リーダ

  • 新しいリーダを選ぶためのラウンドロビン・スキーム
  • 固定リーダの方が、スループットは高い

ダイナミック・メンバーシップ

  • PBFT: 固定レプリカ/ヴァリデータ
  • Tendermint: ダイナミック・メンバーシップ

DLRアルゴリズム

関連アルゴリズム

Consensus in the Presence of Partial Synchrony (1988)

ベンチマーク

一秒にどれ位のトランザクションを処理できるか?

参考ページ

関連記事

ニュース記事

関連用語

  • Tendermint: テンダーミント
  • コンセンサス・アルゴリズム
  • Proof of Work: プルーフ・オブ・ワーク
  • Proof of Stake: プルーフ・オブ・ステイク
  • BFT: Byzantine fault tolerance
  • PBFT: Practical Byzantine Fault Tolerance
  • blockchain: ブロックチェーン、ブロックチェイン
  • distributed shared database: 分散型データベース
  • Eris Industries: エリス・インダストリーズ
  • HydraChain: ハイドラチェーン、ハイドラチェイン
  • Jae Kwon
     

免責事項

本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

     

コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?

当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。

ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。

     
     

ブロックチェーン学習に最適の書籍の紹介

図解即戦力 ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書

ブロックチェーン イーサリアムへの入り口 第二版 (ブロックチェーン技術書籍)

本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。(はじめにより)

Blockchainカテゴリの最新記事