[ブロックチェーン]51%の攻撃の仕組み(2回攻撃)

株式会社プライムストラクチャーの若手エンジニアのSayaです。

今回はブロックチェーン関連でこちらの気になった記事について翻訳&紹介したいと思います。

原文 : Blockchain: how a 51% attack works (double spend attack)

ブロックチェーン:51%の攻撃の仕組み(二重攻撃)

51%の攻撃または二重の攻撃は、そのブロックチェーン上で暗号を2回使うことを試みているブロックチェーン上のマイナー、またはマイナーのグループです。
彼らはそれらを二重に消費しようとします。
したがってこの名前になります。
目的は、必ずしも暗号を倍に使用するというわけではありませんが、特定の暗号またはブロックチェーンに対して、その完全性に影響を及ぼして信用を落とすことがよくあります。

簡単な例

10ビットコインを使って高級車を買ったとします。
車は数日後に届き、私のビットコインは私から自動車会社に移されます。
この時ビットコインブロックチェーンに対して51%の攻撃を実行することで、このビットコインの転送を元に戻すことができます。
もしこれが成功すれば、私は高級車と払うはずだったビットコインの両方を所有し、私は再びそのビットコインを使うことができます。

51%の攻撃の概念は、民主的なブロックチェーンの観点からは明白に見えるかもしれませんが、それがどのように機能するかについてのよく誤解があります。
この記事では51%の攻撃がどのように機能するかを明確に説明します。
マイナーがトランザクションをブロックチェーンに追加する方法がまだわからない場合は、マイナーが最初に7つのステップでトランザクションをブロックチェーンに追加する方法を読むことをお勧めします。
ブロックチェーンの仕組みがわからない場合は、ここから始めてください。

ブロックチェーン = ガバナンス

51%攻撃について詳しく説明する前に、ブロックチェーンプロトコルは基本的にガバナンスの一形態であることを理解することが重要です。
ブロックチェーンは、取引データなどのデータの元帳を管理します。
ブロックチェーンのプロトコルは私たちのためにこれを管理することができるので、政府や銀行など、これを行うための第三者が必要なくなりました。
これが(ほとんどの)ブロックチェーンを分散化させる正体です。
ビットコインブロックチェーンのプロトコルは、ネットワーク上の参加者(マイナー)の大多数が本物のブロックチェーンのバージョンを決定することを意味する民主主義に基づいています。

51%の攻撃の仕組み

ビットコインの所有者がトランザクションでサインオフすると、未確認トランザクションのローカルプールに入れられます。
マイナーは、これらのプールからトランザクションを選択して、トランザクションのブロックを形成します。
このトランザクションブロックをブロックチェーンに追加するには、非常に困難な数学的問題に対する解を見つける必要があります。
マイナーはコンピュータの計算力を使ってこの解を見つけようとします。
これはハッシングと呼ばれます(ここでハッシュアルゴリズムについて詳しく説明しています)。
マイナー自身が持つ計算能力が高いほど、他のマイナーより先に解を見つける良い機会になります。
マイナーが解を見つけると、それは他のマイナーに(ブロックとともに)ブロードキャストされ、ブロック内のすべてのトランザクションがブロックチェーン上のトランザクションの既存レコードに従って有効であるかどうかだけを検証します。
悪意のあるマイナーであっても、それを行うためにその人のデジタル署名(秘密鍵)が必要であるため、誰かのためにトランザクションを作成することはできません。
したがって、誰かのアカウントからビットコインを送信することは、対応する秘密鍵へのアクセスなしでは不可能です。

ステルスマイニング – ブロックチェーンの子孫を作る

ここで注目してください。
悪意のあるマイナーは、既存の取引を取り消す可能性があります。
マイナーが解を見つけると、他のすべてのマイナーにブロードキャストされ、ブロックがブロックチェーンに追加された後に確認できるようになっています(マイナーはコンセンサスに達しています)。
しかし、悪意のあるマイナーはブロックの解をネットワークの他の部分にブロードキャストしないことでブロックチェーンの子孫を作り出すことができます。
ここでブロックチェーンには2つのバージョンが存在することになります。

一つは善良なマイナーで続いているバージョン、もう一つは悪意のあるマイナーで続いているバージョン。
悪意のあるマイナーは現在、自分自身のバージョンのブロックチェーンで作業しており、ネットワークの他の部分にそれをブロードキャストしていません。
要するにそれはブロードキャストされていないので、ネットワークの残りの部分はこのチェーンでピックアップしません。
それはネットワークの他の部分と分離されています。
悪意のあるマイナーは、そのビットコインのすべてを他の善良なマイナーが取り組んでいる正規バージョンのブロックチェーンで使うことができます。
たとえば、彼がそのビットコインをランボルギーニに使ったとしましょう。
正規のブロックチェーンでは、彼のビットコインは現在使われています。
その間、彼の分離したバージョンのブロックチェーンにこれらのトランザクションを含めません。
分離したブロックチェーンのバージョンでは、彼はまだそのビットコインを持っています。

一方、彼はまだブロックをピックアップしており、ブロックチェーンの分離したバージョンを全て自分で検証しています。
これがすべてのトラブルが始まる場所です…
ブロックチェーンは民主主義のモデル、つまり大多数をフォローするようにプログラムされています。
ブロックチェーンはこれによって常に最長のチェーンに従います。
結局のところ大多数のマイナーは、ブロックチェーンのバージョンにネットワークの他の部分より速くブロックを追加します(つまり、最長チェーン=多数)。
これはブロックチェーンがチェーンのどのバージョンが本物かを決定する方法で、ウォレットのすべての残高に基づいています。
競争が始まった。大多数のハッシング・パワーを持つものは、彼らのチェーンのバージョンにブロックを速く追加します。

競争 – 新しいチェーンをブロードキャストして既存の取引を逆転させる

悪意のあるマイナーは、他のマイナーがブロックをブロックチェーンに追加するよりも速く、孤立したブロックチェーンにブロックを追加しようとします(真実のブロック)。
悪意のあるマイナーが長いブロックチェーンを作成するとすぐに、彼はこのバージョンのブロックチェーンを突然ネットワークの他の部分にブロードキャストします。
ネットワークの他の部分は、ブロックチェーンのこの(悪意のある)バージョンが実際に作業していたものより長いことを検出し、プロトコルはそれらをこのチェーンに切り替えるよう強制します。

悪意のあるブロックチェーンは本物のブロックチェーンとみなされ、このチェーンに含まれていないすべてのトランザクションは直ちに取り消されます。
攻撃者はこれまでにビットコインをランボルギーニに費やしていましたが、この取引はステルスチェーンには含まれていませんでした。
これは現在管理されているチェーンなので、ビットコインを再び管理しています。
彼はそれらを再び使うことができます。

これが二重攻撃です。
悪意のあるマイナーは、彼のバージョンのブロックチェーンにブロックを速く追加するために、ネットワークの残りの部分を合わせたもの(つまり、ハッシュパワーの51%)よりも多くのハッシュパワーを必要とするため、51%の攻撃と一般的に呼ばれます。
最終的に彼は長い鎖を構築することができます。

ビットコインはこれに対してどのようにしてセキュリティを確保するか?

実際にはこれらの攻撃は非常に難しいものです。
前述のように、これを実現するためには、ネットワークの残りの部分を合わせたものよりも多くのハッシュ・パワーが必要です。
ビットコインブロックチェーンに数十万人のマイナーがいることを考慮すると、悪意のあるマイナーはネットワークの残りの部分と競争するためにマイニング用ハードウェアに膨大な資金を費やす必要があります。
地球上の最も強力なコンピュータでさえ、このネットワーク上の全計算力と比較になりません。
そして、51%の攻撃を実行することには他にも数多くの代償があります。
例えば、逮捕され起訴されるリスク、電気コスト、マイニング用ハードウェア全体のスペースと保管スペースの借り入れ、痕跡のカバー、資金洗浄など。
このような操作は、少なくともビットコインブロックチェーンの場合には、攻撃者はあまりにも多くの努力を払うだけです。

他のブロックチェーンは脆弱なのか?

もう一つ興味深い話は、このような攻撃を実行することがどれほど難しいかに関わらず、過去に多数の51%の攻撃が実際に発生したことです。
実際には、かなり最近ではVerge(XVG)ブロックチェーン上で攻撃が行われました(2018年4月)
この特定のケースでは、攻撃者は新しいブロックを非常に速いペースで作成することを可能にするVergeブロックチェーンプロトコルのコードにバグを発見し、短期間でより長いバージョンのVergeブロックチェーンを作成できるようにしました。
この例では、51%の攻撃を容易にするイベントを示していますが、プロトコルコードのバグは非常にまれです。
ブロックチェーン開発者の信頼できるチームは、おそらくこのようなバグに気付き、それが悪用されるのを防ぎます。

この「プルーフオブワーク」アルゴリズム(マイニングアルゴリズム)を調べると、よりアクティブなハッシング/計算能力によって51%の攻撃に対するより高いセキュリティが実現します。
小規模なアルトコインのように、このアルゴリズムで動作する小さなブロックチェーンは、攻撃者と競争するための計算能力があまりないため、このような攻撃に対してかなり脆弱です。
このため、51%の攻撃は通常小さなブロックチェーン(Bitcoin Goldなど)で発生します。
ビットコインブロックチェーンはこれまでに51%の攻撃を受けたことはありません。

ASICマイニング – 強化されたマイニングハードウェア

ASICマイニングは最近、ブロックチェーンの最新のホットな話題の一つにもなっています。
ASICマイニングは、さまざまな初期のビットコインマイニング企業によって開発されたマイニング技術で、マイニングハードウェアを強化し、より強力にします。
今現在業界の多くの人々が、ASICのマイナーが特定の個人や団体のマイニングを強力にしすぎるかどうかについて議論しています。
Monero(XMR)ブロックチェーンは最近、ASICマイニングがブロックチェーン上でのマイニングに使用されないようにするプロトコルアップデートを実装しました。
その結果、ネットワーク上のハッシュ・トータル・パワーが80%低下しました!

ネットワーク上のすべての参加者がASICマイニングハードウェアを使用していた場合、これは必ずしも問題ではありません。
しかし問題はBitMainのような大規模なマイニング会社が大量のASICマイニング事業を支配している疑いがあることです。
これらの組織はこの技術を個人にも配布していますが、彼らは最初に自分達で長い間その技術を使用した後に配布するでしょう。
ブロックチェーンの人々は、これが彼らを強力にしすぎるかどうかについて議論しています。
理想的には、ブロックチェーンはできるだけ多くの個人マイナーによって管理されるべきです。
これは要するにそれをより分散化するものです。

まとめ

ブロックチェーンは銀行のように中央集権的にならないメリットがある一方、それを保つためのセキュリティ対策を工夫して講じていかなければいけないことが良く分かりました。
願わくばより強固な対策が生み出されればと思います。

原文

Blockchain: how a 51% attack works (double spend attack)