要点

  • ビザンチン耐故障性(BFT)とは、ブロックチェーンを含む分散システムが、いくつかのノードが失敗したり不正直に振る舞ったりしても動き続けられるようにする性質です。

  • この概念は、ビザンチン将軍問題に由来しています。これは、独立した行為者が、信頼できない可能性がある相手がいても合意に到達できるかという、思考実験です。

  • ほとんどのブロックチェーンは、プルーフ・オブ・ワークまたはプルーフ・オブ・ステークのようなコンセンサスアルゴリズムを用いてBFTを実現し、ネットワークのセキュリティを維持しています。

  • 一般に、BFTを成立させるには、ネットワーク参加者の少なくとも3分の2が正直である必要があります。

Binance Academy courses banner

はじめに

ビットコインが2008年に、ピアツーピアの電子的なキャッシュシステムとして登場して以来、ブロックチェーンは重要な性質に依存してきました。それは、特定の誰かを信頼することなく、多数の独立した参加者の間で合意に到達できるという能力です。これは想像以上に難しく、とりわけ、一部の参加者が予測できない挙動をしたり、不正直に振る舞ったりする可能性がある場合にはなおさらです。

この課題に対処する概念は「ビザンチン耐故障性(BFT)」と呼ばれます。これを理解することで、悪意ある主体やハードウェア障害の存在下でも、なぜブロックチェーン・ネットワークが安全に機能し得るのかを説明できます。

ビザンチン将軍問題とは?

ビザンチン将軍問題は、1982年に最初に記述されました。これは、分散システムにおいて一部の参加者を信頼できない場合に、合意に到達することがどれほど難しいかを示すため、軍事の思考実験を用いています。

将軍たちがいて、それぞれが別々の部隊を指揮していると想像してください。彼らは都市を取り囲みます。彼らは「一斉に攻撃する」か「一斉に撤退する」かという計画について合意しなければなりません。独立に行動すれば、彼らは失敗してしまいます。問題は、彼らが連絡係(使者)を介してしか通信できないこと、そして一部の将軍が裏切り者で、互いに矛盾する/誤ったメッセージを送る可能性があることです。

中核となる課題は、だましている相手を特定できないとき、忠実な将軍たちはどうやって計画に合意できるのか、という点です。ブロックチェーンの文脈では、それぞれの将軍はネットワークノードを表し、「攻撃する/撤退する」という判断は、「どの取引が正当かについての合意」に置き換えられます。

元の研究からの結論は、BFTシステムには参加者の少なくとも3分の2が正直であることが必要だということです。もし3分の1以上が不具合を抱えていたり悪意があったりすれば、信頼できるコンセンサスに到達することは不可能になります。

ビザンチン耐故障性(BFT)

ビザンチン耐故障性とは、システムの一部が失敗したり悪意ある振る舞いをしたりしても、システムが正しく動作し続けられる性質のことです。BFTシステムは、ネットワーク全体の完全性を損なわずに一定数の障害ノードに耐えられます。

実際には、これによりBFTブロックチェーンは、ノードがクラッシュする、接続を失う、重複メッセージを送る、あるいは意図的にネットワークを操作しようとする、といったシナリオを扱えます。障害ノードの割合が許容される閾値を下回っている限り、システムは正しい結果に到達します。

BFTシステムを構築する方法はいくつかあります。ブロックチェーンが採るアプローチは、速度、分散性、セキュリティといった設計上の優先事項に依存します。その結果、さまざまなコンセンサスアルゴリズムの開発につながります。

ブロックチェーン・コンセンサス・アルゴリズム

コンセンサスアルゴリズムとは、ブロックチェーンが台帳(レジャー)の状態について合意するために用いる仕組みです。最も一般的なアプローチは、プルーフ・オブ・ワーク(PoW)とプルーフ・オブ・ステーク(PoS)です。

ビットコインはPoWを使用しています。これはサトシ・ナカモトによって、ナカモト・コンセンサスとして知られる形に改良されました。このモデルでは、ノードは新しいブロックを追加するために計算コストの高いパズルを解くことを競います。この作業にかかるコストが大きいため、悪意ある攻撃者がネットワーク全体の計算能力の半分超を支配せずにチェーンを書き換えることは、経済的に現実的ではありません。この種の攻撃は「51%攻撃」と呼ばれます。

PoWはビザンチン障害に対して100%の免疫があるわけではありませんが、マイニングのコストや、チェーンの暗号学的なセキュリティによって、実務上は非常に信頼性が高いものになっています。

PoSは、同様の目標を別の方法で達成します。計算作業の代わりに、バリデータは暗号資産を担保としてステーク(預け入れ)します。不正行為はその担保を失う結果につながり、正直に参加することへの強い経済的インセンティブになります。

イーサリアムは2022年にPoSへ移行し、そのファイナリティ(確定性)メカニズムは、Tendermintのようなプロトコルで使われるBFTの考え方に基づいています。これらのプロトコルでは、十分なバリデータが署名を行うと、ネットワークはブロックを最終確定として確認できます。PoWチェーンにおける確率的なファイナリティと比べて、速度と安全性の両面で改善が期待できます。

よくある質問

ビザンチン耐故障性(BFT)とはどういう意味ですか?

ビザンチン耐故障性とは、システムの一部の構成要素が予測できない挙動をしたり不正直に振る舞ったりしても、システムが正しく動作し続けられることを意味します。ブロックチェーンの文脈では、一部のノードが誤った情報や矛盾する情報を送ったとしても、ネットワークが正当な取引について合意(コンセンサス)に到達できる、ということです。

なぜ「ビザンチン耐故障性」と呼ばれるのですか?

この名称は、「ビザンチン将軍問題(Byzantine Generals' Problem)」に由来します。これは1982年に提案された思考実験で、信頼できない参加者がいる状況で合意に到達するという難しさを説明するために、軍の将軍たちの物語が用いられています。計算機分野でいう「ビザンチン(Byzantine)」とは、単なるクラッシュとは異なり、恣意的または悪意のある失敗を指します。

BFTが機能するには、ネットワークのうちどれくらいが正直である必要がありますか?

一般に、BFTシステムでは参加者の少なくとも3分の2が正直であることが必要です。もしネットワークの3分の1以上が悪意ある行為をする、または障害によって機能しない場合、ほとんどのBFTプロトコルは正しい結果を保証できなくなります。この閾値は、使用する具体的なコンセンサスプロトコルによってわずかに変わります。

プルーフ・オブ・ワーク(PoW)はビザンチン耐故障性ですか?

プルーフ・オブ・ワークは、完全にビザンチン耐故障性というわけではありませんが、マイニングに高いコストがかかることで実用的な耐性を実現しています。攻撃者はネットワーク全体の計算能力の50%超を支配して、チェーンを一貫して操作する必要があります。そのため、その種の攻撃はコストが高く、継続しにくいものになります。

最後に:ひとこと

ビザンチン耐故障性は、ブロックチェーン設計の基礎となる考え方です。これは、参加者が匿名であり、誰かが不正を働こうとする環境でも、ビットコインやイーサリアムのようなネットワークがなぜ確実に機能し得るのかを説明します。プルーフ・オブ・ワーク、プルーフ・オブ・ステーク、あるいは現代のチェーンで使われる新しいBFTプロトコルのいずれであっても、目的は同じです。つまり、個々に相手を信頼する必要なしに、独立したノード同士が「真実」について合意できるようにすることです。

参考情報

  • ブロックチェーンのコンセンサス(合意)アルゴリズムとは?

  • プルーフ・オブ・ワーク(PoW)とは?

  • プルーフ・オブ・ステーク(PoS)とは?

  • 51%攻撃とは?


免責事項:このコンテンツは、一般的な情報および教育目的のためにのみ「現状のまま」提供されています。いかなる種類の表明や保証もありません。金融、法律、またはその他の専門的助言として解釈されるべきではなく、特定の商品やサービスの購入を推奨する意図もありません。適切な専門家アドバイザーに助言を求めてください。コンテンツが第三者によって提供されている場合、その見解は当該第三者のものであり、Binance Academyの見解を必ずしも反映するものではありません。デジタル・アセットの価格は変動する可能性があります。投資した金額は増減し得るほか、投資額を回収できない場合もあります。投資判断に関する責任はすべてご自身にあり、Binance Academyはいかなる損失についても責任を負いません。詳細については、利用規約、リスクに関する警告、およびBinance Academyの規約をご確認ください。