筆者まえがき
以前にTendermintホワイトペーパーの日本語訳を掲載しましたが、やや消化不良だったのでもう少し"濃い"Tendermintの論文を覗いてみようと始めました。
ただ、論文をそのまま読み切ろうとすると100ページ程度あって長いので、コンセプトを理解するのに重要と思われる章を抜粋して要点をまとめつつ翻訳を掲載する形で進めていきます。
スポンサードサーチ
本稿について
本稿は、Tendermintホワイトペーパーの詳細版ともいえるTendermint現CTOであるEthan Buchman氏の執筆論文をもとにTendermintについて見ていくシリーズです。冒頭に筆者による「簡単まとめ」を入れ、その後にもととなった部分の日本語訳を載せるという順番で書いていきます。
論文「Tendermint: Byzantine Fault Tolerance in Age of Blockchain」の原文はこちら。
今回の対象範囲は第3章「Tendemint Consensus」のうち3.1「Tendermint Overview」で、これを読むとTendermintのコンセンサスの概観を掴むことができます。
原文はこちらになります。
要点をまとめてみる(筆者視点)
- Tendermintはブロックチェーンのステートマシンレプリケーションアルゴリズムである。
- バリデータは公開鍵で識別できる。役割は次の3つである。
- ステートの完全なコピーの保持
- ブロック提案
- 投票
- ブロックには高さが割り振られている。ブロックのコミットには複数ラウンドかかる場合もあるが、最終的に1ブロックに定まる。
- ロックメカニズムでセーフティ侵害を防ぐ。
- 投票メカニズムはコンセンサスアルゴリズムである。
以下、今回取り扱った箇所の日本語訳なので詳細を知りたければどうぞ。
Chapter3. Tendermintコンセンサス
このチャプターでは、Tendermintのコンセンサスとアトミックなブロードキャストのための関連ブロックチェーンを示す。BFTコンセンサス問題を詳細に説明し、π-calculusでTendermintコンセンサスの形式仕様を与える。Tendermintブロックチェーンはアトミックなブロードキャストを満たすことを略式的に証明する。calculusプロセスで完全なブロックチェーンプロトコルを捉えることと、その特性を検証することは今後の課題とする。
3.1 Tendermint概観
Tendermintはブロックチェーンパラダイムにおける、セキュアなステートマシンレプリケーションアルゴリズムである。BFT-ABCの形式をとり、さらにアカウンタブルである。つまり、セーフティが侵害された場合、いつでも誰が悪意あるふるまいをしたのかを検証できる。
Tendermintはバリデータ(validators)の集合から始まる。バリデータはそれぞれの公開鍵で識別され、各バリデータはレプリケートされたステートの完全なコピーの保持と、新しいブロック(トランザクションのまとまり)の提案、ブロックに対する投票を行う責務がある。ブロック1つ1つには1ずつ増加するインデックス、または高さ(height)が割り当てられるので、有効なブロックチェーンは各高さにおいて有効なブロックを一つだけ持つ。各高さでは、バリデータはラウンド(rounds)で代わる代わるブロックを提案するので、任意のラウンドで最大で1つの有効な提案者がいる。ネットワークの非同期性のために任意の高さにおけるブロックのコミットには複数ラウンドかかる可能性がある。また、1/3以上のバリデータがオフラインまたは分離した場合、ネットワークは完全に停止する可能性がある。提案ブロックがコミットされる前にバリデータは提案ブロックに対する2フェーズの投票に携わり、シンプルなロックメカニズムに従う。このロックメカニズムは、バリデータの1/3以下の悪意ある集団がセーフティを侵害するのを防ぐものである。
中核となるラウンドベースの投票メカニズムはコンセンサスアルゴリズムである点に注意されたい。これはブロック内へと紡がれることでアトミックなブロードキャストができるのである。各ブロックはヘッダ(header)といういくつかのメタデータを含んでおり、この中には直前の高さにおけるブロックのハッシュがあるので、ハッシュのチェーンが形成される。ヘッダにはブロック高、ブロックが提案された時のローカルタイム、そのブロックに取り込まれたトランザクションのマークルルートハッシュも含まれている。
|(次 →→ EthanのTendermint論文2)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。