おはようございます、皆さま。 Crypto学習シリーズ — 49日目 ビザンチン障害耐性(BFT)とは何か?また、一部のノードが不正行為をした場合、ブロックチェーンはどのように合意に達するのか? 100台のコンピューターからなるブロックチェーンネットワークを想像してください。 その多くは正直ですが、一部は偽の情報を送信したり、トランザクションを操作しようとしています。 ネットワークは、どの情報を信頼すべきかをどうやって決定するのでしょうか? これが、ビザンチン障害耐性(BFT)が解決しようとする問題です。 ビザンチン障害耐性(BFT)とは何か? BFTとは、一部の参加者が故障したり、不正に振る舞ったり、矛盾する情報を送信しても、分散システムが合意を継続して達成できる能力です。 この概念は、分散コンピューティングにおける有名な課題である「ビザンチン将軍問題」に由来しています。 BFTはどのように機能するのか? 異なるBFTプロトコルは異なる方法を用いますが、多くのプロトコルは以下の手順に従います: 1. バリデータが新しいブロックを提案する。 2. 他のバリデータが、そのブロックがネットワークのルールに従っているかを確認する。 3. バリデータ同士で投票や確認メッセージを交換する。 4. 十分な数のバリデータが合意した場合、ブロックは確定できる。 5. プロトコルのセキュリティ前提が満たされている限り、不正または故障したバリデータは合意を簡単に妨害できない。 簡単な例 10人のバリデータからなるネットワークを想像してください。 最大3人のバリデータの故障を許容する古典的なBFT設計では、システムが明示されたネットワーク前提のもとで合意と進行を保証するには、少なくとも7人のバリデータが正しく参加する必要があります。 たとえ3人のバリデータが不正に振る舞っても、残りの正直なバリデータは依然として合意に達できます。 これはBFTの一般的な原則を示しています:多くのプロトコルは、バリデータの3分の1未満がビザンチン的であることを許容できます。 なぜBFTは重要なのか? BFTはブロックチェーンネットワークに以下の利点をもたらします: - 故障した参加者にもかかわらず合意を達成する。 - 矛盾するトランザクション履歴からの保護。 - 多くの設計における強力なトランザクション確定性。 - バリデータ間の信頼できる調整。 - 特定の不正行為への耐性。 BFTには制限はあるのか? はい。 一部のBFTプロトコルでは、バリデータ間で多数のメッセージをやり取りする必要があります。 これにより、バリデータネットワークが拡大するにつれて通信が複雑化することがあります。 セキュリティは、バリデータの参加、ネットワーク接続、および不正バリデータの最大数に関する前提に依存します。 実世界の例 TendermintスタイルのコンセンサスやHotStuffは、ブロックチェーンシステムで使用されるBFTベースのコンセンサスアプローチの例です。 重要な教訓 ブロックチェーンのコンセンサスとは、単にトランザクションを処理することではありません。 それは、一部の参加者が信頼できない場合でも、独立したコンピューターが一つの有効な履歴に合意することを保証することです。 BFTはその合意を達成するための基盤を提供します。 明日 — 50日目:ブロックチェーンの確定性とは何か?また、トランザクションはいつ真正に確定するのか? トランザクションが数秒以内に不可逆になるなら、あなたはそのブロックチェーンをより信頼しますか?



