論文翻訳: HotStuff: BFT Consensus in the Lens of Blockchain
1 Cornell University, 2 VMware Research, 3 UNC-Chapel Hill
Abstract
部分同期モデルのリーダー型ビザンチン障害耐性レプリケーションプロトコルである HotStuff を紹介する。HotStuff のネットワーク通信が同期化されると、正しいリーダーがレプリカ数に対して線形増加する通信複雑性で、実際のネットワーク遅延 (最大遅延ではない) の速度でプロトコルを合意に導く ─ 応答性 (responsiveness) と呼ばれる特性 ─ ことができる。我々の知る限り HotStuff はこれらの特性を併せ持つ最初の部分同期 BFT レプリケーションプロトコルである。HotStuff は古典的な BFT の基礎とブロックチェーンとの架け橋となる新しいフレームワークを中心に構築されている。他の既知のプロトコル (DLS, PBFT, Tendermint, Caspter) や我々のプロトコルを共通のフレームワークで表現することができる。
100 以上の複製を持つネットワーク上で展開した我々の HotStuff は BFT-SMaRt のスループットと待ち時間に匹敵する成果を達成し、(BFT-SMaRt の cubic に対して) リーダーのフェールオーバー時の通信フットプリントが線形である。
Table of Contents
- Abstract
- 1 Introduction
- 2 Related Work
- 3 Model
- 4 Basic HotStuff
- 5 Chained HotStuff
- 6 Implementation
- 7 One-Chain and Two-Chain BFT Protocols
- 8 Evaluation
- 9 Conclusion
- Acknowledgements
- References
- A - Proof of Safety for Chained HotStuff
- B - Proof of Safety for Implementation Pseudocode
- 翻訳抄
1 Introduction
ビザンチン障害耐性 (BFT) とはコンピューティングシステムの運用に不可欠な動作を実行しながら、そのコンポーネントの任意障害 (つまりビザンチン障害) に耐える能力のことである。ステートマシンレプリケーション (SMR) [35, 47] の文脈では、システム全体として
BFT SMR プロトコルが最初に考案されたとき、典型的なターゲットシステムのサイズはローカルエリアネットワーク上に展開された
The scaling challenge. 部分同期モデルにおける最初の実用的 BFT レプリケーションソリューションである PBFT [20] の導入以来、多数の BFT ソリューションがそのコアである 2-phase パラダイムの周辺に構築された。これは安定したリーダーがたった 2 回のメッセージ交換でコンセンサスの決定を進めることができる点で実用的ある。第一段階は
新しいリーダーが情報を収集してレプリカに提案するための view-change と呼ばれるアルゴリズムがレプリケーションの中心である。残念なことに 2-phase パラダイムに基づく view-change は単純なものとはほど遠く[38]、バグを発生させやすく[4]、中程度のシステムサイズであっても深刻な通信ペナルティが発生する。新しいリーダーは
HotStuff は 3-phase コアを中心に展開しており、新しいリーダーは自分が知っている最高の
我々の知る限り Tendermint[15, 16] や Casper[17] のようなブロックチェーン分野における BFT プロトコルのみがこのような単純なリーダー体制に従っている。しかしこれらのシステムは同期コアの周りに構築されており、提案は、広域 peer-to-peer ゴシップネットワーク上でのメッセージ伝播に要する最悪時間に対応しなければならない事前に決定された間隔で行われる。そうすることでそれらは最も実用的な BFT SMR ソリューション (前述を含む) の特徴、すなはち楽観的応答[42] (optimistic responsiveness) を放棄している。形式張らずに言うと、応答性 (responsiveness) は一度指定された非故障リーダーが、実際のメッセージ遅延のみに依存した状況で、メッセージ送信遅延の既知の上限[10] と関係なく、時間的にプロトコルをコンセンサスに導くことができる事を必要とする。我々のモデルにとってより適切なことは楽観的応答であり、GST に達した後の有益の (うまく行けば共通の) 状況でのみ応答を必要とする。楽観的であってもなくても、Tendermint/Casper のようなデザインでは応答性が排除されている。最も
Our contributions. HotStuff と呼ぶ、我々の知る限り以下の 2 つの特徴を達成する最初の BFT SMR プロトコルを提示する:
- 線形ビュー変更: GST の後に正しいリーダーが選択されるとコンセンサスを決定するために
認証子のみが送信される。これはリーダー交代のケースが含まれる。その後、GST 後にコンセンサスに達するための通信コストはカスケードリーダー障害の最悪ケースで 認証子である。 - 楽観的応答性: GST 後、適切なリーダーが指定されると、最初の
応答だけを待って、進行を進めさせる提案を作成できることを保証する必要がある。これはリーダーが交代する場合も含んでいる。
もう一つの HotStuff の特徴は、プロトコルをコンセンサスに導く新しいリーダーのコストが現在のリーダーのコストよりも大きくないことである。このように HotStuff はリーダーの頻繁な引き継ぎをサポートしており、これはチェーンの品質を保証するブロックチェーンのコンテキストで有用であると主張されている[28]。
HotStuff は各ビューに別のフェーズを追加することでこの特性を実現している。これはリーダーの交換プロトコルを大幅に簡素化する代わりにレイテンシーにわずかな代償を払う。この交代では実際のネットワーク遅延のみが発生するが、これは通常、実際の
- ノードのグラフを介した BFT レプリケーションフレームワーク。Safety は投票およびコミットグラフのルールによって指定される。Liveness は新しいノードでグラフを拡張する Pacemaker によって個別に指定される。
- このフレームワークの中でいくつかの既知のプロトコル (DLS, PBFT, Tendermint および Casper) から一つの新しい (我々の HotStuff) へのキャスト。
HotStuff にはそのメカニズムの経済性のために驚くほど単純であるという追加の利点がある: レプリカがそれぞれをどのように扱うかを決定する 2 つのメッセージタイプとシンプルなルールしか存在しない。Safety はノードグラフ上の投票とコミットルールによって指定される。Liveness を達成するために必要とされる機構は Pacemaker 内にカプセル化され、safety で必要とされる機構から明確に分離されている。同時に、それはいくつかの既知のプロトコル (DLS, PBFT, Tendermint および Casper) をマイナーバリエーションとして表すことができるという点で表現に富んでいる。部分的にこの柔軟性はノードのグラフに対する操作に由来し、従来の BFT 基盤と現代的なブロックチェーンとの橋渡しをする。
我々は HotStuff のプロトタイプ実装と予備評価について説明する。HotStuff は 100 を超えるレプリカを使用してネットワーク上に展開され、コードの複雑さが HotStuff を遙かに超える BFT-SMaRt などの成熟したシステムに匹敵し、場合によってはそれを超えるスループットとレイテンシーを実現する。さらに、HotSport の通信フットプリントは頻繁なリーダー交代に直面しても一定のままであるが、BFT-SMaRt はレプリカ数と共に二次関数的に増加することを示す。
| Protocol | Correct leader | Authenticator complexity Leader failure (view-change) |
|
Responsiveness |
|---|---|---|---|---|
| DLS [25] | |
|
|
|
| PBFT [20] | |
|
|
✔ |
| SBFT [30] | |
|
|
✔ |
| Temdermint [15] / Casper [17] | |
|
|
|
| Temdermint* / Casper* | |
|
|
|
| HotStuff | |
|
|
✔ |
2 Related Work
ビザンチン故障に直面してコンセンサスに達することは Lamport ら[37]によって Byzantine Generals Problem として策定され、「ビザンチン故障」という用語も生み出した。最初の同期ソリューションは Pease ら[43] によって提供され、後に Dolev and Strong [24] によって改善された。この改良されたプロトコルには
一方、非同期の構成では Fischer ら[27]が単一の障害に直面した非同期構成で問題が決定論的に解決できない事を示した。さらに、あらゆる非同期ソリューションに対して
2 番目のアプローチは Dwork, Lynch and Stockmeyer (DLS) [25] が最初に示した部分同期による。このプロトコルは非同期期間中の safety を維持し、システムが同期状態になった後、DLS は termination を保証する。一度同期が維持されると DLS は
ステートマシンレプリケーションはクライアントリクエストを順序付け正しいレプリカがその順序で実行するコアのコンセンサスによる。SMR におけるコンセンサスの繰り返しの必要性により、Lamport は安定したリーダーが線形通信と 1 往復で意思決定を行う効率的なパイプラインを運用するプロトコルである Paxos [36] を考案した。同様の補強により Castro and Liskov [20, 21] は PBFT という名の効率的なリーダーベースのビザンチン SMR プロトコルを開発した。PBFT の安定したリーダーは
ランダム化を採用するリーダーベースのビザンチン SMR プロトコルが Ramasamy ら [44] によって提示され、HoneyBadgerBFT という名前のリーダーレス変種が Miller ら [39] によって開発された。それらのコアでは、それらのランダム化ビザンチンソリューションはランダムか非同期ビザンチンコンセンサスを採用しており、その最も知られている通信複雑度は
ビットコインのコアは Nakamoto コンセンサス [40] として知られているプロトコルである。これは確率論的な safety 保証のみをもち、finality を持たない同期プロトコルである ([28, 41, 6] の分析を参照)。これは参加者が不明な permissionless モデルで動作し Proof-of-Work を介して復元力が保持される。前述のように、最近のブロックチェーンソリューションは様々な方法で Proof-of-Work ソリューションと従来の BFT ソリューションをハイブリッド化している [26, 33, 7, 17, 29, 31, 42]。これらのハイブリッドソリューションおよびその他のソリューションでリーダーを交代させる必要性は HotStuff の背後にある動機を提供する。
3 Model
我々は
ネットワークは point-to-point であり、認証されて信頼性がある: 正しいレプリカが別の正しいレプリカからメッセージを受信するのは後者が前者にメッセージを送信した場合のみである。我々が「ブロードキャスト」に言及するとき、ブロードキャスターが関与しておりそれが正常なら、自分自体を含む全てのレプリカに同じ point-to-point メッセージを送信する。我々は Dwork ら [25] の部分同期モデルを採用している。既知の限界
Cryptographic primitives. HotStuff はしきい値署名[48, 18, 14] を使用している。
また、我々は任意の長さの入力を固定長の出力にマッピングする暗号学的ハッシュ関数
Complexity measure. 我々が注目する複雑さはの尺度は認証子複雑性である。特にこれは
4 Basic HotStuff
HotStuff は State Machine Replication (SMR) の問題を解決する。SMR の中核はクライアントによって増え続けるコマンド要求のログを決定するためのプロトコルである。ステートマシンのレプリカは一貫した順序でコマンドを適用する。クライアントは全てのレプリカにコマンド要求を送信し、それらの
基本的な HotStuff ソリューションは Algorithm 2 に示されている。プロトコルは単調増加するビュー番号で番号付けされた一連のビューで機能する。各
プロトコルの重要な要素はリーダー提案に対して定足数証明書 (quorum certificate) (略して "QC") と呼ばれる
以下にフェーズごとのプロトコルロジックの動作説明と、それに続く Algorithm 2 の正確な仕様を示し、safety, liveness および複雑性の論議でセクションを締めくくる。
4.1 Phases
PREPARE フェーズ. 新しいリーダーに対するプロトコルは
リーダーは
安全な枝を選択するための NEW-VIEW 収集は現職のリーダーによって省略されることがある。このとき現職リーダーは単純に自分の持つ中で最も高い
リーダーは
リーダーから現在のビューの PREPARE メッセージを受信すると、レプリカ
PRE-COMMIT フェーズ. リーダーが現在の提案
COMMIT フェーズ. COMMIT フェーズは PRE-COMMIT フェーズに似ている。リーダーが
DECIDE フェーズ. リーダーは
4.2 Data Structure
Message. プロトコルのメッセージ
Quorum certificates. タプル
Tree and branches. それぞれのコマンドはさらに、親ノードのハッシュダイジェストである親リンクを含むノードでラップされる。我々は擬似コードから実装の詳細を省略する。このプロトコル期間、レプリカはノードに引かれた枝が既にそのローカルツリーに存在する場合にのみメッセージを配信する。現実的には、遅延している受信者は他のレプリカから不足しているノードを取得することで追いつくことができる。簡潔化のためこれらの詳細も擬似コードからは省略されている。ある枝が他方の拡張でない場合、2 つの枝は競合する。2 つのノードはそれらによって引かれた枝が競合している場合に競合する。
Bookkeeping variables. レプリカはプロトコルの状態を記録するために追加のローカル変数を使用する: (i)
4.3 Protocol Specification
Algorithm 2 で指定されたプロトコルはビューごとに反復するルートして説明している。それぞれのビューでは、レプリカは自身の役割に基づいて引き続きフェーズを実行する。これは "as" ブロックの連続で記述されている。レプリカは複数の役割を持つことができる。例えばリーダーは (通常の) レプリカでもある。ロールをまたぐ as ブロックの実行は並行して進めることができる。as ブロックそれぞれの実行はアトミックである。
4.4 Safety, Liveness, and Complexity
Safety. 我々は最初に
補題 1.
Proof. 矛盾を示すために
∎
定理 2. もし
Proof. この重要な定理を矛盾によって証明する。
部分的な結果
∎
Liveness. 前のセクションには未定義の 2 つの関数、
補題3.
Proof. レプリカ
∎
定理 4. GST の後、
Proof. 新しいビューから開始し、リーダーは
このプロトコルは明示的な "
∎
ここで
Livelessness with two-phases. ここで "2-phase" HotStuff における無限に非決定的なシナリオを簡単に説明する。これは Casper や Tendermint に同期遅延を導入する必要性と (楽観的) 応答性を放棄する必要性の説明でもある。
2-phase の HotStuff 変種では PRE-COMMIT フェーズを省略して直接 COMMIT に進行する。
ここでは次のような single-view トランスクリプトを無限に繰り返す。システムで最も高い
Complexity. HotStuff の各フェーズではリーダーのみがすべてのレプリカにブロードキャストし、レプリカは投票を認証するために部分署名で送信者に 1 回だけ応答する。リーダーのメッセージでは QC は以前に収集された
5 Chained HotStuff
Basic HotStuff のリーダーが提案を行うには 3 つのフェーズを必要とする。これらのフェーズはレプリカから投票を収集する以外に「役に立つ」作業を行わないが、それらはとても類似している。Chained HotStuff では、Basic HotStuff プロトコル機能を改善すると同時に大幅に単純化している。各 PREPARE フェーズでビューを変更するアイディアであるため、各提案には独自のビューが存在している。これにより、メッセージタイプの数が減り、決定のパイプライン化が可能となる。メッセージタイプ削減の類似アプローチは Casper[1] で提案された。
より具体的には、Chained HotStuff では PREPARE フェーズでの投票はビューでリーダーによって収集され
Chained HotStuff 提案のチェーンに組み込まれた Basic HotStuff プロトコルフェーズのパイプラインを Figure 1 に示す。Chained HotStuff のビュー
従って、Chained HotStuff には NEW-VIEW と generic-phase の GENERIC メッセージの 2 タイプのメッセージのみが存在する。generic QC はすべての論理的なパイプライン化されたフェーズで機能する。次に、Basic HotStuff の COMMIT と DECIDE フェーズでのみ発生する、ロックとコミットを処理するパイプラインのメカニズムについて説明する。
Dummy nodes. 一部のビュー
One-Chain, Two-Chain, and Three-Chain. ノード
チェーン
最後に、
Algorithm 3 は Chained HotStuff の疑似コードを示している。Appendix A の定理 5 によって与えられた safety の証明は Basic HotStuff のものと類似している。有効なノードの QC はその祖先を参照する必要がある。簡潔にするため、この制約が常に保持されると仮定しコードの検証は省略する。
6 Implementation
HotStuff は効率的な SMR システムを構築するための実用的なプロトコルである。そのシンプルさにより、我々は Algorithm 3 をプロトタイプ実装のコードスケルトンのようなイベント駆動型の仕様に簡単に変えることができる。
Algorithm 4 に示されているように、本体から Pacemaker という名前のモジュールに liveness メカニズムを抽出することによりコードはされに単純化および一般化される。次のリーダーは GENERIC フェーズの終わりに常に
Data structures. 各レプリカ
| |
あるノードからその票へのマッピング。 |
| |
最後に投票されたノードの高さ。 |
| |
ロックされているノード ( |
| |
最後に実行されたノード。 |
| |
Pacemaker が保持する最も高い既知の QC ( |
| |
Pacemaker が保持する葉ノード。 |
また全ての正しいレプリカで認識されている同じジェネシスノードである定数
Pacemaker. Pacemaker は GST 後に進行していることを保証するメカニズムである。これは 2 つの要素によって達成される。
1 つ目は "同期" (synchronization) であり、全ての正しいレプリカと一意のリーダーを十分な期間に渡って共通の高さにする。文献 [25, 20, 15] の一般的な同期メカニズムは、レプリカがより大きな高さで費やした
2 つ目は、Pacemaker は正しいレプリカに支持されるであろう提案を選択する方法をリーダーに提供する必要がある。Algorithm 5 で示すように、ビューの変更後の
不良 Pacemaker が任意に
Two-phase HotStuff variant. HotStuff フレームワークの柔軟さをさらに実証するために Algorithm 6 では HotStuff の 2-phase 変種を示す。UPDATE 手続きのみが影響を受け、コミット決定に達するには Two-Chain が必要であり、One-Chain がロックを決定する。前述 (セクション 4.4) で説明したとおり、この 2-phase 変種は楽観的応答性を失っており、Tendermint/Casper と同様である。利点はフェーズ数が少ないことだが、ネットワーク遅延の最大値に基づいた待機時間を Pacemaker に組み込むことによって liveness には対処できる。詳細についてはセクション 7.3 を参照。
7 One-Chain and Two-Chain BFT Protocols
このセクションではビザンチン障害耐性における 40 年に及ぶ研究の 4 つの BFT レプリケーションプロトコルを調査し、それらを Chained HotStuff に似たチェーンフレームワークにキャストする。
Figure 3 は HotStuff を含む 5 つのプロトコルのコミットルールの鳥瞰図を示している。
簡単に言えば、DLS[25] のコミットルールは One-Chain であり、ノードはそれ自体のリーダーによってのみコミットされる。PBFT[20], Tendermint[15, 16], Casper[17] のコミットルールはほとんど同じで Two-Chain で構成される。liveness のために導入したメカニズムと区別するため、PBFT は 2 次サイズの "Proof" を持ち (線形性 (linearity) なし)、Tendermint と Casper は各リーダー提案の前に必須の
7.1 DLS
最も単純なコミットルールは One-Chain である。このルールは最初の既知の非同期ビザンチン合意ソリューションである Dwork, Lynch, Stockmeyer (DLS) をモデルとしていて Figure 3 (a) に示されている。レプリカは投票した最上位ノードの DLS でロックされる。
残念ながら、このルールはある高さでリーダーが曖昧になり、2 つの正しいレプリカがその高さで対立する提案にロックされた場合に容易にデッドロックを引き起こす。ロックされた値に投票しなかったことを示す
実際、DLS では、各高さのリーダーのみが One-Chain コミットルールによるコミット決定に到達することができる。従ってもしそれが曖昧となった場合、リーダー自身だけが被害を受けることになる。レプリカは
7.2 PBFT
PBFT をモデルとしている、より実用的なアプローチでは Two-Chain コミットルールを使用する (Figure 3 (b) 参照)。レプリカが One-Chain を形成するノードに投票すると、レプリカはそのノードにロックされる。同じ高さで競合している One-Chain は、それぞれに QC を持つため DLS のようなデッドロック状態は回避され、単純には不可能である。
しかし、あるレプリカが他のレプリカより高いロック保持している場合、リーダーは
オープンソース[20]化され、いくつかのフォローアップ研究[13, 34]で採用されたオリジナルの PBFT は、各メンバーが投票した最高の One-Chain を報告する
[21] の PBFT 変種においては、リーダー署名はリーダーが定足数から一度だけ収集した最も大きい One-Chain を含んでいる。それはまた定足数の各メンバーから署名された値を一つ含み、より高い One-Chain に投票しなかったことを証明している。この証明をブロードキャストすると通信複雑度
どちらのバリエーションでも、正しいレプリカはリーダーの署名より高い One-Chain を持っていたとしてもロックを解除する。従って、正しいリーダーは同期期間中にその提案を受け入れさせることがっでき liveness は保証される。コストはリーダーの交代ごとに 2 次式の通信である。
7.3 Tendermint and Casper
Tendermint は PBFT と同一の Two-Chain コミットルールがあり、Casper は葉が親と繋がるために QC を持つ必要がない Two-Chain ルールを持っている。つまり Casper では、Figure 3 (c, d) はそれぞれ Tendermint と Casper のコミットルールを示している。
どちらの方法でもリーダーは自分が分かっている最も大きい One-Chain を提案と共に送信するだけである。レプリカはリーダーからより高い One-Chain を受け取るとそのロックを解除する。
ただし、正しいレプリカはリーダーのノードに投票しない場合があるため、進行を保証するために新しいリーダーは最大ネットワーク遅延まで待機して最も大きい One-Chain を獲得しなければならない。そうでなければ、リーダーが新しい height を開始するために最初の
この単純なリーダープロトコルは HotStuff が借用しているリーダープロトコルの通信複雑性の線形増加を具体化している。前述のように、QC はしきい値署名を使用して単一の値で補足することができるため、リーダーは線形の通信複雑性を持つ最も大きい One-Chain を収集して配布することができる。ただし重要なことだが、HotStuff は追加の QC ステップによってリーダーが最大ネットワーク遅延を待機することを要求していない。
8 Evaluation
HotStuff を C++ コード約 4k 行のライブラリとして実装した。最も顕著なのは擬似コードで指定されたコアコンセンサスロジックが 200 行しか消費しなかったことだ。このセションでは、まず最先端のシステムである BFT-SMaRt[13]と比較してベースラインのスループットとレイテンシを調査する。次にビュー変更のメッセージコストに焦点を当てこのシナリオでの利点を確認する。
8.1 Setup
我々の実験は Amazon EC2 の c5.4xlarge インスタンスを使用して実施した。各インスタンスには Intel Xeon Platinum 8000 プロセッサのサポートする 16 個の vCPU が存在した。全てのコアは最大 3.4GHz の Turbo CPU クロック速度を維持した。各レプリカを単一の VM インスタンスで実行したため、元の評価[13]のようにスレッドを多用する BFT-SMaRt はレプリカ事に 16 コアを使用できた。iperf が計測した最大 TCP 帯域幅は約 1.2 ギガバイト/秒だった。我々は実行中に帯域幅調整を行わなかった。2 つのマシン間のネットワーク遅延は 1 ミリ秒未満だった。
我々の HotStuff プロトタイプ実装は投票および定足数証明書の両方すべての電子署名に secp256k1 を使用する。BMT-SMaRt では通常の操作中はメッセージの MAC (メッセージ認証コード) に hmac-sha1 を使用し、ビュー変更中は MAC に加えデジタル署名を使用する。
HotStuff の全ての結果はクライアントからの end-to-end の測定を反映している。BFT-SMaRt については BFT-SMaRt の Web サイト (https://github.com/bft-smart/library) のマイクロベンチマークプログラム ThroughputLatencyServer および ThroughputLatencyClient を使用した。クライアントプログラムは end-to-end のレイテンシを計測しスループットは計測しないが、サーバ側のプログラムはスループットとレイテンシの両方を計測する。サーバからのスループット結果とクライアントからの遅延の結果を使用した。
8.2 Base Performance
我々は最初に他の BFT レプリケーションシステムの評価でよく見られる構成でスループットとレイテンシを測定した。システムが飽和するまで操作要求レートを変えながら、単一の障害、つまり
Figure 4 は両方のシステムでの 3 つのバッチサイズ、100, 400, 800 を示しているが、これらのシステムには異なるバッチスキームがあるため、これらの値はそれぞれのシステムでわずかに異なることを意味している。BFT-SMaRt は操作ごとに個別のコンセンサス決定を行い、複数のコンセンサスプロトコルからのメッセージをバッチ処理する。従って、典型的な L 字型のレイテンシ/スループットパフォーマンスとなる。HotStuff は各ノードで複数の操作をバッチ処理しているため決定ごとの電子署名コストを軽減している。ただし、バッチごとに 400 を超える操作を行うと、バッチ処理で発生するレイテンシは暗号のコストよりも高くなる。これらの違いにもかかわらず 3-phase ("HS3-") と 2-phase ("HS2-") の両方の HotStuff は 3 つのバッチサイズの全てで BFT-SMaRt ("BS-") と同等のレイテンシ性能を実現し、スループットは BFT-SMaRt を著しく上回った。
バッチサイズが 100 および 400 の場合、最低レイテンシの HotStuff ポイントは、最高のスループットで BFT-SMaRt によって同時に達成できるレイテンシとスループットよりも良好なレイテンシとスループットを提供するが、レイテンシはわずかに増加する。この増加は HotStuff で採用しているバッチ処理の戦略に一部起因する: バッチの決定に達するには 3 つの追加の完全バッチ (2-phase 変種では 2 つ) が必要となる。我々の実験では未処理のリクエスト数を多く維持したが、バッチサイズが大きくなるほど、バッチ処理パイプラインを満たすのに時間がかかる。実際の展開をさらに最適化して未処理の操作数にバッチサイズを適合することができる。
Figure 5 でそれぞれ "p0", "p128", "p1024" の表示は 0/0, 128/128, 1024/1024 の 3 つのクライアント要求/応答ペイロードサイズ (バイト数) を示している。全てのペイロードサイズに対して、3-phase と 2-phase の両方で HotStuff のスループットが BFT-SMaRt を上回り、同等か同程度のレイテンシを実現した。
BFT-SMaRt は HotStuff が使用する電子署名の非対称暗号よりも桁違いに速い、対称鍵に基づく MAC を使用する。また 3-phase HotStuff は BFT-SMaRt が使用する 2-phase PBFT 変種と比較してより多くのラウンドトリップを行う。それでも HotStuff は同等のレイテンシと遙かに高いスループットを実現している。以下では HotStuff のパフォーマンス上の利点がより顕著になる、より困難な状況で両方のシステムを評価する。
8.3 Scalability
HotStuff のスケーラビリティを様々な次元で評価するために 3 の実験を行った。ベースラインではレプリカの数を変えながらサイズがゼロの要求/応答ペイロードを使用した。2 番目の評価では 128 バイトと 1024 バイトの要求/応答ペイロードを使用してベースライン実験を繰り返した。3 番目のテストでは NetEm (https://www.linux.org/docs/man8/tc-netem.html 参照) を使用して実装された 5ms ±0.5ms または 10ms ±1.0ms に均一に分散されたレプリカ間にネットワーク遅延を導入しながら (ペイロードが空の) ベースラインを繰り返した。各データポイントに対して、同じ設定で 5 回の実行を繰り返し、全ての実行の標準偏差を示すエラーバーを表示している。
最初の設定は Figure 6a (スループット) と Figure 6b (レイテンシ) に示されている。3-phase および 2-phase のHotStuff は BFT-SMaRt よりも一貫して優れたスループットを示すが、それらのレイテンシは BFT-SMaRt と同等であり緩やかに劣化している。
ペイロードサイズが 128 または 1024 バイトとして 2 番目の設定は Figure 7a (スループット) および Figure 7b (レイテンシ) で "p128" または "p1024" で示されている。二次関数的な帯域幅コストのため BFT-SMaRt のスループットは適度なペイロードサイズ (1024バイト) で HotStuff よりも悪くなる。
3 番目の設定は Figure 8a (スループット) と Figure 8b (レイテンシ) に "5ms" と "10ms" として示している。繰り返すが、BFT-SMaRt での大きな帯域消費により HotStuff は両方のケースで一貫して BFT-SMaRt を上回った。
8.4 View Change
リーダー交代時の通信の複雑さを評価するために BFT-SMaRt のビュー変更プロトコルないで実行された MAC と署名の検証回数をカウントした。我々の評価戦略は以下の通り。我々は BFT-SMaRt の 1000 回の決定ごとにビュー変更を挿入した。ビュー変更プロトコル内でメッセージを受信したり処理する際に検証する回数をカウントするコードを BFT-SMaRt のソースに装備した。通信複雑性以上に、この測定はこれらの認証済み値の転送に関連する暗号計算負荷を協調している。
Figure 9a と Figure 9b (訳注:原文中に Figure 9a/b は存在せず 10a/b がこれに相当) はビューの変更ごとに処理される追加の認証子 (それぞれ MAC と署名) の数を示している。この定義では、リーダーが同じかどうかに関係なく認証子の数が同じままであるため、HotStuff に "余計な" 認証子は存在しないことに注意。2 つの図は BFT-SMaRt が 3 次数の MAC と 2 次数の署名を使用していることを表している。HotStuff はビュー変更に追加の認証子を必要としないためグラフからは省略されている。
リーダー交代の実時間パフォーマンスを評価することは難しい。第一に、頻繁なビュー変更をトリガーすると BFT-SMaRt はスタックした; 我々の認証子カウントプログラムはシステムがスタックする前に可能な限り多くの成功したビュー変更について平気な為る必要があり実験を何度も繰り返した。第二に、リーダー交代の実際の経過時間はタイムアウトパラメータとリーダー選挙メカニズムに大きく依存する。従って意味のある比較を提供することは不可能である。
9 Conclusion
部分同期モデルにおける最初の実用的な BFT レプリケーションソリューションである PBFT の導入以来、2-phase コアパラダイムを中心に多数の BFT ソリューションが構築された。第一フェーズでは QC を通じた提案の一意性を保証し、第二フェーズでは QC を通じて新しいリーダーがレプリカを調整して安全な提案に投票できるようにしている。このためにリーダーは
HotStuff は 3-phase コアを中心に展開しており、新しいリーダーは自分が知っている最も大きい QC を選択するだけでよい。これにより、上記の複雑さが緩和されると同時に、リーダー交代プロトコルが大幅に簡素化される。フェーズを (ほぼ) 正規化したため HotStuff のパイプライン化と頻度の高いリーダーローテーションが非常に容易となった。
Acknowledgements
We are thankful to Mathieu Baudet, Avery Ching, George Danezis, François Garillot, Zekun Li, Ben Maurer, Kartik Nayak, Dmitri Perelman, and Ling Ren, for many deep discussions of HotStuff, and to Mathieu Baudet for exposing a subtle error in a previous version posted to the ArXiv of this manuscript.
References
- Casper ffg with one message type, and simpler fork choice rule. https://ethresear.ch/t/casper-ffg-with-one-message-type-and-simpler-fork-choice-rule/103, 2017.
- Istanbul bft’s design cannot successfully tolerate fail-stop failures. https://github.com/jpmorganchase/quorum/issues/305, 2018.
- A livelock bug in the presence of byzantine validator. https://github.com/tendermint/tendermint/issues/1047, 2018.
- Ittai Abraham, Guy Gueta, Dahlia Malkhi, Lorenzo Alvisi, Ramakrishna Kotla, and Jean-Philippe Martin. Revisiting fast practical byzantine fault tolerance. CoRR, abs/1712.01367, 2017.
- Ittai Abraham, Guy Gueta, Dahlia Malkhi, and Jean-Philippe Martin. Revisiting fast practical Byzantine fault tolerance: Thelma, velma, and zelma. CoRR, abs/1801.10022, 2018.
- Ittai Abraham and Dahlia Malkhi. The blockchain consensus layer and BFT. Bulletin of the EATCS, 123, 2017.
- Ittai Abraham, Dahlia Malkhi, Kartik Nayak, Ling Ren, and Alexander Spiegelman. Solida: A blockchain protocol based on reconfigurable byzantine consensus. In 21st International Conference on Principles of Distributed Systems, OPODIS 2017, Lisbon, Portugal, December 18-20, 2017, pages 25:1–25:19, 2017.
- Ittai Abraham, Dahlia Malkhi, and Alexander Spiegelman. Validated asynchronous byzantine agreement with optimal resilience and asymptotically optimal time and word communication. In Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, PODC 2019, Toronto, ON, Canada, July 29-August 2, 2019, 2019.
- Yair Amir, Brian A. Coan, Jonathan Kirsch, and John Lane. Prime: Byzantine replication under attack. IEEE Trans. Dependable Sec. Comput., 8(4):564–577, 2011.
- Hagit Attiya, Cynthia Dwork, Nancy A. Lynch, and Larry J. Stockmeyer. Bounds on the time to reach agreement in the presence of timing uncertainty. J. ACM, 41(1):122–152, 1994.
- Pierre-Louis Aublin, Rachid Guerraoui, Nikola Knezevic, Vivien Quéma, and Marko Vukolic. The next 700 BFT protocols. ACM Trans. Comput. Syst., 32(4):12:1–12:45, 2015.
- Michael Ben-Or. Another advantage of free choice: Completely asynchronous agreement protocols (extended abstract). In Proceedings of the Second Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, Montreal, Quebec, Canada, August 17-19, 1983, pages 27–30, 1983.
- Alysson Neves Bessani, João Sousa, and Eduardo Adílio Pelinson Alchieri. State machine replication for the masses with BFT-SMART. In 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, DSN 2014, Atlanta, GA, USA, June 23-26, 2014, pages 355–362, 2014.
- Dan Boneh, Ben Lynn, and Hovav Shacham. Short signatures from the weil pairing. J. Cryptology, 17(4):297–319, 2004.
- Ethan Buchman. Tendermint: Byzantine fault tolerance in the age of blockchains. PhD thesis, 2016.
- Ethan Buchman, Jae Kwon, and Zarko Milosevic. The latest gossip on BFT consensus. CoRR, abs/1807.04938, 2018.
- Vitalik Buterin and Virgil Grifith. Casper the friendly finality gadget. CoRR, abs/1710.09437, 2017.
- Christian Cachin, Klaus Kursawe, and Victor Shoup. Random oracles in constantinople: Practical asynchronous byzantine agreement using cryptography. J. Cryptology, 18(3):219–246, 2005.
- Christian Cachin and Marko Vukolic. Blockchain consensus protocols in the wild. CoRR, abs/1707.01873, 2017.
- Miguel Castro and Barbara Liskov. Practical byzantine fault tolerance. In Proceedings of the Third USENIX Symposium on Operating Systems Design and Implementation (OSDI), New Orleans, Louisiana, USA, February 22-25, 1999, pages 173–186, 1999.
- Miguel Castro and Barbara Liskov. Practical byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst., 20(4):398–461, 2002.
- Allen Clement, Manos Kapritsos, Sangmin Lee, Yang Wang, Lorenzo Alvisi, Michael Dahlin, and Taylor Riche. Upright cluster services. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles 2009, SOSP 2009, Big Sky, Montana, USA, October 11-14, 2009, pages 277–290, 2009.
- Danny Dolev and Rüdiger Reischuk. Bounds on information exchange for byzantine agreement. J. ACM, 32(1):191–204, 1985.
- Danny Dolev and H. Raymond Strong. Polynomial algorithms for multiple processor agreement. In Proceedings of the 14th Annual ACM Symposium on Theory of Computing, May 5-7, 1982, San Francisco, California, USA, pages 401–407, 1982.
- Cynthia Dwork, Nancy A. Lynch, and Larry J. Stockmeyer. Consensus in the presence of partial synchrony. J. ACM, 35(2):288–323, 1988.
- Ittay Eyal, Adem Efe Gencer, Emin Gün Sirer, and Robbert van Renesse. Bitcoin-ng: A scalable blockchain protocol. In 13th USENIX Symposium on Networked Systems Design and Implementation, NSDI 2016, Santa Clara, CA, USA, March 16-18, 2016, pages 45–59, 2016.
- Michael J. Fischer, Nancy A. Lynch, and Mike Paterson. Impossibility of distributed consensus with one faulty process. J. ACM, 32(2):374–382, 1985.
- Juan A. Garay, Aggelos Kiayias, and Nikos Leonardos. The bitcoin backbone protocol: Analysis and applications. In Advances in Cryptology - EUROCRYPT 2015 - 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Sofia, Bulgaria, April 26-30, 2015, Proceedings, Part II, pages 281–310, 2015.
- Yossi Gilad, Rotem Hemo, Silvio Micali, Georgios Vlachos, and Nickolai Zeldovich. Algorand: Scaling byzantine agreements for cryptocurrencies. In Proceedings of the 26th Symposium on Operating Systems Principles, Shanghai, China, October 28-31, 2017, pages 51–68, 2017.
- Guy Golan-Gueta, Ittai Abraham, Shelly Grossman, Dahlia Malkhi, Benny Pinkas, Michael K. Reiter, DragosAdrian Seredinschi, Orr Tamir, and Alin Tomescu. SBFT: a scalable decentralized trust infrastructure for blockchains. CoRR, abs/1804.01626, 2018.
- Timo Hanke, Mahnush Movahedi, and Dominic Williams. DFINITY technology overview series, consensus system. CoRR, abs/1805.04548, 2018.
- Jonathan Katz and Chiu-Yuen Koo. On expected constant-round protocols for byzantine agreement. J. Comput. Syst. Sci., 75(2):91–112, 2009.
- Eleftherios Kokoris-Kogias, Philipp Jovanovic, Nicolas Gailly, Ismail Khoff, Linus Gasser, and Bryan Ford. Enhancing bitcoin security and performance with strong consistency via collective signing. CoRR, abs/1602.06997, 2016.
- Ramakrishna Kotla, Lorenzo Alvisi, Michael Dahlin, Allen Clement, and Edmund L. Wong. Zyzzyva: Speculative byzantine fault tolerance. ACM Trans. Comput. Syst., 27(4):7:1–7:39, 2009.
- Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7):558–565, 1978.
- Leslie Lamport. The part-time parliament. ACM Trans. Comput. Syst., 16(2):133–169, 1998.
- Leslie Lamport, Robert E. Shostak, and Marshall C. Pease. The byzantine generals problem. ACM Trans. Program. Lang. Syst., 4(3):382–401, 1982.
- James Mickens. The saddest moment. ;login:, 39(3), 2014.
- Andrew Miller, Yu Xia, Kyle Croman, Elaine Shi, and Dawn Song. The honey badger of BFT protocols. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, Vienna, Austria, October 24-28, 2016, pages 31–42, 2016.
- Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. https://bitcoin.org/bitcoin.pdf, 2008.
- Rafael Pass, Lior Seeman, and Abhi Shelat. Analysis of the blockchain protocol in asynchronous networks. In Advances in Cryptology - EUROCRYPT 2017 - 36th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Paris, France, April 30 - May 4, 2017, Proceedings, Part II, pages 643–673, 2017.
- Rafael Pass and Elaine Shi. Thunderella: Blockchains with optimistic instant confirmation. In Advances in Cryptology - EUROCRYPT 2018 - 37th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Tel Aviv, Israel, April 29 - May 3, 2018 Proceedings, Part II, pages 3–33, 2018.
- Marshall C. Pease, Robert E. Shostak, and Leslie Lamport. Reaching agreement in the presence of faults. J. ACM, 27(2):228–234, 1980.
- HariGovind V. Ramasamy and Christian Cachin. Parsimonious asynchronous byzantine-fault-tolerant atomic broadcast. In Principles of Distributed Systems, 9th International Conference, OPODIS 2005, Pisa, Italy, December 12-14, 2005, Revised Selected Papers, pages 88–102, 2005.
- Michael K. Reiter. The rampart toolkit for building high-integrity services. In Theory and Practice in Distributed Systems, International Workshop, Dagstuhl Castle, Germany, September 5-9, 1994, Selected Papers, pages 99–110, 1994.
- Phillip Rogaway and Thomas Shrimpton. Cryptographic hash-function basics: Definitions, implications, and separations for preimage resistance, second-preimage resistance, and collision resistance. In Bimal K. Roy and Willi Meier, editors, Fast Software Encryption, 11th International Workshop, FSE 2004, Delhi, India, February 5-7, 2004, Revised Papers, volume 3017 of Lecture Notes in Computer Science, pages 371–388. Springer, 2004.
- Fred B. Schneider. Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Comput. Surv., 22(4):299–319, 1990.
- Victor Shoup. Practical threshold signatures. In Advances in Cryptology - EUROCRYPT 2000, International Conference on the Theory and Application of Cryptographic Techniques, Bruges, Belgium, May 14-18, 2000, Proceeding, pages 207–220, 2000.
- Yee Jiun Song and Robbert van Renesse. Bosco: One-step byzantine asynchronous consensus. In Distributed Computing, 22nd International Symposium, DISC 2008, Arcachon, France, September 22-24, 2008. Proceedings, pages 438–450, 2008.
- Maofan Yin, Dahlia Malkhi, Michael K. Reiter, Guy Golan Gueta, and Ittai Abraham. Hotstuff: Bft consensus in the lens of blockchain. CoRR, abs/1803.05069, 2018.
A - Proof of Safety for Chained HotStuff
定理5.
Proof. 我々はこの定理を矛盾によって証明する。補題 1 と同類の論議により
ここで
仮定によりそのような
liveness 議論は Basic HotStuff とほぼ同じだが、決定を保証するため GST 後に 2 連続でリーダーが正しいことを仮定しなければならない点が異なっている。簡潔のため省略する。
B - Proof of Safety for Implementation Pseudocode
補題6.
Proof.
Notation 1. 任意のノード
補題7.
Proof. この重要な補題を矛盾によって証明する。
ここで
仮定により、例えば
定理 8.
Proof.
B.1 Remarks
HotStuff 設計で得られるトレードオフについての洞察を得るために我々は safety に対して特定の制約が必要な理由を説明する。
Why monotonic vheight? (なぜ単調な高さなのか?) 各高さに対して複数回投票しない限り、レプリカが単調に投票する必要がないように投票ルールを変更すると、この弱められた制約は safety を破壊するだろう。例えばレプリカは最初に
Why direct parent? (なぜ直接の親か?) 直接の親を持つ制約は、補題 6 に補強されるように、証明で使用される関係式
翻訳抄
State Machine Replication を行うための BFT 合意アルゴリズム HotStuff に関する 2019 年の論文。ブロックチェーンのような頻繁なリーダー変更を行う環境向けに、通信コストが
- Maofan Yin, Dahlia Malkhi, Michael K. Reiter, Guy Golan Gueta, Ittai Abraham (2019) HotStuff: BFT Consensus in the Lens of Blockchain
- BFT in Lens of Blockchain



















