OneKey ヘルプセンター

コンセンサスアタックとは

KK
KK
  • 更新

ビットコインのコンセンサスメカニズムとは、採掘者(または採掘プール)が自らの演算能力を利用して不正や妨害行為を行おうとすることが、少なくとも理論的には非常に困難であることを意味します。ビットコインのコンセンサス・メカニズムは、大多数の採掘者が、自らの最善の利益のために、正直に採掘することによってビットコインのシステム全体を維持するという前提に依存しているのです。しかし、システム内で大量の演算能力を持つマイナーやグループが出現すると、ビットコインネットワークの安全性や信頼性を損ねるために、ビットコインのコンセンサスメカニズムを攻撃することができるようになります。

注目すべきは、コンセンサス攻撃はブロックチェーン全体の将来のコンセンサスに影響を与えるか、せいぜい近い過去の数ブロック(最大で過去10ブロック)のコンセンサスにしか影響を与えないという点です。また、時間が経てば経つほど、ビットコインのブロックチェーン全体が改ざんされる可能性は低くなっていきます。理論的には、ブロックチェーンフォークは非常に長くなる可能性がありますが、実際には、非常に長いブロックチェーンフォークを実装するために必要な計算能力は非常に大きく、ビットコインブロックチェーン全体が徐々に大きくなっていくと、過去のブロックはフォークによってほとんど変更されないと考えることができます。また、コンセンサス攻撃は、暗号化アルゴリズム(ECDSA)だけでなく、ユーザーの秘密鍵にも影響を及ぼさない。また、コンセンサス攻撃は、他のウォレットからビットコインを盗んだり、署名なしでビットコインを支払ったり、ビットコインを再分配したり、過去の取引を変更したり、ビットコインの保有記録を変更したりすることはできません。コンセンサス攻撃が与える影響は、直近のブロック(最大10個)に影響を与え、サービス拒否によって将来のブロックの生成に影響を与えることのみです。

コンセンサス攻撃の典型的なシナリオは、「51%攻撃」である。ビットコインのネットワーク全体の51%の計算能力を支配しているマイナーのグループが、ビットコインのシステム全体を攻撃するつもりで手を組んだというシナリオを想像してください。この採掘者グループはブロックの大部分を生成できるため、ブロックチェーンのフォークを意図的に作ったり、特定の取引のブロックや特定のウォレットアドレスを攻撃するサービスを拒否することで、「ダブルペイ」を実現することができるのです。ブロックチェーンフォーク/ダブルペイメント攻撃とは、攻撃者が最近の取引を破棄し、その取引の前に新しいブロックを再構築することで、新しいフォークを作成し、その後ダブルペイメントを発生させることです。十分な演算能力があれば、攻撃者は一度に6つ以上の最新ブロックを改ざんし、そのブロックに含まれる改ざん不可能なトランザクションを消失させることができる。注目すべきは、二重支払いは攻撃者が所有するウォレットで発生した取引にしか行えないことです。ウォレットの所有者のみが二重支払い取引の正当な署名を生成することができるからです。攻撃者は自分の取引に対してのみ二重支払い攻撃を行うことができるが、取引が不可逆的な購入に該当する場合、この攻撃は利益をもたらす。

51%攻撃」の実例を見てみよう。第1章では、アリスとボブの間で、ビットコインを使ったコーヒー1杯の取引についてお話しました。コーヒーショップのオーナーであるボブは、アリスの送金がゼロで確認されたとき、アリスにコーヒーを提供することを望んでいる。このような小さな取引に対する「51%攻撃」のリスクは、顧客の購入の即時性(アリスはすぐにコーヒーを手に入れられる)に比べれば微々たるものだからだ。ほとんどのコーヒーショップが、25ドル以下のクレジットカードの購入時にサインをもらう手間を省くのと同じで、クレジットカード決済を顧客が取り消すかもしれないリスクよりも、利用者のサインをもらう方が高くつくからだ。従って、ビットコインで支払われる大口取引では、買い手(攻撃者)が実際の取引のUTXOと同一の偽造取引をネットワーク上に流すことで実際の取引をキャンセルできるため、二重支払いのリスクがより高くなります。二重支払いは、取引が確認される前に行われるか、攻撃者がブロックチェーンのフォークを介して行われるかの2つの方法があります。51%攻撃を行う者は、古いフォークで記録された取引をキャンセルし、新しいフォークで同じ金額の取引を再生成し、二重支払いを達成することができる。

このような攻撃を避けるために、大量に商品を販売する業者は、ネットワーク全体から6回の確認が行われた後に商品を配送する必要があります。あるいは、加盟店は、取引に第三者のマルチシグネチャアカウントを使用し、さらに、取引アカウントがネットワーク全体から複数の確認を受けるまで待ってから商品を配送する必要がある。確認回数が多いほど、攻撃者が51%攻撃で改ざんすることは難しくなります。大口の取引では、支払いから24時間後に商品が発送される場合でも、ビットコインで支払うことが買い手と売り手の双方にとって便利で効率的です。24時間後、トランザクションは少なくとも144のネットワーク全体の確認が行われます(51%の攻撃の可能性を効果的に減少させます)。

二重支払い」攻撃のほか、特定のビットコインアドレスへのサービス拒否も攻撃シナリオの一つです。システム内の演算能力の大部分を持つ攻撃者は、特定のトランザクションを簡単に無視することができる。他の採掘者が生成したブロックにその取引が存在する場合、攻撃者は意図的にそのブロックをフォークしてブロックを再生成し、そのブロックから無視したい取引を削除することができる。この攻撃の結果、この攻撃者がシステム内の計算能力の大部分を持っている限り、特定のウォレットアドレスまたはアドレスのグループによって生成されたすべてのトランザクションを継続的に妨害し、それらのアドレスへのサービスを拒否することを目的とすることが可能になります。

51%攻撃は、その名前が示すように、少なくともシステムの51%の計算能力を必要としません。実際、攻撃者はシステムの計算能力の51%未満しか持っていなくても、このような攻撃を試みることができます。51%攻撃と名付けられた理由は、単純に51%の閾値に達した攻撃者は、ほぼ間違いなく攻撃を成功させるからです。本来、コンセンサス攻撃とは、すべてのマイナーの演算を、正直者の演算と攻撃者の演算に分け、両グループがブロックチェーン上の新しいブロックを最初に計算することを競うようなシステムだが、攻撃者の演算は、特定の取引を含むか含まないかを慎重に設定したブロックを計算することを除いては、そのようなことはない。したがって、攻撃側の計算能力が低ければ低いほど、決闘に勝てる可能性は低くなる。裏を返せば、攻撃者の計算能力が高ければ高いほど、攻撃者が意図的に作成するフォークされたブロックのチェーンは長くなり、改ざんされる可能性のある最新のブロックや、攻撃者の支配下にある将来のブロックも多くなります。一部のセキュリティ研究グループは、統計モデルを用いて、ネットワークの演算能力の30%で51%の攻撃を仕掛けることができると結論付けています。

ネットワーク全体の計算能力が飛躍的に向上したことで、ビットコインのシステムが単一のマイナーによって攻撃されることは不可能となり、単一のマイナーがネットワークの計算能力の1%を占めることさえ不可能となったのである。しかし、一元管理されたマイニングプールは、プールの運営者が利益を得るために攻撃を仕掛けるというリスクをはらんでいる。プールオペレータは、候補ブロックの生成を制御し、また新たに生成されたブロックにどのトランザクションを配置するかを制御します。このように、プール運営者は、特定の取引や二重払いを排除する権限を持つ。この力をプール運営者が微妙に、かつ慎重に乱用すれば、プール運営者はコンセンサス攻撃を仕掛け、気づかないうちに利益を得ることができる。

しかし、すべての攻撃者が利益を求めているわけではありません。考えられるシナリオとしては、攻撃者が利益を得るためではなく、単にビットコインのシステム全体を混乱させるために攻撃を仕掛けているということです。ビットコインのシステムを破壊しようとする攻撃者は、膨大な投資と慎重な計画を必要とするため、そのような攻撃は、政府系組織から行われる可能性が高いと考えられます。同様に、マイニングマシンを購入し、マイニングプールを運営し、プール運営者の前述の権限を悪用し、DoS攻撃などのコンセンサス攻撃を行う可能性もあります。しかし、ビットコインネットワークの計算能力が幾何級数的に急速に向上するにつれ、これらの理論的に実現可能な攻撃シナリオを実際に実行することが困難になってきました。また、採掘制御のさらなる分散化を目指したP2Pool採掘プロトコルなど、最近のビットコインシステムのアップグレードにより、理論上実現可能なこれらの攻撃はますます困難になってきています。

深刻なコンセンサス攻撃が起きれば、ビットコインのシステムに対する信頼が低下し、ビットコインの価格が急落することは必至である。しかし、ビットコインのシステムや関連するソフトウェアも常に改良されているため、ビットコインのコミュニティは、コンセンサス攻撃に対して迅速に対応し、ビットコインのシステム全体をこれまで以上に堅牢で信頼性の高いものにしていくに違いありません。

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。