ビットコインの脆弱性 — 攻撃ベクトルと実際に起きたバグ
ビットコインの弱点を中立的に検証。2010年のオーバーフローバグ、51%攻撃、ネットワーク層・マイニング層の攻撃、量子リスク、ユーザー側の脆弱性まで。
約22分
完璧なシステムではない — 脆弱性を正直に知る意義
- 本サイトの編集方針は中立性です。ビットコインを賞賛することも否定することも目的ではなく、確認できる事実を、良い面も悪い面も同じ基準で扱うことを方針としています。このページは後者、つまりビットコインの既知の弱点と、実際に起きた失敗を扱います。
- ビットコインのネットワークは17年以上にわたって稼働を続けていますが、無傷だったわけではありません。稼働中に重大なバグが少なくとも2度顕在化し、3度目は悪用される前に発見・修正されました。これらは公開の記録として残っており、隠されてはいません。
- 脆弱性を知ることには実際的な意味があります。リスクの大きさを正しく見積もれるようになること、そして「最も破られやすいのはプロトコルではなく自分自身の運用である」という事実に気づけることです。
- このページは攻撃手法の概要を説明するものであり、実行の手引きではありません。個々の誤解の検証は「ビットコインの誤解と真実」、事件そのものの経緯は「ビットコインの事件と転換点」、フォークを巡る対立の歴史は「フォーク史」がそれぞれ詳しく扱っています。
実際に起きた重大バグ
- 2010年8月15日、ブロック74638に、184,467,440,737.09551616 BTC(約1,844億BTC)を3つのアドレス宛に生成する取引が含まれていることが発見されました。原因は、出力額の合計が大きすぎて整数オーバーフローする場合を検証コードが想定していなかったことです。上限2,100万BTCというビットコインの根幹が、実装上の欠陥によって一時的に破られた出来事でした。
- 発見から約5時間で修正版クライアントが公開され、オーバーフローする出力を持つ取引を拒否するコンセンサスルールの変更が導入されました。正しいチェーンがブロック74691で不正なチェーンを追い抜き、生成された巨額のBTCは現在のチェーン上には存在しません。
- 2013年3月11日、ブロック225430を起点にチェーンが分岐しました。バージョン0.8はLevelDBを採用していた一方、0.7以前はBerkeley DBを使っており、後者はデータベースのロック数上限のために入力数の非常に多いブロックを処理できず、これを拒否したためです。事後検証をまとめたBIP50によれば、0.8側が約6割のハッシュパワーを持っていたため自動的には収束せず、大手プールが0.7へ意図的にダウングレードして旧チェーンに合流させることで解決しました。この間に少なくとも1件の大口の二重支払いが発生しています(実行者は実験目的だったとされています)。
- 2018年9月、CVE-2018-17144が修正されました。原因は、Bitcoin Core 0.14で処理を高速化する際に「1つのトランザクションが同じ出力を二重に使っていないか」を確かめる検証が省かれたことです。公式の開示文によれば、0.14系から0.16.2ではこうした取引を含むブロックを検証したノードが停止するDoS脆弱性となり、0.15系から0.16.2ではさらに、条件次第で採掘者が上限を超えてBTCを発行できるインフレーション脆弱性も併存していました。9月17日にDoSバグとして非公開で報告され、9月18日にバージョン0.16.3で修正、9月20日に開発者が全容を公開しています(メインネットで悪用された形跡はありません)。
- これら3つの事例が示すのは、「コンセンサスルールはコードとして実装されている以上、実装のバグはルールそのものを壊しうる」という事実です。同時に、いずれも数時間から数日のうちに検知・修正され、ネットワークが復旧した点も、同じ記録の一部として読む必要があります。
51%攻撃 — 理論と現実の距離
- 51%攻撃とは、ネットワークのハッシュパワーの過半数を握った攻撃者が、自分に都合のよいチェーンを他より速く伸ばし続ける攻撃です。これによってできることは限られており、①自分が送った取引を巻き戻す(二重支払い)②特定の取引をブロックに入れない(検閲)③他の採掘者のブロックを排除する、の3つが中心です。
- 逆に、できないことのほうが重要です。他人の秘密鍵なしにコインを動かすことはできず、存在しないBTCを発行することも、2,100万BTCの上限やその他のルールを一方的に変更することもできません。フルノードはルールに反するブロックを、多数派が作ったものであっても拒否するからです。
- コスト面では、2026年8月時点でネットワーク全体のハッシュレートはmempool.spaceの集計でおよそ900 EH/sに達しています(ハッシュレートは推定値のため、集計元や期間により900〜1,000 EH/s程度の幅があります)。これに匹敵する採掘設備・電力・立地を確保する必要があり、しかも攻撃が露見すればBTCの価値と攻撃者自身の設備価値が同時に毀損します。攻撃の経済合理性が働きにくい構造だと言われるのはこのためです。
- BTCでは51%攻撃は発生していません。2014年には大手プールGHash.ioのシェアが一時的に50%を超えて議論を呼びましたが、攻撃は行われず、同プールは以後シェアを40%未満に抑えると表明しました。
- 一方、同じProof of Workでも、ハッシュレートの小さいチェーンでは現実に攻撃が起きています。Bitcoin Goldは2018年5月に約38.8万BTG(当時およそ1,800万ドル相当)規模の二重支払い被害を受け、Ethereum Classicは2019年1月と2020年8月に複数回の攻撃を受けて取引所が損失を被りました。ここから読み取るべきは「Proof of Workは安全だ」ではなく「Proof of Workの安全性はハッシュレートの規模と分散に依存する」ということです。ハッシュパワーを時間貸しする市場が存在するため、規模の小さいチェーンは構造的に脆弱な状態に置かれます。
- BTCにおける現実の論点はマイニングプールの集中です。2026年8月時点のmempool.spaceの直近1週間の集計では、上位1プールが約24%、上位3プールで6割弱、上位5プールで8割弱の採掘ブロックを占めています。ただしプールはハッシュレートを所有しているわけではなく参加者はいつでも移動できること、ブロック構成の権限を採掘者側に戻す標準(Stratum V2など)の採用が進んでいることも、あわせて評価する必要があります。
ネットワーク層の攻撃 — 情報を遮断する
- Sybil攻撃は、攻撃者が大量の偽ノードを立ち上げ、ネットワーク内の存在感を水増しする手法です。ビットコインでは、多数決の対象がノード数ではなくハッシュパワーであるため単独ではコンセンサスを覆せませんが、後述のeclipse攻撃の前提条件になります。
- Eclipse攻撃は、特定のノードの接続先をすべて攻撃者のノードで埋め、そのノードから見えるブロックチェーンの世界を操作する攻撃です。Heilmanらが2015年のUSENIX Securityで発表した論文はこの攻撃に必要な資源量を定量化し、以後Bitcoin Coreはピア選択とアドレス管理の多様化を継続的に強化してきました。
- BGPなどインターネットの経路制御はビットコインの外側にあり、そこを操作すればプロトコルに一切触れずに攻撃が成立します。実例として、Secureworks(現Sophos)の調査によれば、2014年2月から5月にかけて何者かが19のISPに属する51のネットワークに対して不正なBGP経路広告を行い、採掘者の接続を攻撃者のプールへ転送して約8.3万ドル相当の暗号資産を得ていました。これはネットワークを分断する攻撃ではなく、採掘者のハッシュパワーと報酬を横取りする経路ハイジャックでした。
- 同じ経路制御を使ってネットワーク自体を分断する「パーティション攻撃」は、Apostolakiらが2017年に発表した研究(Hijacking Bitcoin: Routing Attacks on Cryptocurrencies)などで理論的に示されています。分断が成立すれば、片側のブロックを隔離して二重支払いや採掘報酬の浪費を誘発しうると論じられています。
- 現在の緩和策には、接続経路の多様化(複数ISP、Tor、衛星受信)、BIP324として仕様化された暗号化P2Pトランスポート、ブロック中継専用の接続などがあります。ただしインターネットの経路制御そのものはビットコインの外側にあり、プロトコル側で完全に制御できる問題ではありません。
マイニング層の攻撃 — インセンティブ設計の隙
- Selfish mining(利己的マイニング)は、Ittay EyalとEmin Gün Sirerが2013年に発表した論文「Majority is not Enough: Bitcoin Mining is Vulnerable」で提示された戦略です。見つけたブロックを意図的に隠して他の採掘者の作業を無駄にさせ、自分のシェア以上の報酬を得るというもので、論文は対策を講じなければブロック伝播での優位度に応じておよそ4分の1から3分の1のシェアでも成立しうると論じ、あわせてプロトコルの改良案を提示しました。
- 大規模に観測されていない理由としては、実行にはブロック伝播での優位が必要であること、プールの挙動は公開統計から検知されやすいこと、露見すれば参加者が離脱してプール自身の収益とBTCの価値が損なわれることなどが挙げられます。理論上の可能性と実運用のインセンティブは別物である、という点は繰り返し確認しておく価値があります。
- Time-warp攻撃は、難易度調整の期間計算に残るオフバイワンの欠陥を突くものです。難易度は2,016ブロックごとに調整されますが、経過時間の計算には期間の先頭ブロックのタイムスタンプが使われるため、過半のハッシュパワーを持つ攻撃者が先頭ブロックのタイムスタンプを過去にずらすと、実際より長い時間が経過したように見せかけて難易度を不当に引き下げ、ブロック生成間隔を極端に短縮できるとされています。
- この修正を含むソフトフォーク提案がBIP54(Consensus Cleanup)で、難易度調整期間の先頭ブロックのタイムスタンプが直前のブロックを(2時間の猶予を除いて)下回ることを禁じる形で塞ぎます。Matt Corallo が2019年に提案した内容を Antoine Poinsot が2024年以降に再構成したもので、2025年4月にBIP番号が割り当てられ、同月末にbipsリポジトリへマージされました。BIPのステータスは「Complete(仕様として完成)」ですが、アクティベーションは行われておらず、2026年時点でも検証と議論の段階にあります。
- Fee sniping は、手数料収入が非常に大きいブロックが出たとき、それを承認せずに作り直して手数料を奪おうとする戦略です。ブロック補助金が小さくなるほど相対的な魅力が増すと指摘されており、ウォレット側では取引の nLockTime を直近のブロック高に設定し、巻き戻しに便乗されにくくする対策が採られています。
- これらに共通するのは、プロトコルのバグではなくインセンティブ設計上の隙だという点です。修正にはコンセンサスルールの変更、すなわち広範な合意が必要になるため、既知の欠陥であっても対処に長い時間がかかります。
量子コンピュータのリスク — 何が、いつ危ういのか
- 量子コンピュータが脅かすのは、署名に使われる楕円曲線暗号(ECDSA)です。マイニングに使われるSHA-256への影響は限定的とされており、リスクは「採掘が乗っ取られる」ことではなく「秘密鍵が公開鍵から逆算される」ことにあります。
- 破るために必要な規模は、誤り訂正を備えた数万から数十万物理量子ビット級と試算されており、見積もりはハードウェア方式や研究により幅があります。実機の量子ビット数は方式ごとに増え続けていますが、誤り訂正を経た「論理量子ビット」の数は桁違いに少なく、実用的な大規模機にはまだ距離があります(見積もりの内訳は「ビットコインの誤解と真実」で扱っています)。
- 危険の順序は一様ではありません。先に狙われるのは、公開鍵がすでにチェーン上に露出しているコインです。具体的には、採掘報酬を公開鍵そのもので受け取る初期のP2PK出力と、同じアドレスを再利用して署名を出したことのあるP2PKH出力が該当します。Deloitteの分析は、流通量のおよそ4分の1にあたる400万BTC超(内訳は初期のP2PKが約200万BTC、再利用されたP2PKHが約250万BTC)がこの区分に入ると推計しており、数え方によってはさらに大きい推計もあります。
- 移行そのものは、量子耐性を持つ署名方式へのソフトフォークとして技術的には可能とされています。難しいのは合意形成のほうで、どのアルゴリズムを採用するか、署名サイズの増加がブロック容量に与える影響をどう扱うか、そして露出済みで所有者が動かせないコイン(初期採掘分を含む)を凍結するのか、そのまま放置するのか、といった論点が残ります。
- つまりこれは技術問題であると同時にガバナンス問題です。現実的な脅威となる時期については専門家の見解が分かれており、本サイトは特定の時期を断定しません。
最大の脆弱面はユーザー側にある
- これまでに失われたビットコインの大部分は、プロトコルの破綻ではなく、利用者側の失敗によるものです。秘密鍵の紛失、バックアップの不備、フィッシング、マルウェア感染。暗号技術がどれほど強固でも、鍵を扱うのが人間である以上、そこが最も破られやすい層になります。
- フィッシングとソーシャルエンジニアリングは最も一般的な入口です。偽のウォレットアプリ、偽のサポート窓口、シードフレーズの入力を求める偽サイト。ハードウェアウォレットを使っていても、シードフレーズを人間が画面に入力してしまえば保護は無効になります。
- SIMスワップは、攻撃者が通信事業者を欺いて被害者の電話番号を自分の端末に移し、SMSによる二要素認証やパスワードリセットを突破する手法です。暗号資産投資家Michael Terpin氏の事件では約2,400万ドル相当が盗まれ、通信事業者の責任を巡る訴訟が長期化し、2024年9月30日に米第9巡回区控訴裁判所が連邦通信法に基づく請求を復活させました。SMSベースの二要素認証は、認証手段の中でも弱い部類に入ります。
- サプライチェーンの侵害も現実的な脅威です。2020年7月、ハードウェアウォレット企業Ledgerは、ECサイトとマーケティング用のデータベースが侵害され、約100万件のメールアドレスと、氏名・住所・電話番号などを含む約9,500件分の詳細情報が流出したと公表しました。同年12月には流出データが公開のダンプとして出回り、氏名・住所を含む詳細情報は約27万件規模に及ぶことが判明しています。資金と秘密鍵そのものは影響を受けませんでしたが、その後は偽装デバイスの郵送を含む標的型フィッシングが多発し、顧客情報の流出がそのまま物理的な標的リストになりうることを示しました。
- ソフトウェアのサプライチェーンも同様です。2025年9月8日、週合計26億回を超えてダウンロードされるnpmパッケージ群(chalk、debugなど18件)が、保守者へのフィッシングを起点に改ざんされ、ブラウザ上で暗号資産の送金先アドレスを書き換えるコードが混入しました。約2時間で検知・削除されましたが、依存関係の深さがそのまま攻撃面になることを示しています。
- そして物理的な強要、いわゆる「5ドルのレンチ攻撃」があります。暗号がどれほど強くても、鍵の保有者が特定されれば、脅迫が最短経路になります。Jameson Lopp氏が公開報道を集計している一覧では、2014年以降340件を超える事例が記録され、2025年は83件と年間の記録件数が過去最多となりました(2026年も8月時点で50件を数えています)。対策は技術面(マルチシグ、時間ロック、保管場所の分散)と運用面(保有状況を公言しない)の両方にまたがります。
カストディリスク — 誰が鍵を持っているか
- 「Not your keys, not your coins(自分の鍵でなければ、自分のコインではない)」という原則は、リスクの所在を言い当てています。取引所やカストディアンに預けた瞬間、あなたが負うリスクはビットコインのプロトコルのリスクではなく、その企業の信用・内部統制・所在する法域のリスクに置き換わります。
- 歴史的に失われた資金の多くは、この層で失われました。Mt.GoxやFTXの破綻で消えた資産は、ビットコインの暗号やコンセンサスが破られた結果ではありません。個々の経緯は「ビットコインの事件と転換点」で詳しく扱っています。
- 一方で、自己管理には別種のリスクがあります。鍵の紛失、相続時に誰も取り出せなくなる問題、前節で触れた物理的な強要。現物ETFやカストディ型サービスは、自己管理のリスクを金融機関のカウンターパーティリスクに置き換える選択であり、リスクを消滅させるものではありません。
- どちらが適切かは、金額の規模、技術的な習熟度、居住する法域、相続の計画によって変わります。本サイトは特定の保管方法を推奨せず、それぞれがどのリスクを引き受ける選択なのかを示すにとどめます。
防御の仕組み — 遅いが厚い検証
- ビットコインの脆弱性対応は、責任ある開示(responsible disclosure)を基本としています。発見者は[email protected]宛に非公開で報告し、検証、修正リリースを経て、内容が公開されます。CVE-2018-17144は、この流れが機能してインフレーション脆弱性が悪用前に塞がれた実例です。
- Bitcoin Coreは2024年7月に開示ポリシーを明文化しました。深刻度をLow・Medium・High・Criticalの4段階に分類し、Lowは修正を含むメジャーバージョンの公開から2週間後、MediumとHighは影響を受ける最後のリリースがEOL(サポート終了)になってから2週間後——おおむね修正リリースの約1年後——に公開されます。Criticalは標準ポリシーの対象外とされ、個別対応となります。公開の2週間前には予告が行われます。
- 構造面での防御は、全ノードが全ブロックを独立に検証することにあります。少数のバリデータを買収すれば済むモデルと比べて、攻撃面は広く分散しています。ただし多くのノードが同じ実装を動かしている以上、実装バグは相関したリスクとして残ります。
- コンセンサスルールの変更には広範な合意が必要なため、既知の欠陥であっても修正までに何年もかかります。time-warp攻撃が長く残っているのはその例です。これは「速く直せない」という欠点であると同時に、「誰か一人が勝手にルールを変えられない」という利点の裏返しでもあります。
- そして、すべてが公開の記録として残ります。コードも、議論も、事後検証も。BIP50のような文書が2013年の分岐を詳細に記録しているのは、バグの存在を隠さない運用が続いてきた結果です。
未解決の構造課題
- セキュリティバジェット問題は、最も長期的な論点です。ブロック補助金は2024年の半減期で3.125 BTCとなり、およそ4年ごとに半減して2140年頃にゼロになります。最終的にネットワークのセキュリティは取引手数料だけで支えられる必要がありますが、近年は手数料が採掘者収入の数%以下にとどまる期間が長く(静穏な時期には1%を下回る局面もあれば、ブロックスペースへの需要が集中すれば一時的に跳ね上がります)、この移行が円滑に進むかどうかは実証されていません。
- この問題に対しては、ブロックスペースへの需要が育つ、BTC建て収入の実質的な価値が上がる、ハッシュレートは価格と手数料に応じて自然に均衡する、といった見方が示されています。いずれも仮説であり、まだ検証されていません。本サイトは将来の価格やこの問題の結末を予測しません。
- ブロックスペースの用途を巡る論争も続いています。2025年10月にリリースされたBitcoin Core v30では、OP_RETURN出力に対する標準リレーの既定上限(従来およそ80バイト)が事実上撤廃されました(上限はノードごとに設定できます)。これはコンセンサスルールではなくリレーポリシーの変更ですが、ビットコインは金融取引の台帳なのか任意データの保存領域も許容するのかという価値観の対立を再燃させ、Bitcoin Knotsなど別の実装へ移行するノードも増えました。
- 開発リソースの集中も構造的な課題です。Bitcoin Coreを継続的に保守する開発者の数は限られており、その資金も少数の助成団体・企業に依存しています。プロトコルが分散していても、それを保守する人的資源は同じようには分散していません。
- ノード運用のコストも静かな論点です。検証に必要なストレージや帯域の負担が上がるほど、自分で検証する人は減り、他者の言うことを信じるだけの利用者が増えます。これは技術的な脆弱性ではなく、社会的な脆弱性です。
- ビットコインの17年は「バグがなかった歴史」ではなく、「バグが見つかり、公開され、修正されてきた歴史」です。ここに挙げた課題のいくつかは今も未解決で、専門家の評価も分かれています。強い主張と、それを支える根拠の強さを切り分けて読むこと——それが、賞賛にも否定にも寄らずにビットコインを理解する最も確実な方法だと考えています。
主な参照元
- Bitcoin Wiki — Value overflow incident(2010年のオーバーフローバグ)
- BIP 50 — March 2013 Chain Fork Post-Mortem
- Bitcoin Core — Disclosure of CVE-2018-17144(2018年9月20日、影響バージョンと機序)
- Bitcoin Core — Security Advisories / 開示ポリシー(2024年7月明文化)
- BIP 54 — Consensus Cleanup(time-warp等の修正提案、Status: Complete)
- Eyal & Sirer (2013) — Majority is not Enough: Bitcoin Mining is Vulnerable
- Secureworks(現Sophos)— BGP Hijacking for Cryptocurrency Profit(2014年の事例)
- Ledger — 2020年7月のデータ侵害に関する公式説明(約100万件のメールアドレス/約9,500件の詳細情報)
共有