ブロックチェーンはどうやってハッキングされる?分散型ネットワークへの攻撃手法
主要な洞察
本記事では、ブロックチェーンネットワークが受けるさまざまな攻撃手法を解説します。ブロックチェーンは中央集権型データベースよりも安全性が高い一方で、51%攻撃、ダブルスペンド、Sybil攻撃、セルフィッシュマイニング、スマートコントラクトの脆弱性、秘密鍵の盗難など、依然として多くの脅威にさらされています。実際の被害事例では、特に小規模プロジェクトで大きな損失が発生しています。セキュリティ対策が進化する一方で、攻撃手法も巧妙化しており、継続的な警戒と技術革新がブロックチェーンの安全性維持に不可欠です。
ブロックチェーンは分散型台帳として機能し、情報の保存や取引の実行において中央集権型データベースよりもはるかに信頼性の高い仕組みです。しかし、ハッキングのリスクも存在し、実際に攻撃が頻繁に試みられています。分散型ネットワークへの攻撃は多様ですが、多くの場合、コンセンサスメカニズムの抜け穴を突き、ブロックチェーンのハッシュレートを支配しようとするものです。これにより、攻撃者は台帳のデータを書き換え、混乱を引き起こし、暗号資産を盗むことができます。
この記事では、ブロックチェーンに対する主な攻撃手法と、その脅威の内容について解説します。
51%攻撃
51%攻撃は、ブロックチェーンにとって最大の脅威の一つです。これは、プルーフ・オブ・ワーク(PoW)型のネットワークに対して行われます。
攻撃の仕組み
ネットワーク全体の計算能力(ハッシュレート)の半数超を支配することで、企業の過半数株主のように意思決定を独占できる状態を作り出します。つまり、ハッシュレートの51%を握ることで、ブロックチェーンの計算能力をコントロールできるのです。
攻撃者がハッシュレートの過半数を握ると、トランザクションの並び替えや承認の取り消し、他のマイナーによるマイニングの妨害が可能となり、ネットワークの混乱や停止を引き起こします。また、同じ暗号資産を複数回使う「ダブルスペンド」など、目立たない形での被害も発生します。
これほどのハッシュレートを得るには、大量のマイニング機器をレンタルしたり、マイニングプールを支配・設立したりする方法があります。また、他のマイナーを騙したり、マルウェアを使ってマイニングボットネットを構築するなど、不正な手段も存在します。
リスクに見合うか?
ただし、Bitcoinのような大規模ブロックチェーンでは、ノード数も多く、マイニング機器や電気代も高額なため、現実的にこの攻撃を成功させるのはほぼ不可能です。労力に見合わないことが多いですが、小規模なプロジェクトはこの脅威から完全に免れているわけではありません。
実際に、ZenCash(ZEN)、Litecoin Cash(LCC)、MonaCoin(MONA)、Verge(XVG)、Bitcoin Gold(BTG)などのネットワークが51%攻撃を受けた事例があります。
実際の事例
51%攻撃が成功すると、攻撃者はプロトコルの脆弱性を徹底的に悪用できますが、主な目的はダブルスペンドです。
2018年にZenCash(ZEN)ネットワークで発生した攻撃では、攻撃者は55万ドル相当の被害をもたらしました。13,000ZENと6,600ZENの2件の大口トランザクションが二重に使われ、攻撃は110ブロック・約4時間続きました。ネットワーク側の損失は約3万ドルと、盗まれたコインに比べると小規模でした。
また、Ethereum Classicも2020年に3度攻撃されました。ハッカーはNiceHashから計算能力をレンタルし、7月から8月にかけてETCのハッシュレートが急落したタイミングを突きました。GPUをレンタルし、ネットワーク全体の51%以上のハッシュレートを確保したことで、100万ETC超(当時約900万ドル相当)のダブルスペンドに成功しました。
ハッシュレートのレンタルコストは数十万ドル規模で、最終的な「利益」は不明ですが、同様の事例は他にも多数報告されています。
ダブルスペンド(二重支払い)
ダブルスペンドの問題は、ブロックチェーンや仮想通貨が登場する以前から存在していました。
本質的には、何かと引き換えに資産を渡す際、その場で取引を完了せず「後で支払う」と約束すると、将来的にその資産が手元にないリスクが生じます。
理論上、同じ資産を保証する書類(契約書や証書など)を複数の相手に同時に渡すことができ、これがダブルスペンドです。ブロックチェーンでも原理は同じです。
ダブルスペンドの仕組み
攻撃者が同じコインを2回以上使うことで発生します。例えば、1BTCを複数の相手に同時に送信し、何かと交換する場合、実際に1BTCを受け取るのは1人だけです。
ネットワークが正常に動作していれば、1つのトランザクションのみが大多数のノードに承認され、通常はこれで問題ありません。ブロックチェーンにはダブルスペンドを防ぐ仕組みが組み込まれていますが、リスクはゼロではありません。
ダブルスペンドを実現する方法として、51%攻撃が代表例です。攻撃者がハッシュレートの過半数を握ると、新しいブロックを独自に生成・改変し、必要な取引だけを承認することができます。

この例では、攻撃者がメインチェーンからフォークを作り、偽のトランザクションを承認しつつ、正規のトランザクション5件が処理されています。
このタイミングでコインを仮想通貨取引所に送り、1〜5回のブロックチェーン承認が必要な取引を完了し、別の仮想通貨や法定通貨を受け取ることができます。
「攻撃ウィンドウ」が閉じると、偽のブロック群は破棄されますが、攻撃者の視点では、取引所でトークンを売却しても元のブロックチェーン上にコインが残るため、実質的に「偽の」暗号資産を売ったことになります。
Finney攻撃
Finney攻撃は、Bitcoinの最初の受取人であり、ブロックチェーン上でのダブルスペンドの可能性を初めて指摘したHal Finney氏にちなんで名付けられました。
Finney攻撃は、未承認トランザクションを相手が受け入れる場合に発生するダブルスペンドの一種です。
この攻撃の本質は、マイナーが自身のアドレス「A」から別の自身のアドレス「B」へのトランザクションを含むブロックを生成し、それをすぐにネットワークに公開しない点にあります。次に、アドレス「A」から他人のアドレス「C」へ別のトランザクションを実行します。もし相手がネットワーク承認なしで取引を受け入れると、攻撃者は先に作成したブロックを公開し、「A」から「C」への取引は無効化され、攻撃者が二重に利益を得ることができます。
レース攻撃
この攻撃は、2つのトランザクション間の「競争」です。詐欺師が同じアドレスから異なるデバイスで同時に2人の相手に同じコインを送信し、両者が商品や暗号資産を送ってしまうものの、後から処理されたトランザクションは無効になります。
この攻撃は、加盟店が未承認トランザクションを受け入れた場合のみ成立します。「レーサー」の手口に騙されないためには、最低1回の承認を待つことが重要です。
Sybil攻撃
この攻撃は、同名の書籍『Sybil』の主人公にちなんで名付けられました。攻撃者が自ら管理するノードをネットワーク上に多数配置し、被害者のノードを「包囲」して取引をコントロールする手法です。
脆弱性を狙う
Bitcoinのような大規模ネットワークでは、ノードがランダムに他ノードを選んで取引を確認するため、実現はほぼ不可能です。
そのため、Sybil攻撃は新興の仮想通貨プロジェクトが主な標的となります。ネットワークに接続する際、ノードが信頼できるノードのIPアドレスを知らず、問い合わせを行う場合があります。
このリクエストが攻撃者のノードに届くと、攻撃者は自分が管理するノードのアドレスを返答できます。
これにより、攻撃者は以下のことが可能になります:
- ユーザーの取引をブロックし、メインブロックチェーンから切り離す
- どのブロックに「接続」させるかを決定(多くはダブルスペンドが行われているブロック)
- ユーザーのすべての取引を追跡
つまり、攻撃者が管理するノードが他のノードを説得し、誤ったデータを承認させることができます。
セルフィッシュマイニング
PoW型ブロックチェーンには、不正なマイナーが悪用できる脆弱性があります。それは、複数のブロックを同時に承認できる点です。
フォーク問題
2つのブロックが同時に生成され、前のブロックに接続されると、ブロックチェーンは2本に分岐します。分岐が生じると、ネットワーク構造が複雑化し、取引処理も遅くなります。そのため、マイナーはブロックを承認した直後に、その情報を他ノードへ即座に伝える必要があります。
しかし、セルフィッシュマイナーはこの情報を他の参加者に隠し、「正直な」ノードを欺いて新たなチェーンを生成させ、ネットワークの分岐を拡大させます。
具体例
例えば、セルフィッシュマイナーがブロック2001を採掘したものの、ネットワークに公開しません。他のノードは2000から新たなブロックを掘り続けます。これにより、正直なマイナーの2000番ブロックと攻撃者の2000番ブロックが並立し、それぞれ独自の2001番ブロックを持つ状態になります。
攻撃者はさらにブロックを生成し、自分のチェーンを伸ばします。その後、攻撃者が2001番ブロックの情報を公開すると、ネットワークはそちらを正当と認識し、正直なノードが同期間に追加したブロックは破棄されます。その結果、正直なマイナーは報酬を得られず、努力が無駄になります。
ルーティング攻撃
この攻撃は、ブロックチェーン自体のセキュリティ問題ではなく、インターネットサービスプロバイダー(ISP)の接続プロトコルの脆弱性を突くものです。
プロトコルへのアクセス権を得たハッカーは、偽のルート情報を公開できます。この手法はダブルスペンドにも利用可能です。新しいブロックの伝達を遅らせることで、ネットワーク上で一時的にブロックが見えなくなり、その間に暗号資産の二重支払いが可能になります。
スマートコントラクトの脆弱性を突く攻撃
スマートコントラクトは人間によって記述されるため、どうしてもミスが発生します。
コードエラーの代償
スマートコントラクトにはさまざまな脆弱性が潜んでいます。発見が困難な複雑な問題から、単純なタイプミスまで、どんなミスも数百万ドル規模の損失につながる可能性があります。
Web3セキュリティ企業Beosinの2023年6月30日付レポートによると、2023年前半に詐欺やハッキングで失われた暗号資産は6億5600万ドルに上り、そのうち56%がスマートコントラクトの脆弱性によるものでした。
スマートコントラクト自体の脆弱性だけでなく、記述言語にも問題がある場合があります。2023年7月30日には、Curve Financeの4つの流動性プールが、スマートコントラクト用プログラミング言語Vyperの脆弱性を突かれて被害を受けました。Curve Financeは自動マーケットメイク(AMM)技術を持つ分散型取引所で、DeFi最大級のステーブルコイン流動性ハブです。被害総額は約6000万ドルで、そのうち2000万ドルはホワイトハッカーにより回収されCurveに返還されました。主な被害はCRV/ETHプールのハッキングによるもので、約4000万ドル分の流動性が奪われました。
DDoS・タイムディレーション攻撃
DDoS攻撃は暗号資産の窃盗を目的とせず、プロジェクトの妨害や信用失墜を狙うものです。大量の無意味な「ダスト」トランザクションをネットワークに送りつけることで、データ転送やブロックチェーンの更新、新規ブロック生成を遅延させ、ネットワークの動作を妨げます。
秘密鍵への攻撃
ブロックチェーン上の公開チャネルでデータの機密性を保つため、非対称暗号技術(秘密鍵・公開鍵暗号)が使われています。秘密鍵と公開鍵は数学的アルゴリズムで結び付けられており、公開鍵が分かれば相手に暗号化メッセージを送り、秘密鍵で復号できます。秘密鍵を知っていれば公開鍵を導き出せますが、その逆はできません。
秘密鍵はユーザーのすべての暗号資産へのフルアクセス権を持つため、攻撃者はこれを狙います。
脆弱性と対策
秘密鍵や関連する暗号資産にアクセスする最も簡単な方法は、シードフレーズを盗むことです。これは、メモ用紙に書かれたニーモニックコードを盗んだり、ソーシャルエンジニアリングやフィッシング攻撃などの手法で入手できます。
秘密鍵や暗号資産を安全に守るには、Tangem Walletに保管を任せる方法があります。Tangemの暗号資産ウォレットはシードフレーズを使用しないため、盗難のリスクがありません。秘密鍵は2枚または3枚のカード(メインカードとバックアップカード)のチップ上で生成・保管され、外部に取り出すことはできません。
まとめ
現在、ブロックチェーンはここで紹介したような多様な攻撃や、プログラムコードや暗号化方式のミスなど、さまざまな脅威に直面しています。ハッカーはこれらの抜け穴を常に探し、スマートコントラクトの脆弱性やブロックチェーン自体の弱点、暗号資産取引所への攻撃など、あらゆる手段で悪用を試みています。
仮説上の脅威
現時点では理論上のみ存在する攻撃手法もあります:
- プール間のカニバリズム(プールを破壊しブロックチェーンの運用を妨害)
- P+イプシロン攻撃:Vitalik Buterin氏によれば、PoWネットワークで最も厄介な問題の一つで、ネットワーク参加者に賄賂を渡し、提案された変更への支持を得る手法です
- タイムジャッキング(取引のタイムスタンプを改ざんする試み)
現状、ハッカーがこれらの戦略に積極的に取り組んでいる様子はありません。
今後の展望
唯一の解決策は、分散型ネットワークのセキュリティ機構を絶えず進化させることです。経験上、保護レベルが高まるほど、マイナーやハッカーは新たな抜け道を開発します。この攻防は今後も続くでしょう。従来の金融でもATMのハッキングやクレジットカードの盗難、銀行強盗が絶えません。100%安全な仕組みは存在しないのです。