ビザンチン将軍問題とは?その意味やブロックチェーンとの関係をわかりやすく解説

仮想通貨について調べていると「ビザンチン将軍問題」という言葉を聞くけど、どういう意味かさっぱりわからない。そんな方も多いのではないでしょうか?

一見何の関係もなさそうなただの歴史用語のようですが、具体的な仮想通貨との関係性を知っておきたいですよね。

そこで!今回ビザンチン将軍問題とはどのような問題のことなのかコインオタクがわかりやすく解説します!

また、そもそもの名前の由来ブロックチェーンとの関係についても詳しく説明します。

これを読んでビザンチン将軍問題を完全に理解しましょう!

ビザンチン将軍問題とは

ビザンチン将軍問題(Byzantine Generals Problem)

仮想通貨について調べていると、「ビザンチン将軍問題」という単語をしばしば見かけるかもしれません。

ビザンチン将軍問題とだけ聞くと仮想通貨とはなんの関係もなさそうですが、実はブロックチェーンとビザンチン将軍問題には深い関わりがあるのです。

誤解を恐れずに簡単に言うと、ビザンチン将軍問題とは「複数人で合意形成を図る際、その一部の不正や不具合が生じ得る時に、全体での正しい合意形成ができなくなる可能性がある」という問題です。

ビザンチン障害(Byzantine Failure)

ビザンチン障害(またはビザンチン故障)とは、​ビザンチン将軍問題が原因となって起きた不具合のことを言います。

分散型のネットワークにおいて合意形成を図るためには、このビザンチン障害が起きないようにする必要があります。

ビザンチン・フォールトトレラント性(Byzantine Fault Tolerance)

ビザンチン・フォールトトレラント性とカタカナにするとわかりにくいですが、これは「Byzantine Fault Tolerance」を訳したもので、「ビザンチン・フォールトトレラント性がある」とは「ビザンチン将軍問題が生じたとしても、全体としての合意を形成できる」ことを意味します。


では、もう少し具体的に見ていきましょう。


​ビザンツ帝国における合意形成問題​

かつてヨーロッパにビザンツ帝国(ビザンチン帝国)という帝国がありました。

ある時、ビザンツ帝国の将軍9人がある都市を包囲して攻め落とそうとしていましたが、どうやら9人の将軍がそれぞれ持つ部隊9つが全て協力して攻めないとこの都市は落とせそうにありません1部隊でも欠けると攻撃は失敗してしまい痛手を負うことになってしまいます。

ここで、全軍で攻め入るか、全軍で撤退して体勢を立て直すかの2択を迫られることとなります。

しかし、都市を包囲している状態で9人の将軍が全員集まれる余裕はもちろんないため、それぞれの将軍が攻撃か撤退かの判断を下して、それを伝令兵が他の8つの部隊全てに伝えていくことによって、多数決で全軍攻撃か全軍撤退かを決めることにしました。

例えば自分は「攻撃だ」と判断したとしても、他の5人以上の将軍から「撤退だ」という伝令がきたらそれにしたがって撤退することになります。このようにすることで、多数決で全軍攻撃か全軍撤退のどちらかができるようになるのです。一見簡単で賢い合意形成の方法にも思えますよね。

しかし、この決め方ではうまく合意を形成できない場合があります。

それは、​この9人の将軍の中に裏切り者がいた場合です。この裏切り者はこの攻撃を失敗させたいと考えています。例えその裏切り者が1人だけだったとしても合意が図れない場合があるのです。

では、1人の裏切り者がいたとします。その他の8人のうち、4人が「攻撃」残りの4人が「撤退」と決めて伝令を出していたとします。

裏切り者は8人から伝令を受け取ったら、「攻撃」と言っていた4人には「攻撃」「撤退」と言っていた4人には「撤退」という意思をそれぞれ伝えます。このとき、9人の将軍は離れていてそれぞれどんな伝令を受け取ったかは共有できないので自分の元に届いた伝令を信じるしかなく、「攻撃」と伝えた4人は過半数が「攻撃」としたと判断し、「撤退」と伝えた4人は過半数が「撤退」としたと判断することになります。

すると、上のように4人が攻撃、4人が撤退することとなり、4人だけで攻め込んだ部隊は攻め落とせずに攻撃は失敗となってしまいます。このように1人の裏切り者が相手によって異なる伝令をすることで合意形成がうまくいかなくなってしまうのです。

また、もちろん故意でなくても、伝令兵が内容を間違って伝えてしまったことによって合意が形成できないこともあります。


ビザンツ帝国(ビザンチン帝国)におけるこの問題から、「分散型のネットワークで合意形成を図る際に、不正な情報や信憑性の低い情報が紛れているとネットワーク全体としての合意形成ができなくなる可能性がある」という問題のことを「ビザンチン将軍問題」と言います。

ブロックチェーンとビザンチン将軍問題の関係​

ブロックチェーンの分散型ネットワークとビザンチン将軍問題

分散型ネットワークとは特定の中央管理者のいないネットワークのことです。このようなネットワークでは、データはネットワークの参加者が対等に、分散的に管理をすることになります。peer-to-peer(P2P)ネットワークとも言います。ビットコインを支えているブロックチェーンも、このP2Pネットワークを応用した技術です。

Satoshi Nakamotoによる論文のタイトルにも「peer to peer(P2P)」という表現は使われています。

さて、​先にも述べたように、分散型ネットワークにはビザンチン将軍問題が付きものです。ビットコインを支えるブロックチェーンは、このビザンチン将軍問題に対する現実的な解決方法として話題なりました。

「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」

Source: 日本ブロックチェーン協会

これは日本ブロックチェーン協会によるブロックチェーンの定義の一つです。ビザンチン障害を含んでいても合意が覆る可能性が次第に0に近づいていくプロトコルこそがブロックチェーンであるとされています。

このように、ブロックチェーンはビザンチン障害を克服できる(ビザンチン・フォールトトレラント性のある)技術だと言えるのです。

​ブロックチェーンは本当にビザンチン将軍問題を解決した?

ブロックチェーン技術はビザンチン将軍問題に対する現実解を提示したと言いましたが、実は「ブロックチェーンは厳密にはビザンチン将軍問題を解決していないのではないか」と考える人もいます。

そうした考えの根拠としては、ブロックチェーン協会による定義にもあるようにあくまでも「合意が覆る確率が0に近づくに過ぎないから」というものが考えられます。たしかに、ビットコインを例に考えるとその確率は極めて低い(かなり難しい)だけであって合意を覆すことは完全に不可能なわけではありません。

しかし、現実的に合意を覆すためのコストやインセンティブを考えると、ほぼ起こらないとは言えるだろうという感じです。

つまり、厳密に「合意」の意味を考えるとビザンチン将軍問題を解決しているとは言えないのかもしれませんが、実際にはビットコインが誕生してからもう9年ほどもそのような合意が覆されずに機能していることを考えると、実質的には解決できていると言ってもよいのではないでしょうか。


​ビットコインのコンセンサスアルゴリズム

コンセンサスアルゴリズム(=consensus algorithm​​)とは、一言で言うと合意形成の仕方のようなものです。

​ビットコインのような仮想通貨では、中央管理者のいないブロックチェーンにおいて、新たなブロックを追加する際のルールや取引の正当性などについて合意を取らなければなりません。この合意形成の仕方をコンセンサスアルゴリズムといいます。

​ブロックチェーンでは、このコンセンサスアルゴリズムによってビザンチン将軍問題が実質的に解決されています。

代表的な仮想通貨であるビットコインのコンセンサスアルゴリズムは、PoW(=Proof of Work)というものです。

PoWでは、マイニングという(ある値を求める)計算をして、初めに正解を出した人が取引の承認を行い、新たなブロックを追加する権利を得られます。この計算の正解者には報酬が与えられるため、多くの人がこの報酬を求めて計算勝負をします。

こうした仕組みによって、不正を働こうとした人は計算に参加している人全体の50%を超える計算力を得られると取引記録の改ざんができてしまいます。(これを51%攻撃と言います。)

目次51%攻撃とは51%攻撃をされたらどんな危険があるの…?51%攻撃の対策は?51%攻撃で意外とできないこと51%攻撃まとめ 51%攻撃とは 51%攻撃とは、悪意ある集団がブロックチェーンにおける取引の承認権を独占して、不正な取引の承認や正当な取引の否認を行ってネットワークを乱すことを指します。プルーフオブワークでは過半数の計算力、プルーフオブステークでは過半数の通貨を保有すると実行可能になります。 プルーフオブワークやプルーフオブステークについてよく知らないという方はこちらの記事を読んでください! プルーフオブワークの仕組みとは?プルーフオブステークとの違いも説明します!プルーフオブワークは仮想通貨の取引の承認システムの一つです。これはいったいどんな仕組みでどういう特徴を持っているのでしょうか?プルーフオブワークに伴うマイニングという作業や、プルーフオブステークとの違いについても説明します!続きを読む Proof of Stakeとは?仕組みやデメリット、イーサリアムの移行予定などProof of Stakeは仮想通貨取引の承認システムの1つです。ビットコインに次いで有名なあのイーサリアムもこのProof of Stakeへ移行することを発表しています。仕組みや長所・短所はもちろん、イーサリアムの移行時期も教えます!続きを読む 51%攻撃をされたらどんな危険があるの…? 取引の承認権が独占されてしまう! 51%攻撃を行うと毎回ブロックの承認ができるので、マイニング報酬を独占できてしまうのは事実ですがそこはあまり問題ではありません。 51%攻撃で問題なのは、取引の承認権が独占されてしまうため、正しい取引の否認や不正な取引の承認ができてしまうことです。 正しい取引が承認されない場合、例えば、ビットコイン決済可能なお店で客がビットコインでの支払いを行った時に、承認されるはずのその取引が51%攻撃のせいで取り消されてしまって、お店側が損害を被ることになります。 不正な取引の承認ができてしまうと二重支払いが可能になってしまいます。 二重支払いとは?

 しかし、この51%攻撃にはとてつもないコストが必要となり、またもしその改ざんができたとしてもその時点で信用を失った通貨の価値は一気に暴落すると考えられるため、不正取引をできたり報酬を独占できる状態になってもそのメリットがほとんどなくなってしまいます。

PoWの他にもコンセンサスアルゴリズムは様々です。より非中央集権的かつより速く取引の承認をできることが目指されていますが、実際はどのコンセンサスアルゴリズムにもデメリットが少なからず伴うため、どれが一番いいとは一概には言えません

目次プルーフオブワークとは​​プルーフオブワークとマイニングの仕組み​プルーフオブワークとプルーフオブステークの違い​承認システムは他にもある!​ プルーフオブワークまとめ プルーフオブワークとは​ ​ ​プルーフオブワーク(Proof of Work)とは、ビットコインなどの仮想通貨で採用されている、膨大な計算量を必要とする作業を成功させた人が取引の承認者となり、新たなブロックをブロックチェーンに繋ぐ権利を得られる仕組みのことです。その計算作業をマイニングと言い、マイニングの成功者には報酬が与えられます。 ​ 膨大な計算力が必要な作業って?マイニングって?と思った方、これからその説明をしていくので安心してください! ​プルーフオブワークとマイニングの仕組み​ ​ ​ハッシュ関数が重要! ​プルーフオブワークの説明に入る前に、まずはハッシュ関数というものを説明しなければなりません。このハッシュ関数というのは、値を代入して計算するのは簡単なのに、この値が出るにはどういう値を代入すればいいかが分からないという特殊な関数です。この特徴を活かしてプルーフオブワークという仕組みは成り立っています。 マイニングとはどんな作業? ​プルーフオブワークにおいて、取引を承認し新しいブロックをブロックチェーンに繋げる作業のことをマイニングといいます。このマイニングを最初に成功させた人は報酬がもらえるという仕組みになっています。では、どうやって新しいブロックを繋げる人を決めるのでしょうか。 マイニングという作業において実際にやっていることは、ハッシュ関数に代入するとその頭に決められた個数の0が並ぶ数字が出てくるような値(ナンス)を探すという作業です。つまり、マイニングの成功とはナンス探しの成功を指します。 さて、ここでさっきのハッシュ関数の性質を思い出してください。ハッシュ関数は代入して計算をするのは簡単だけど、その逆を求めるのは困難です。すなわち、「値を代入したときに頭に0が何個並ぶか」はすぐ分かるのに、「頭に0がこの個数並ぶ数が出てくるには何の値を代入すればいいか」は分からないわけです。

 

​ビザンチン将軍問題まとめ

以上ビザンチン将軍問題とはどのような問題なのか、またビットコインとビザンチン将軍問題にはどのような関係があるのかについて説明してきました。

ブロックチェーンはビザンチン将軍問題に対する現実的な解を提示した素晴らしい技術だと言えるのではないでしょうか!この先もさらなる技術の発展に期待しましょう。

ビザンチン将軍問題とは

  • ビザンツ帝国における合意形成問題に由来
  • つまりは分散型ネットワークにおける合意形成問題
  • ブロックチェーンによってほぼ解決!

 

目次ブロックチェーンの仕組みを超簡単に説明すると…?ブロックチェーンの仕組みをわかりやすく図解でブロックチェーンの詳しい仕組みと理論 ブロックチェーンの仕組みに関するQ&Aブロックチェーンの仕組みまとめ ブロックチェーンの仕組みを超簡単に説明すると…? まずは、誰でも分かる簡単な説明でブロックチェーンをざっくり理解しましょう! ブロックチェーンは公開された台帳 ブロックチェーンとは、最も簡潔に言うとみんなが見れる台帳です。「仮想通貨をAさんからBさんに送りました」という情報をいくつかまとめたものをブロックと呼んで、それをいくつも鎖のように繋いでいくのでブロックチェーンというわけです。 ブロックチェーンの情報は世界中にあるノードが保管しており、もしブロックチェーンの情報を保管しているノードに不具合が発生してしまったとしても、他のノードに記録がされているのでブロックチェーンの情報が完全に失われることはありません。 そして、ブロックチェーンに記録された情報は誰でも見ることができます。 また、このノードは全て対等であり、中央管理者のような存在がいないので、ブロックチェーンは分散型台帳とも言います。 改ざんが不可能になっている ブロックチェーンにある取引の記録は改ざんが不可能になっています!なぜ改ざんが不可能なのかの説明はあとで述べますが、簡単に言うと改ざんにはとてつもない計算力を持ったパソコンを持つ必要があり、それはほぼ不可能だからです。 この取引の改ざん不可能性によって仮想通貨は成り立っています。仮想通貨を保有している、というのは仮想通貨という物が自分の手元にあるわけではありません。 ブロックチェーンという取引記録に今までこういう記載がされていてこれは必ず改ざんされていないから、自分はいくら仮想通貨を持っている、という風に取引の履歴によって誰がいくら持っているかが分かる仕組みになっています。 改ざんされていない保証がある電子的な台帳があれば新しい通貨の形ができる、というところに着目して、改ざんされない電子的な台帳の形を初めて実現したのがブロックチェーンということですね。 ブロックチェーンの仕組みをわかりやすく図解で ここからは図を使いつつ、ブロックチェーンの仕組みをもう少し詳しく説明したいと思います。

 ​


CoinOtaku(コインオタク)は「海外の情報が届かない」、「どの情報が重要なのかわからない」、「ウソかホントかわからない」などの日本人仮想通貨投資家の悩みを解決するために、1400以上の仮想通貨のニュースやイベントが一覧できるカレンダー"CoinKoyomi"をリリースしました!ぜひ使って見てください!