信頼できるコンピュータシステムは、そのコンポーネントの1つまたは複数に障害が発生した場合でも機能できる必要があります。障害のあるコンポーネントは、見過ごされがちな動作を示す場合があります。つまり、システムのさまざまなセクションに矛盾するデータを配信します。それで、ビザンチン将軍問題は何ですか?ビザンチン将軍問題は、この種の失敗に対処する問題の抽象表現です。
ビザンチン将軍問題は、信頼できる中央党の助けなしに分散した党が合意に達することがどれほど難しいかを説明するゲーム理論の問題です。誰も他のメンバーの身元を確認できない場合、ネットワークのメンバーはどのようにして特定の現実に同意できますか?
ゲーム理論は、競合する俳優との社会的イベントについて考えるためのフレームワークです。戦略的環境では、ゲーム理論は競合する参加者間の社会的状況を想定し、自律的で競合するエージェントの最適な意思決定を生み出します。
ビザンチン将軍は、ゲーム理論のアナロジーに基づいています。問題は、複数の将軍がビザンチウムを包囲していることです。彼らは街を取り囲んでいますが、グループとしていつ攻撃するかを決定しなければなりません。すべての将軍が同時に攻撃した場合、彼らは勝ちます。ただし、攻撃すると負けます。
送信または受信する手紙は、ビザンチウムの擁護者によって傍受または欺瞞的に送信された可能性があるため、将軍は互いに安全な通信チャネルを持っていません。将軍はどのようにして同時攻撃を調整できますか?
この記事は、ブロックチェーンのビザンチン障害とは何か、ビザンチン将軍問題を解決する方法を説明することを目的としています。
レスリー・ランポート、ロバート・ショスタク、マーシャル・ピーズによる研究記事「ビザンチン将軍問題」は1982年に出版されました。この問題の重要性は、最初のページから明らかです。航空宇宙局(NASA)、弾道ミサイル防衛システム司令部、陸軍研究室はすべて彼らの研究に資金を提供しました。
ビザンチン将軍問題は1982年以前にコンピュータサイエンスで研究されていましたが、これはそれを並行して提案された解決策に変換する最初の試みの1つでした。次の例えは、ビザンチン将軍問題を示しています。ビザンチン軍のいくつかの師団が敵の都市のすぐ外に配置され、戦争に備えています。さまざまな将軍が接続する唯一の方法は、メッセンジャーを介することです。彼らは行動方針に同意しなければなりません。
ただし、忠実な将軍が単一の行動方針を決定するのを防ぐことを目的とした特定の将軍は裏切り者であると想定する必要があります。裏切り者の小さなグループが通信を中断できないようにするには、アルゴリズムが必要です。
ビザンチン将軍の問題に対処するために、忠実な将軍は計画に同意し(コンセンサスとして知られている)そしてそれを実行する(調整として知られている)安全な手段を必要とします。ビザンチン将軍問題を解決することは難しい作業ですが、今では根本的な問題をよりよく理解しています。例が示すように、この概念は軍事通信に適用できることに注意することが重要です。
ただし、この問題は、軍事用途で使用されるものだけでなく、すべてのタイプのコンピュータシステムに影響します。分散したノードのグループ(コンピューターやその他の物理デバイスなど)が信頼できる通信を実現する必要がある場合は、ビザンチン将軍問題を解決する必要があります。
これは、実際のコンピュータシステムに適用した場合、ソフトウェアの欠陥、ハードウェアの誤動作、または悪意のある攻撃である可能性があります。言い換えれば、ビザンチンの失敗は、必ずしも悪い俳優によるよく調整された努力の結果である必要はありません。ノードが分散ネットワーク上でコンセンサスに達するのを妨げる問題が発生する可能性があります。
さまざまな観察者にさまざまな症状を示すシステム障害は、ビザンチン障害と呼ばれます。ノードが示すことができる動作のタイプに関する制約や仮定は含まれていません(たとえば、ノードは正直なアクターを装って任意のデータを生成できます)。
すべての分散コンピューターシステムでは、ビザンチンの失敗は事実上避けられません。
停電が発生し、すべてのノードが同時にオフラインになると想像してみましょう。ここで、ネットワークがまだ機能していて、信頼できる通信を維持できるかどうかという疑問が生じます。それとも、システム全体が機能しなくなったり、突然攻撃を受けやすくなったりしますか?
適度に安全なネットワークでは、いくつかのオフラインノードのようなマイナーなものはネットワークに認識できる影響を与えません。ビザンチンフォールトトレランスは、これらの条件から防御する能力です。より多くのビザンチン障害に耐えることができるネットワークは、許容度が高いと言われています。これは、耐えられないネットワークよりも安全であることを意味します。
さまざまなシステムにおけるビザンチン障害の実際の発生率と分類法は、広大で困難な問題です。ただし、ビザンチンフォールトトレランスの正式な定義が明らかになるように指定することはできます。
ビザンチンの欠陥が最も深刻で、修正が難しいことは注目に値します。ビザンチンフォールトトレランスは、原子力発電所、航空エンジンシステム、およびその動作が多数のセンサーの結果に依存するほとんどすべてのシステムで必要です。
ビザンチン将軍問題の影響を受けやすいのは分散型システムだけです。信頼できる情報源がなく、他のネットワークユーザーから取得した情報を確認する方法がないためです。一元化されたシステムでは、当局は、ネットワーク全体に誤った情報や不正な情報が拡散するのを防ぎながら、正確な情報を広めることが信頼されています。
たとえば、従来の金融システムでは、銀行はクライアントに正確な残高と取引履歴を提供することを信頼されています。銀行が消費者を欺いたり誤解させたりしようとした場合、中央銀行または政府は信仰を回復する権限を与えられています。
一貫して真実の確立を必要とするビザンチン将軍のジレンマは、中央集権化されたシステムでは解決されません。代わりに、彼らは問題にまったく直面しないことを選択し、信頼性よりも効率を選択します。一方、集中型システムは、中央当局が腐敗する傾向があります。
一方、金の重さと純度は、これまで信頼できないままでした。ビザンチン将軍問題に完全に対処するための金の失敗は、信頼できる中央機関、主に政府によって引き継がれるお金の設立と発行につながりました。政府は、通貨の重量と純度への信頼を植え付けるためにミントを独占しました。したがって、ビザンチンの失敗は集中型システムでは解決されませんでした。
さらに、信頼できる金銭の中央当局である政府は、それを押収、軽蔑、または修正することにより、その信頼を裏切っています。ビザンチン将軍問題を解決するには、通貨は検証可能で、偽造に耐性があり、信頼できないものでなければなりません。この成果は、ビットコイン(BTC)が登場するまで達成されませんでした。
この問題は、フォールトトレラントメカニズムを採用したプロトコルを実装することで解決できます。不確実性に直面したとき、将軍の間で手順を採用することが選択をするための最良の方法です。
結果として、何も保証できないため、決定論的ではなく確率論的になります。これは、ピア間の直接通信が少なく、それぞれが自己完結型である場合に正確に当てはまります。それぞれの将軍は異なる場所にいるので、彼らの間には物理的な分離があります。
ビザンチンの一般的な問題は、ブロックチェーンの助けを借りて解決できます。それはすべて、予測不可能な世界で人々に安全かつ確実にコミュニケーションする方法を提供することです。実際の世界では、ほとんどのトランザクションは、お互いを知らない、または信頼していない見知らぬ人の間で発生します。
各個人は将軍のようであり、自分の立場を攻撃または防御する命令を待っています。あなたに代わって攻撃を調停する仲介者はいません。あなたは完全にあなた自身であなたの決定を下します。
ブロックチェーンは、すべての個人を信頼する必要なしに信頼できるレイヤーを作成します。これは、記録される前に真実に同意するために集まったノードのネットワークによって達成されます。将軍がコミュニケーションの内容について確信が持てない場合、他の将軍は彼らが真実であると知っていることを使用してそれを確認することができます。
1つのノードがそれを記録すると、コピーがネットワーク内の他のすべてのノードに送信され、情報が冗長になります。 PoWコンセンサスアルゴリズムは、この目標を達成するように設計されています。情報が常に正確であるとは限らないため、悪意のある攻撃者は依然としてシステムをゲームしようとします。
システムは一般の人々が利用できるように設計されているため、フォールトトレラントなメカニズムとセキュリティがブロックチェーンに組み込まれています。このシナリオでは、メッセージが変更されないようにするために暗号化が必要でした。
システムは、通信にデジタル署名するためのキーペアを提供し、通信を送信したとされる人物からのものであることを証明するものとしてIDを確認します。メッセージが認証されると、透明性と説明責任の歴史的証明のために記録されます。
お金に関しては、ビットコインはビザンチン将軍問題の最初に実現された解決策でした。ビットコインが政府から独立したお金を作ろうとする前の多くの計画やプロジェクトが、何らかの形で失敗しました。
ビットコインには、所有権を処理し、通貨システムとしての二重支払いを回避する手段が必要です。ビットコインは、信頼できない方法でこれを達成するために、すべてのトランザクションの履歴を保存するブロックチェーン、またはパブリック分散型台帳を採用しています。ビザンチン将軍のアナロジーでは、ブロックチェーンはすべての当事者が同意しなければならない真実です。
ビットコインネットワーク内のすべてのノードが、どのトランザクションがいつ、どのような順序で発生したかについて合意できれば、ビットコインの所有権を確認し、一元化された権限を必要とせずに、機能する信頼できない通貨システムを作成できます。
中本聡は2008年10月に最初のビットコインホワイトペーパーをリリースしました。このドキュメントでは「ビザンチン将軍問題」という名前は使用されていませんが、中本は2009年1月に導入されたソリューションを効果的に提供しました。ビットコインネットワークの。
聡は、デジタル電子ネットワークにおけるビザンチンの一般的な問題に答えるために、暗号化セキュリティと公開鍵暗号化を使用する手段を考案しました。データの改ざんを防ぐために、暗号化セキュリティは、エンコードのプロセスであるハッシュを使用します。ネットワークユーザーのIDは、公開鍵暗号化によって検証されます。
トランザクションは、暗号化セキュリティのハッシュ値によって他のブロックに接続されているブロックで保護されます。すべてのハッシュは、最初のブロックであるすべてのハッシュのルートまで追跡できます。ブロックチェーンは、マークルツリーを使用してジェネシスブロックからのハッシュを検証するシステムです。
最初のブロックに由来するネットワーク内のすべてのブロック(ジェネシスブロックとも呼ばれます)が有効です。マイナーはブロックを検証します。ブロックは他のマイナーと競合して暗号パズルを解き、PoWコンセンサスメソッドの一部としてブロックを生成します。
プルーフオブワークコンセンサスメカニズムを採用することで、ビットコインはビザンチン将軍問題を克服し、ブロックチェーンの明確で客観的なルールブックを確立しました。ブロックと呼ばれる情報をブロックチェーンに追加するには、ネットワークメンバーは、ブロックの作成に多大な労力を費やしたという証拠を公開する必要があります。この作品は作成者に高額の費用がかかり、正確な情報を共有するように促します。
ルールは客観的であるため、ビットコインネットワーク上の情報に異議を唱えたり改ざんしたりすることはできません。新しいビットコインを作成できる人を選択するためのシステムと、どのトランザクションが有効か無効かを規制する法律の両方が目的です。さらに、ブロックが追加された後、ブロックチェーンからブロックを削除することは不可能であり、ビットコインの履歴は変更できません。
したがって、ビザンチン将軍問題は、サトシのバージョンのブロックチェーンの将軍に似ている鉱夫によって解決されます。各ノードは、将軍に配信されるメッセージと同様のトランザクションの検証を担当します。メッセージを盗んだり、ネットワークに危害を加えたりすることを目的とした悪意のある攻撃者(ハッカーなど)は、敵と見なすことができます。
メッセージは暗号化セキュリティを使用しているため、ハッカー(つまり、中間者)はブロックチェーンを簡単に攻撃できません。操作を防ぐために、メッセージまたはトランザクションはブロックにバンドルされ、保護を強化するためにハッシュされます。サトシは、ブロックを検証するために鉱山労働者を競争に参加させることによって、物事をより確率的にします。これにより、検証を独占することによってすべての報酬を受け取ることができる単一のマイナーがいないため、より分散化されます。
代わりに、マイナーはハッシュレートと呼ばれる計算能力を使用して謎を解くために競争する必要があります。マイナーのハッシュレートが高いほど、パズルを解く可能性が高くなります。パズルを解いたマイナーがソリューションをネットワークにブロードキャストする場合、他のすべてのマイナーは、値が誤っている場合は値を検証または拒否する必要があります。難易度の目標は、正しい値以下でなければならない値です。
したがって、ビットコインネットワークのメンバーは、ブロックチェーンのステータスとブロックチェーン内のすべてのトランザクションについていつでも合意できます。各ノードは、ブロックがプルーフオブワーク基準に従って有効であるかどうか、およびトランザクションが追加の基準に従って有効であるかどうかを検証します。
ネットワークメンバーが誤解を招く情報をブロードキャストしようとすると、ネットワーク上のすべてのノードがそれを客観的に無効であると検出し、無視します。各ノードはネットワーク上のすべての情報を検証できるため、ビットコインネットワークの他のメンバーを信頼する必要はなく、ビットコインは信頼できないシステムになります。
ブロックチェーンも分散化されているため、システムに単一障害点があってはなりません。ブロックは分散データベースに保存され、ネットワーク全体に複製されます。この冗長性はフォールトトレランスにも役立ち、1台の誤動作しているコンピューターがシステム全体をダウンさせないようにします。これは、敵に待ち伏せされた場合に備えて、多くのメッセンジャーがいるのと同じです。メッセージは他のメッセンジャーによってコピーされるため、失われることはありません。
PoSは、ビザンチン将軍問題に対処しようとするもう1つのブロックチェーンコンセンサスメカニズムです。これは2012年に最初に導入されました。PoSベースのネットワークは、PoWベースのネットワークとは異なり、暗号通貨マイニングに依存していません。代わりに、ステーキングと呼ばれる手法が実行されます。
ユーザー(バリデーターと呼ばれる)がこのシステムに資金を賭けます。ブロックチェーンでより多くのコインを所有しているバリデーターは、より多くのブロックを検証し、より多くの報酬を獲得できます。誤った取引を検証しようとするユーザーは、賭けた現金を失うリスクがあります。
ユーザーは、PoWベースのネットワークでマイニングするための専用のマシンを必要とせずに、通常の家庭用コンピューターを使用してコインを賭けることができます。いくつかのPoSベースのネットワークは、ビザンチンの失敗によって引き起こされる二重支払い攻撃やその他の潜在的なセキュリティの脆弱性を防ぐ方法を作成しました。たとえば、Ethereum 2.0(Serenity)はCasper PoSアルゴリズムを使用します。このアルゴリズムでは、ノードの3分の2の過半数が、ブロックを作成する前に合意する必要があります。
委任されたプルーフオブステークは、プルーフオブステークと同様に機能するブロックチェーンコンセンサス手法であり、2014年に最初に開発されました。どちらも、ユーザーが資金を投入する必要があります。 DPoSベースのネットワークでトランザクションを検証してブロックを生成できるのは少数のユーザー(デリゲートと呼ばれる)だけです。
一般的に、どのユーザーもブロックチェーンのコインを賭けて、代表候補を支持する票を投じることができます。ブロック報酬は通常、選出されたノードが投票者に代議員選挙で賭けた金額に比例して分配されます。
ノードは、PoWまたはPoSを使用する場合よりも、DPoSを使用する場合の方がかなり速くコンセンサスに達することができます。大規模な場合、これはトランザクションを大幅に迅速に処理できることを意味します。 DPoSで高レベルのビザンチンフォールトトレランスを維持することは、トレードオフのために問題になる場合があります。
ネットワークを安全に保つ責任があるノードが少ないため、ノードが過半数の利益に反して共謀する可能性が高くなります。一方、DPoSベースのネットワークでは、代理人の選挙を定期的に実施して、代理人が決定に対して責任を負うようにすることで、このシナリオを回避しようとします。