51%攻撃とは?その名前の由来は?51%攻撃の意味を分かりやすく解説


51%攻撃の意味やその名前の由来など、難しいブロックチェーン用語を分かりやすく解説します。

目次

① 51%攻撃とは(簡単に解説)

② 51%攻撃とは(詳しく解説)

③ 51%攻撃の名前の由来

④ ビットコインで51%攻撃が成功しない理由


51%攻撃とは(簡単に解説)

ブロックチェーンは、そのしくみ上、「一度有効になったデータを後から無効にする」ことができる場合があります。このブロックチェーンのしくみを悪用する手口を51%攻撃といいます。


「一度有効になったデータを後から無効にする」をもっと分かりやすくいうと、51%攻撃をしかけることで「自分が他人に支払ったはずのビットコインを後から取り戻すことができる」ということです。


具体的には、51%攻撃は下記の手順を踏みます。


① ビットコインを入手する。

② ビットコインで他人から商品やサービスを購入する。

③ ビットコインで代金を支払って商品やサービスを受け取る。

④ 51%攻撃で上記③の支払いを無効にすれば、商品やサービスをタダで持ち逃げすることができる。


ただし、通常、51%攻撃を成功させるには相当の費用がかかるので、ビットコインなどのブロックチェーンで51%攻撃が成功することはありません。


「51%攻撃で他人のビットコインを盗める」といわれることがありますが、それはよくある誤解です。51%攻撃は、自分が他人に支払ったビットコインを取り戻せるだけであり、それ以外のビットコインを盗むことはできません。


51%攻撃についての簡単な説明は以上となりますが、ご満足いただけたでしょうか。以下では、51%攻撃について、もっと詳しく説明していますので、ご興味のある方は引き続き読み進めてください。


51%攻撃とは(詳しく解説)

51%攻撃を理解するにはブロックチェーンのしくみを理解する必要があるので、以下でブロックチェーンのしくみについて簡単に説明します。


ブロックチェーンは、新しいデータをブロックというデータの固まりにまとめて、それを数珠つなぎにしていくことで、新しいデータを追加していきます。


例えば、AさんがBさんにビットコインを支払う場合、「AさんがBさんに1BTCを支払う」というデータがブロックに入れられ、そのブロックがブロックチェーンの先端につなげられることで、AさんからBさんへの支払いが有効になります。


そして、ブロックチェーンに新しいブロックをつなぐには一定のルールに従う必要があり、その手順は以下のとおりです。


① ブロックチェーンに新しいブロックがつなげられると、その瞬間に数学的な問題が自動的に生成される。

② そこからさらに新しいブロックをつなげるには、上記①の問題を解いて、その解答を新しくつなぐブロックに記載しなければならない。

③ 上記①②を繰り返すことでブロックチェーンが伸びていく。


つまり、ブロックチェーンにおける個々のブロックは「問題とその解答」の関係で数珠つなぎになっています。


なお、新しいブロックをつないだ人はビットコインで報酬がもらえるので、その報酬を目当てに「ブロックチェーンに新しいブロックをつなぐ競争」に参加する人が世界中にいます。この競争に参加することを「マイニング」といい、その参加者を「マイナー」といいます。現在、ビットコインのマイニングは競争が激化しているので、マイニングにより報酬を得るためには、高性能なマシンを購入する必要があり、それを稼働させるために多額の電気代も必要になります。


さて、ブロックチェーンにおける個々のブロックは「問題とその解答」の関係でつながっているという話をしましたが、「問題とその解答」の関係さえ成り立っていれば、1つのブロックに複数のブロックをつなぐことができます。つまり、ブロックチェーンは、必ずしも一列に伸びるわけではなく、分岐する場合があります。


(注)ブロックチェーンが生成する「問題」の解答は1つではなく複数あります。解答は複数あるが、それを見つけるのは難しいというイメージです。


ブロックチェーンが分岐した場合、ブロックチェーンは最終的に長い方のブロックチェーンだけを残し、短い方のブロックチェーンを廃棄します。したがって、短い方のブロックチェーンに入っていたデータは、一度は有効になったにもかかわらず、さかのぼって無効になってしまいます。


(注)ブロックチェーンの「長さ」は、単純なブロックの数ではなく、ブロックチェーンが生成する「問題」の難易度も加味して算出される値です。


以上のブロックチェーンのしくみを悪用する手口が51%攻撃です。つまり、51%攻撃は、意図的に、現在のブロックチェーンよりも長いブロックチェーンを生成し、これを現在のブロックチェーンにつないで分岐を引き起こすことで、一度は有効になったはずのデータをさかのぼって無効にします。


ただし、分岐が発生したことにより廃棄されたブロックチェーンのデータは、しばらくすると再度ブロックチェーンに取り込まれるしくみになっているため、データがさかのぼって無効になるとはいっても、通常、それは一時的なものに過ぎません。


しかし、例外的に、自分が他人に支払ったビットコインの支払いに関するデータに限り、一定の操作をすることで永久に無効にすることができます。


例えば、AさんがBさんにビットコインを支払う場合を考えてみます。


まず、AさんがBさんに1BTCの支払いを実行すると、「AさんがBさんに1BTCを支払う」というデータがブロックチェーンに取り込まれることで、AさんからBさんへの支払いが有効になります。


Aさんは、51%攻撃により、この支払いをさかのぼって無効にすることができますが、そのままにしておくと、同じ内容のデータが再度ブロックチェーンに取り込まれて、支払いが有効になってしまいます。


そこで、これを回避するため、Aさんは、51%攻撃の際に、「AさんがAさん自身の別の口座に元の口座から全てのビットコインを移動した」というデータをブロックチェーンに取り込ませて有効にします。そうすると、「AさんがAさん自身の別の口座に元の口座から全てのビットコインを移動した」というデータの内容が、「AさんがBさんに(元の口座から)1BTCを支払った」というデータと矛盾することになります。既に空になったはずの元の口座から1BTCを支払うことはできないからです。


ブロックチェーンは、既に有効になった過去のデータと矛盾するデータを取り込めないしくみになっています。したがって、「AさんがAさん自身の別の口座に元の口座から全てのビットコインを移動した」というデータをブロックチェーンに取り込ませて有効にすることで、これと矛盾する「AさんがBさんに(元の口座から)1BTCを支払った」というデータが再度ブロックチェーンに取り込まれることを永久に阻止することができるのです。


このように、51%攻撃によって、自分が他人に支払ったビットコインを取り戻すことができます。


51%攻撃の名前の由来

51%攻撃を成功させるには、ブロックチェーンが生成する数学的な問題を解いて、現在のブロックチェーンよりも長いブロックチェーンを生成し、それを現在のブロックチェーンにつないで分岐させる必要があります。


しかし、前述したとおり、マイニングは世界中のマイナーが競争して高性能なマシンで計算を行っているので、現在のブロックチェーンもどんどん伸びていきます。したがって、51%攻撃をしたい人は、その他全てのマイナーのマシンの性能に勝る高性能なマシンを投入しなければ、現在のブロックチェーンよりも長いブロックチェーンを生成できないので、51%攻撃の成功は望めません。


つまり、マイニングに投入されている全てのマシンの性能の「過半数」を占めるだけのマシンを投入しない限り、51%攻撃の成功が望めないので、「過半数」という意味で「51%」攻撃といわれているのです。したがって、51%という数字に特別な意味はありません。そもそも50.1%も過半数なので、50.1%攻撃といってもよいはずですが、便宜的に51%といっているだけです。


ビットコインで51%攻撃が成功しない理由

前述したとおり、51%攻撃は下記の手順を踏みます。


① ビットコインを入手する。

② ビットコインで他人から商品やサービスを購入する。

③ ビットコインで代金を支払って商品やサービスを受け取る。

④ 51%攻撃で上記③の支払いを無効にすれば、商品やサービスをタダで持ち逃げすることができる。


しかし、ビットコインで51%攻撃を成功させるには膨大な費用がかかるので、51%攻撃で儲けを出すためには、誰かとビットコインで(その費用を賄うだけの)高額または大量の取引をしなければなりません。


しかも、自分の身元が取引相手に分かってしまえば、51%攻撃で代金の支払いを帳消しにしたとしても、取引相手から「もう一度払え」と請求されるだけなので、夜逃げでもしない限り51%攻撃をする意味はありません。


したがって、51%攻撃で儲けを出すためには、自分の身元が分からないようにしてビットコインで高額または大量の取引をしなければなりませんが、それは非常に難しいでしょう。つまり、51%攻撃を成功させるだけの費用を確保するのが難しいうえに、51%攻撃で儲けを出すことはさらに難しいのです。


このような理由によりビットコインで51%攻撃は成功しないのです。

Share - 51%攻撃とは?その名前の由来は?51%攻撃の意味を分かりやすく解説

0 comments

Be the first to comment!

This post is waiting for your feedback.
Share your thoughts and join the conversation.