Skip to main content
QUICK REVIEW

[論文レビュー] RCanopus: Making Canopus Resilient to Failures and Byzantine Faults

Srinivasan Keshav, Wojciech Golab|arXiv (Cornell University)|Oct 22, 2018
Distributed systems and fault tolerance参考文献 13被引用数 6
ひとこと要約

RCanopusは、地理的に局所化されたByzantine Group(BG)にノードをグループ化することで、CanopusのコンSENSUSプロトコルを拡張し、地理分散システムにおけるByzantineフォールト耐性およびライブネスを達成する。パイプライン処理、1サイクル遅延コミット、クォーラムベースの検証を用いて、安全で、クラッシュ、Byzantineフォールト、ネットワークパーティションに対して耐性を持つ。

ABSTRACT

Distributed consensus is a key enabler for many distributed systems including distributed databases and blockchains. Canopus is a scalable distributed consensus protocol that ensures that live nodes in a system agree on an ordered sequence of operations (called transactions). Unlike most prior consensus protocols, Canopus does not rely on a single leader. Instead, it uses a virtual tree overlay for message dissemination to limit network traffic across oversubscribed links. It leverages hardware redundancies, both within a rack and inside the network fabric, to reduce both protocol complexity and communication overhead. These design decisions enable Canopus to support large deployments without significant performance degradation. The existing Canopus protocol is resilient in the face of node and communication failures, but its focus is primarily on performance, so does not respond well to other types of failures. For example, the failure of a single rack of servers causes all live nodes to stall. The protocol is also open to attack by Byzantine nodes, which can cause different live nodes to conclude the protocol with different transaction orders. In this paper, we describe RCanopus (`resilent Canopus') which extends Canopus to add liveness, that is, allowing live nodes to make progress, when possible, despite many types of failures. This requires RCanopus to accurately detect and recover from failure despite using unreliable failure detectors, and tolerance of Byzantine attacks. Second, RCanopus guarantees safety, that is, agreement amongst live nodes of transaction order, in the presence of Byzantine attacks and network partitioning.

研究の動機と目的

  • Byzantineフォールトとネットワークパーティション下でも安全でライブな、耐障害性の高い地理分散型コンセンサスプロトコルの設計。
  • 伝統的なBFTプロトコルのスケーラビリティの限界を克服し、地理的にグループ化されたByzantine Group(BG)間で並列コンセンサスを可能にする。
  • 障害やパーティション下での安全を保証するため、1サイクル遅延コミットメカニズムを導入して、状態のコミットを安全に実現する。
  • ノードのクラッシュ、Byzantine行動、ネットワークパーティションを含む幅広いフォールトタイプを耐容可能にしながら、スループットを損なわない。
  • パイプライン処理やツリー型メッセージ配布といった既存のスケーラブルコンセンサスパターンとシームレスに統合する。

提案手法

  • ラック内にスーパーリーフ(SL)を形成し、SLをグループ化してByzantine Group(BG)を構成することで、グループ内での高速コンセンサスを実現する。
  • Canopusプロトコルを基盤とし、高いスループットを実現するため、パイプライン処理、ラウンドベース、ツリー型オーバーレイ通信パターンを活用する。
  • 安全を保証するため、1サイクル遅延コミットメカニズムを実装し、前回サイクル終了時に障害またはByzantineなBGが正常に動作していたことを検証する。
  • エミュレータの応答とメッセージ整合性のため、クォーラムベースの検証を適用し、Byzantineノードによる偽装を防ぐために証明書を必須とする。
  • グローバルBFTコンセンサスを用いて、障害または分離されたBGを除外することで、スーパーマジョリティが正常に稼働している場合にライブネスを保証する。
  • 一時的障害の対応にフェイルーチェックとリトライメカニズムを統合し、信頼性の確保にはアトミックブロードキャストとバッチタイマーに依存する。

実験結果

リサーチクエスチョン

  • RQ1大規模な展開に耐えうる地理分散型コンセンサスプロトコルは、Byzantineフォールトとネットワークパーティション下でも、どのようにして安全でライブな状態を維持できるか?
  • RQ2外部コンセンサスを必要とせず、ノードのクラッシュや早期終了が発生しても、どのように安全に状態をコミットできるか?
  • RQ3地理的に隔離されたByzantine Group間でのパイプライン処理と並列コンセンサスを、BFT保証とどう組み合わせられるか?
  • RQ41サイクル遅延コミットメカニズムは、障害やByzantine行動発生時における安全をどのように確保するか?
  • RQ5クォーラムベースの検証と証明書メカニズムは、どのようにしてByzantineノードによるグローバルステートの改ざんを防ぐか?

主な発見

  • 1サイクル遅延コミットメカニズムにより、BGは前回サイクル終了時に正常に動作していたことが確認された場合にのみ、他のBGの状態をコミットする。
  • RCanopusは、Canopusのパイプライン処理とツリー型通信パターンを活用することで、複数のByzantine Group(BG)間で並列コンセンサスを実行し、高いスループットを実現する。
  • 各BGに最大f個のByzantineフォールトを耐容可能であり、障害またはネットワークパーティション発生時、グローバルBFTコンセンサスにより障害または分離されたBGを除外することで回復可能である。
  • すべてのエミュレータ応答に対してクォーラム証明書を要求することで、Byzantineノードによる取引順序やステートの虚偽報告を防止する。
  • 通常時は遅延コミットとリトライメカニズムによりライブネスを保証するが、BFT除外コンセンサスが必要となる稀な障害状況でのみ停止する。
  • RCanopusは、Canopusのスケーラビリティとパフォーマンスを、フォールトトレラントで地理分散型の展開に拡張し、安全で一貫性のある保証を損なわず実現した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。