本稿について
本稿は、Tendermintホワイトペーパーの詳細版ともいえるTendermint現CTOであるEthan Buchman氏の執筆論文をもとにTendermintについて見ていくシリーズです。冒頭に筆者による「簡単まとめ」を入れ、その後にもととなった部分の日本語訳を載せるという順番で書いていきます。
論文「Tendermint: Byzantine Fault Tolerance in Age of Blockchain」の原文はこちら。
今回の対象範囲は第3章「Tendemint Consensus」のうち3.3「Blockchain」で、これを読むとTendermintのブロックについてやや詳しい内容が分かります。
原文はこちらになります。
スポンサードサーチ
要点をまとめてみる
- ブロックの形式をとる理由は、帯域幅の最適化と完全性の最適化が得られるからである。これによりスループットとフォールトトレランス性が向上する。
- また、ブロックを使うことでレイテンシの改善が見込める。
- Tendermintでは、数百ミリ秒から数秒ほどのレイテンシである。
- 前ブロックとの紐づけとして、前ブロックのハッシュと、前ブロックのコミットの要因となったラストコミットの2つを持つ。
- ブロックは、ブロックヘッダ、トランザクションのリスト、ラストコミットの3つの部分からなる。
以下、今回取り扱った箇所の日本語訳なので詳細を知りたければどうぞ。
Chapter3. Tendermintコンセンサス(続き)
3.3 Blockchain
Tendermintは1度にトランザクションのまとまり、またはブロックを操作する。暗号理論的なハッシュで明示的にそれぞれのブロックをその前のブロックと紐づけることで、次から次のブロックへと継続性が維持され、その結果ブロックチェーンが形成される。ブロックチェーンには順番通りのトランザクションログとバリデータがブロックをコミットしたという証拠の両方が含まれる。
3.3.1 なぜブロックか?
典型的に、コンセンサスアルゴリズムは計画的に一度に1回トランザクションをコミットし、その後で一まとめにする。チャプター2で述べたように、一まとめにしたしたアトミックブロードキャストの観点から問題に取り組むと主に2つの最適化がもたらされ、さらなるスループットとフォールトトレランス性が得られる。
- 帯域幅の最適化:あらゆるコミットには全バリデータにまたがる2ラウンドのコミュニケーションが必要なので、ブロックにトランザクションを一まとめにすることはブロック内の全トランザクションに対するコミットのコストを償却する。
- 完全性の最適化:ブロックのハッシュチェーンは変更不能なデータ構造を形成し、Gitリポジトリとほぼ同様に、履歴の任意の時点でサブステートに対する真正性のチェックを可能にする。
ブロックは他の効果も誘発する。これは微妙なものであるが、潜在的に重要なものである。これはトランザクションの最小のレイテンシをブロック全体のレイテンシまで引き上げ、Tendermintに関しては、レイテンシは数百ミリ秒から数秒ほどである。従来の直列化可能なデータベースシステムは数ミリ秒から数十ミリ秒ほどのコミットのレイテンシであり、(2ラウンドではなく)たった1ラウンドのコミュニケーションと(2/3ではなく)過半数からの応答を必要とする。しかし、他のアルゴリズムではリーダー選出により高速なコミット時間が妨げられるのとは違い、Tendermintはノードの故障と非同期性に関してネットワークの全体的な健全性に敏感に反応するさらに規則的な拍動をもたらす。
意図的に誘発させたレイテンシは金融市場で有望であるが、インターネット上の通信自律システムの一貫性でそのような拍動の役割が果たすものはまだ決まっていない。
3.3.2 ブロック構造
ブロックの目的はトランザクションのまとまりを取り込むことと、直前のブロックとリンクすることである。リンクは2つの形式をとる。つまり、前ブロックのハッシュと前ブロックのコミットを起こした事前コミットの集合で、後者はラストコミット(LastCommit)という。従ってブロックは3つの部分からなる。すなわち、ブロックヘッダ、トランザクションのリスト、ラストコミットである。
(EthanのTendermint論文4 ←← 前)|(次 →→ EthanのTendermint論文6)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。