ビザンチン耐性:ブロックチェーンはどのようにビザンチン障害に対処しているのか

  • Facebook
  • Twitter
  • LinkedIn
  • Telegram

要約

  • ビザンチン将軍問題とはシステムの構成要素が協調的戦略に合意できない場合に、システムが破損する可能性があるというシナリオを表したものです。この問題では、システムの一部が破損してシステムに対して反動を起こすことを想定しています。ビザンチン耐性(BFT) システムは、このような状況下でも適切な処理を行うことができなければなりません。
  • ビットコインはビザンチン耐性です。ビザンチン将軍問題に対する防御は、分散型ネットワークの機能性、安定性、セキュリティを維持する上で最も重要な側面の一つであり、ビットコインの設計には不可欠でした。ネットワークコンセンサスが二重支払を防ぐものである時、ビザンチン将軍問題は致命的です。

byzantine-fault-tolerance

意思決定に関しては、中央集権的なシステムは非常に効率的です。トップの命令は、実行されるまで段階的に浸透していきます。信頼できる第三者がすべての権限を持っていれば意見の対立もありませんが、大きな権限を持つほど攻撃者にとっては大きなインセンティブとなります。

中央集権的システムには、その中心部という単一の障害点があります。金融システムは急成長する経済の基盤であり、お金が絡むと犯罪も後を絶ちません。ブロックチェーン技術は分散型ネットワークとプログラム可能な貨幣を用いて、経済システムの安全性を今まで以上に高めていますが、その実現には多くの課題がありました(現在もあります)。

コンセンサスメカニズム

ブロックチェーンは本来分散型であり、ネットワーク上の全員が特定の決定に同意することは困難です。ブロックチェーンが何らかの情報を処理するためには、ネットワークが合意の状態、すなわち「コンセンサス」に達する必要があります。これは、ネットワークのデータの状態について参加者全員が同じ結論に合意することです。

コンセンサスは、ブロックチェーン構造の基礎となる概念の一つです。しかし、システムの仕組み上、個人は入手可能な情報と自分のインセンティブに基づいて行動する可能性が高くなります。よって、あるグループのユーザーを動機付ける決定が他のユーザーにも同じように影響を与えるとは限らないため、問題を引き起こします。

ブロックチェーンを円滑に機能させるためには、ネットワークが一貫してコンセンサスを得られるような仕組みが必要です。そのためには、1980年代に初めて提起された「ビザンチン将軍問題」を解決する必要があります。

ビザンチン将軍問題とは

この問題では、ビザンチン帝国の軍隊が都市を囲むようにグループに分かれていると仮定します。各グループは将軍に率いられており、通信手段は伝令のみです。軍隊は、攻撃か撤退かという共通の戦略に合意する必要があります。しかし、ビザンチン帝国の将軍の一人が決定に反対した場合、軍はまとまって行動することができません。

これはビザンチン障害と呼ばれています。コンピュータにおけるビザンチン将軍問題とは、システムの構成要素が協調的戦略に合意できない場合に、システムが破損する可能性があるというシナリオを表したものです。この問題では、システムの一部が破損してシステムに対して反動を起こすことを想定しています。ビザンチン耐性(BFT) システムは、このような状況下でも適切な処理を行うことができなければなりません。

ビットコインはビザンチン将軍問題に耐性があるのか?

ブロックチェーンネットワークでは、各ノードはネットワークのコンセンサスに貢献するビザンチン将軍と考えられています。ビザンチン障害を防ぐことは、分散型ネットワークの機能性、安定性、セキュリティを維持する上で最も重要なことの一つであり、世界初の仮想通貨であるビットコインの設計には不可欠でした。ネットワークのコンセンサスが二重支払を防ぐものである時、ビザンチン障害は致命的です。

ビットコインがビザンチン耐性でない場合、悪質なユーザーが偽の取引を行って存在しないお金を使い、システム全体の価値を下げてしまう可能性があります。これを防ぐために、マイナーは単一のブロックチェーンに同意しなければなりません。マイナーがプルーフ・オブ・ワーク問題の解決策を見つけたら、それをネットワークにブロードキャストして他のノードに検証してもらい、最初に解決したマイナーに報酬が支払われる仕組みです。

これにより、チェーンがどれだけの労力を費やしたかをネットワーク上で確認することができます。しかしこれには膨大なエネルギーと処理能力が必要であり、ネットワークの参加者数に応じて規模が変化します。ビットコインは分散型BFTシステムが初めて実現された持続可能なモデルの一つですが、完璧ではありません。BFTシステムでは、悪質なノードがネットワークを妨害するリスクは低いとはいえ、ゼロではありません。

障害耐性

このようなシステムでビザンチンコンセンサスを得るという問題は、1978年にSRIインターナショナルのコンピュータサイエンスラボで行われたNASA主催のSIFTプロジェクトで考案されました。SIFT(Software Implemented Fault Tolerance)は、複数のコンピュータを使って通信を行い、ペアメッセージングによってユーザーに欠陥があった場合でもコンセンサスを得ることを基本としていました。

これは「インタラクティブコンセンサス問題」と名付けられましたが、適切なノードを悪質なユーザーが妨害できないようにするためには何台のコンピュータが必要なのか、すぐには解明されませんでした。その後の研究で、BFTネットワークには3n+1台のノードが必要であることが示され、それに基づいてn>0の一般化されたアルゴリズムが作成されました。

ビットコインのPoWにBFTコンセンサスメカニズムが実装される前、世界中の専門家たちが様々な解決策を提言していました。 一定のネットワークの範囲内に複数のユーザーが残っていないと機能しないものもあれば、ネットワークの信号を確認するために偽造不可能のサインを用いたらどうかという案もありました。80年代から2000年代にかけて誕生した数多くのアルゴリズムの中でも、1999年に発表されたMiguel CastroとBarbara Liskovによる「Practical BFT アルゴリズム(PBFT)」は大きな影響力を持ち、BFTアルゴリズムの新たな波を作り出しました。

BFTメカニズムでは受信したメッセージを他の受信者に繰り返す機能を使用しますが、これらのメカニズムはメッセージを繰り返すという単純な行為がビザンチン障害の発生を阻止することを前提としています。この仮定が防衛機能の許容範囲のレベルまで達していなければ、より優れたセキュリティを実現できません。これを証明する際に問題となるのは、ビザンチン障害を起こすシグナルを広範囲に設定する必要があることで、このテストには多くの場合特殊なフォールトインジェクションが必要となります。

ブロックチェーン技術はビザンチン将軍問題を解決しなければ機能しません。グローバル台帳を管理するノードが正当な取引のリストに合意できなければシステムは意味をなさないため、二重支払は分散型決済システムの致命的な欠陥となります。コンセンサスは動的なプロセスであり、様々な方法がありますが、これらの方法(コンセンサスメカニズム)はすべて、基本原則に基づいています。

理想的なコンセンサスアルゴリズムは、すべての参加者の投票が同等の重みを持ち、可能な限り多くのコンセンサスをグループから得ることです。さらに、参加者全員が協力して多数派のための最適なソリューションを作成することで、参加者が増えるほどメカニズムの有用性が高まり、最適化されます。

コンセンサスの進化

ビットコインは世界初の実用的な仮想通貨かもしれませんが、サトシ・ナカモト以前にも分散型のデジタル通貨を作る試みは数多くありました。デビッド・チャウムの「DigiCash」やニック・サボの「Bit Gold」、ウェイ・ダイの「B-Money」などは、ビットコイン以前の暗号通貨で、BFTを実装できずに失敗した代表的な例です。ナカモトは、特別なクラスのコンセンサスメカニズム「ナカモト・コンセンサス」をプロトコルに組み込むことで、この問題を解決しました。

ナカモト・コンセンサスでは、ノードに欠陥があった際にネットワークの他の部分との合意を促すインセンティブが働きます。マイナーは自身の処理能力を費やしてビットコインのPoWアルゴリズムを解く競争を行い、その対価として報酬を受け取ります。

このような経済的インセンティブにより、ビットコインは分散型システムを構築する際の従来の課題を上手く解決し、そのプロトコルの安全性を最大限確保しています。ビットコインのマイニングソフトウェア会社であるBraiins社のレポートによると、ビットコインネットワークのハッシュレートの大半を管理するためのコストは55億ドルに上ると言います。

ビットコインは安全性に長けており、その誕生は金融サービスの世界に革命的な影響を与え、人類に分散型経済をもたらしました。しかし前述したように、ビットコインのPoWアルゴリズムは特にエネルギー消費が激しく、一部の国と同じ量の電力を消費しています。このため、PoSや、より複雑なDPoSなど、無駄を省いたBFTのコンセンサスメカニズムが数多く発明されています。

PoSDPoS

PoS(Proof-of-Stake)システムではマイナーが数学的な問題を解決するために競争するのではなく、ネットワークにどれだけの出資をしているかによって、ブロック作成者が選ばれます。例えば、ある個人が総供給量の1%を所有していた場合、その人は1%の確率で次のブロックの作成を任されることになります。ユーザーのステークがブロック作成能力にどのような影響を与えるかは異なりますが、PoSシステムはステークを失うことを恐れてネットワークに反する行為をすることを阻止しています。

これにより分散型ネットワークのエネルギー消費量が劇的に削減され、どの時点でも少数のノードが取引の検証を行うだけで済みます。これは、PoWチェーンと同等の安全性を備えていると言えますが、攻撃者が豊富な資金を使ってPoSネットワークを操作し、より中央集権的なネットワークにすることができるかどうかについては、いまだに大きな議論となっています。

DPoS(Delegated Proof-of-Stake)は、参加者が取引を検証する「代表者」を選ぶことができるため、これらの懸念を取り除くことができます。ユーザーはグループを形成して投票することができるため、BFTプロトコルの実装が可能です。また、グループ内のノード数の制限が明確に定義されているため、DPoSシステムははるかに高いスケーラビリティと効率性を確保しています。

また代表者はリーダーのローテーションを決め、ローテーションの中で各代表者にブロックを作る順番を与えることになっています。報酬はグループ内で分配されますが、代表者がブロックを生産できない場合は、次の順番を待たなければなりません。

各参加者の議決権は、その参加状況に応じて配分されます。これは、Proof of Participation(参加証明)と呼ばれる別のコンセンサスプロトコルとの関係を含んでおり、このモデルの特徴的な部分です。DPoSブロックチェーンでは分散化を促進するために、報酬や代表者の数、ネットワークフォークなどのトピックを含むガバナンス関連の決議についても投票を行います。これにはネットワークに従わない行動をした代表者へのペナルティも含まれます。

様々な領域における同意

ビザンチン障害とは観測者によって異なる症状を示すシステム障害とも言え、ノードの動作が特定の制限や方法に従って行動することは想定されていません。この問題はネットワークセキュリティにおいて最も深刻な問題の1つですが、この問題を解決することは、あらゆる業界の人々が直面する課題でした。航空機のエンジンから原子力発電所に至るまで、複数のセンサーに依存するシステムではビザンチン障害に対する耐性が必要不可欠です。

実際、ボーイング777の情報管理システムやフライトシステムのように、BFTを実装している航空機システムもあります。リアルタイムシステムにおいては、ビザンチン障害を数マイクロ秒で検出できるような、極めて迅速なソリューションが求められます。スペースXドラゴンのように、BFTを考慮して設計された宇宙船もあります。

BFTシステムが悪質なノードからの脆弱性を完全に排除できないのは、BFTが伝達の正確さしか観察していないためです。これは、システムの構成部位が一貫した値を他のパーツに伝達し、すべてのパーツが同じ値を受け取るという性質を意味します。

伝達が一貫性を欠く場合、他の構成部位は最終的な値に同意できなければなりません。これにより、敵対的な部位が意図的かつ一貫性のない値を他の部位に送信するという攻撃が可能になります。すべてのBFTシステムが防御できるわけではありません。

まとめ

ブロックチェーン技術が進化していけば、それに伴ってファイナリティを実現するためのメカニズムも向上していくでしょう。東ローマ帝国の軍隊からデジタルゴールドに至るまで、人間には年月をかけて問題を解決してきた実績があります。ブロックチェーンは誕生から10年余りしか経っておらず、「ビザンチン将軍問題」という言葉が生まれたのも数十年前ですが、分散型ネットワークとそのコンセンサスアルゴリズムが洗練されていくにつれ、ブロックチェーンは千年も前から考えられてきた「お金の信頼性」という問題を解決するでしょう。


問い合わせは support@phemex.zendesk.com までお寄せください。
当社の公式Twitterアカウントをフォローし、最新ニュースを入手してください。
Telegramコミュニティに参加し、当社および他の Phemex トレーダーと交流してください。
フェメクッス | Break Through, Break Free