メインコンテンツへスキップ
第 8 架 批判的視点・リスク 43 / 45

第 8 架 批判的視点・リスク 43 / 45

ビットコインの脆弱性 — 攻撃ベクトルと実際に起きたバグ

ビットコインの弱点を中立的に検証。2010年のオーバーフローバグ、51%攻撃、ネットワーク層・マイニング層の攻撃、量子リスク、ユーザー側の脆弱性まで。

約25分

この記事の出典を確認する(17件)

記事概要

強いシステムとは、壊れないシステムのことではありません。何が重なると危ないのかを知り、壊れ方を小さく抑えるシステムです。

理解の手がかり

航空機の安全性評価のように、部品の故障、通信の途絶、操作ミス、悪意が重なる経路を一つずつたどると、攻撃面を整理できます。

比喩の限界

理論上できる攻撃と、経済的・実務的に成り立つ攻撃は同じではありません。確率も影響も条件で変わり、ここでの紹介は予告でも実行手順でもありません。

「可能」「現実的」「すでに緩和済み」を分けて、恐怖にも過信にも寄らずにリスクを読めます。

用語集を開く
この記事の目次10節読みたい節へ移動する

1完璧なシステムではない — 脆弱性を正直に知る意義

本サイトの編集方針は中立性です。ビットコインを賞賛することも否定することも目的ではなく、確認できる事実を、良い面も悪い面も同じ基準で扱うことを方針としています。このページは後者、つまりビットコインの既知の弱点と、実際に起きた失敗を扱います。

ビットコインのネットワークは17年以上にわたって稼働を続けていますが、無傷だったわけではありません。稼働中に重大なバグが少なくとも2度顕在化し、3度目は悪用される前に発見・修正されました。これらは公開の記録として残っており、隠されてはいません。

脆弱性を知ることには実際的な意味があります。リスクの大きさを正しく見積もれるようになること、そして「最も破られやすいのはプロトコルではなく自分自身の運用である」という事実に気づけることです。

このページは攻撃手法の概要を説明するものであり、実行の手引きではありません。個々の誤解の検証は「ビットコインの誤解と真実」、事件そのものの経緯は「ビットコインの事件と転換点」、フォークを巡る対立の歴史は「フォーク史」がそれぞれ詳しく扱っています。

2実際に起きた重大バグ

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つの事例が示すのは、「コンセンサスルールはコードとして実装されている以上、実装のバグはルールそのものを壊しうる」という事実です。同時に、いずれも数時間から数日のうちに検知・修正され、ネットワークが復旧した点も、同じ記録の一部として読む必要があります。

351%攻撃 — 理論と現実の距離

51%攻撃とは、ネットワークのハッシュパワーの過半数を握った攻撃者が、自分に都合のよいチェーンを他より速く伸ばし続ける攻撃です。これによってできることは限られており、①自分が送った取引を巻き戻す(二重支払い)、②特定の取引をブロックに入れない(検閲)、③他の採掘者のブロックを排除する、の3つが中心です。

逆に、できないことのほうが重要です。他人の秘密鍵なしにコインを動かすことはできず、存在しないBTCを発行することも、2,100万BTCの上限やその他のルールを一方的に変更することもできません。フルノードはルールに反するブロックを、多数派が作ったものであっても拒否するからです。

コスト面では、2026年8月16日時点のmempool.spaceの集計で、ネットワーク全体のハッシュレートは難易度から逆算するとおよそ913 EH/s、直近7日平均でおよそ914 EH/s、直近3日平均ではおよそ943 EH/sです。ハッシュレートは直接観測できない推定値であり、平均化の窓が短いほど値は振れます(直近ブロックだけを基準にした瞬間推定では1 ZH/s=1,000 EH/sを超える場面もあり、集計元によっては910〜1,040 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月16日時点のmempool.spaceの直近1週間の集計(対象1,005ブロック)では、上位1プールが約23%、上位2プールの合計で約45%、上位3プールで約61%、上位5プールで約78%の採掘ブロックを占めています(この値は週ごとに数ポイント動くため、取得日とあわせて読む必要があります)。ただしプールはハッシュレートを所有しているわけではなく参加者はいつでも移動できること、ブロック構成の権限を採掘者側に戻す標準(Stratum V2など)の採用が進んでいることも、あわせて評価する必要があります。

とはいえ、プール単位の集中だけを見ていると、その先にいるマイナー層の集中を見落とします。Makarov と Schoar の推計(NBER Working Paper 29396、データは2020年末時点)では、上位10%のマイナーが採掘能力の90%を、上位0.1%(約50者)が半分近くを占めていました。さらに彼らは、この集中度が価格の急落局面と半減期の後に高まる——したがって51%攻撃のリスクもその時期に上昇する——と結論づけています。プールを移れる自由は、この層の集中を打ち消すものではありません。

4ネットワーク層の攻撃 — 情報を遮断する

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トランスポート、ブロック中継専用の接続などがあります。ただしインターネットの経路制御そのものはビットコインの外側にあり、プロトコル側で完全に制御できる問題ではありません。

5マイニング層の攻撃 — インセンティブ設計の隙

Selfish mining(利己的マイニング)は、Ittay EyalとEmin Gün Sirerが2013年に発表した論文「Majority is not Enough: Bitcoin Mining is Vulnerable」で提示された戦略です。見つけたブロックを意図的に隠して他の採掘者の作業を無駄にさせ、自分のシェア以上の報酬を得るというもので、論文は対策を講じなければブロック伝播での優位度に応じておよそ4分の1から3分の1のシェアでも成立しうると論じ、あわせてプロトコルの改良案を提示しました。

この「4分の1」という下限は、条件次第でさらに下がります。競合が起きたときに攻撃者のブロックを採用するノードの割合(論文の γ)が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 を直近のブロック高に設定し、巻き戻しに便乗されにくくする対策が採られています。

これらに共通するのは、プロトコルのバグではなくインセンティブ設計上の隙だという点です。修正にはコンセンサスルールの変更、すなわち広範な合意が必要になるため、既知の欠陥であっても対処に長い時間がかかります。

6量子コンピュータのリスク — 何が、いつ危ういのか

十分に大規模な誤り訂正付き量子コンピュータが実現すれば、Shorのアルゴリズムはsecp256k1の公開鍵から秘密鍵を回復する道を開きます。対象はECDSAだけでなく、TaprootのBIP 340 Schnorr署名も同様です。現時点でこの攻撃を実行できる公開実証はなく、資源見積もりはハードウェアや誤り訂正の仮定に強く依存します。

マイニング側では、GroverのアルゴリズムがSHA-256の理想化された探索回数を平方根に短縮します。ただしこれは、量子マイナーが即座に過半数のハッシュパワーを手に入れるという意味ではありません。誤り訂正、可逆回路、実行速度、電力、並列化、古典ASICとの競争まで含めて、実機全体で評価する必要があります。

露出の度合いは一様ではありません。P2PKとP2MSは公開鍵を出力に直接含み、P2TRもBIP 341の調整済みx-only公開鍵を出力に置くため、作成した時点から長時間にわたって露出します。P2PKHとP2WPKHは通常、P2SHとP2WSHはスクリプトの内容によりますが、いずれも支出するまで鍵をハッシュの背後に隠せます。ただし、支出時のmempool、同じ鍵のアドレス再利用、xpub・descriptorの漏えいも露出経路になるため、「未送金なら安全」とは言えません。

2026年8月23日時点のBIP 360 v0.12.1はDraftです。Pay-to-Merkle-Root(P2MR)は、長寿命の公開鍵を出力に置かないことで長時間の露出を緩和する提案ですが、それ自体が耐量子署名ではありません。通常の支出がmempoolで鍵を公開してから確認されるまでの短時間露出は解決しません。

NISTはML-DSA(FIPS 204)とSLH-DSA(FIPS 205)を耐量子署名規格として確定していますが、Bitcoinは代替署名をコンセンサスルールに採用していません。署名サイズ、検証コスト、ウォレット、既存UTXOの扱い、そして有効化には、いずれも検証と合意が必要です。これは技術問題であると同時にガバナンス問題であり、本サイトは実用攻撃の時期を断定しません。一次資料と長時間・短時間露出の詳細は「量子コンピュータはビットコインを壊すのか」を参照してください。

7最大の脆弱面はユーザー側にある

これまでに失われたビットコインの大部分は、プロトコルの破綻ではなく、利用者側の失敗によるものです。秘密鍵の紛失、バックアップの不備、フィッシング、マルウェア感染。暗号技術がどれほど強固でも、鍵を扱うのが人間である以上、そこが最も破られやすい層になります。

フィッシングとソーシャルエンジニアリングは最も一般的な入口です。偽のウォレットアプリ、偽のサポート窓口、シードフレーズの入力を求める偽サイト。ハードウェアウォレットを使っていても、シードフレーズを人間が画面に入力してしまえば保護は無効になります。

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年12月以降352件が記録されており、2025年の85件は年間の記録件数として過去最多です(2026年は8月上旬までに54件。いずれも2026年8月16日時点の実カウント)。ただし同氏自身が「この一覧は網羅的ではなく、多くの攻撃は公に報じられない」と注記しているとおり、実数はこれを上回ると見るべきです。対策は技術面(マルチシグ、時間ロック、保管場所の分散)と運用面(保有状況を公言しない)の両方にまたがります。

8資産を預けるリスク — 誰が鍵を持っているか

「Not your keys, not your coins(自分の鍵でなければ、自分のコインではない)」という原則は、リスクの所在を言い当てています。取引所やカストディアンに預けた瞬間、あなたが負うリスクはビットコインのプロトコルのリスクではなく、その企業の信用・内部統制・所在する法域のリスクに置き換わります。

歴史的に失われた資金の多くは、この層で失われました。Mt.GoxやFTXの破綻で消えた資産は、ビットコインの暗号やコンセンサスが破られた結果ではありません。個々の経緯は「ビットコインの事件と転換点」で詳しく扱っています。

一方で、自己管理には別種のリスクがあります。鍵の紛失、相続時に誰も取り出せなくなる問題、前節で触れた物理的な強要。現物ETFやカストディ型サービスは、自己管理のリスクを金融機関のカウンターパーティリスクに置き換える選択であり、リスクを消滅させるものではありません。

どちらが適切かは、金額の規模、技術的な習熟度、居住する法域、相続の計画によって変わります。本サイトは特定の保管方法を推奨せず、それぞれがどのリスクを引き受ける選択なのかを示すにとどめます。

9防御の仕組み — 遅いが厚い検証

ビットコインの脆弱性対応は、責任ある開示(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年の分岐を詳細に記録しているのは、バグの存在を隠さない運用が続いてきた結果です。

10未解決の構造課題

ネットワークの安全性を支えるマイナーの収入をどう確保するかは、最も長期的な論点です。新規発行分の報酬は2024年の半減期で3.125 BTCとなり、およそ4年ごとに半減して2140年頃にゼロになります。最終的にネットワークの安全性は取引手数料だけで支えられる必要がありますが、近年は手数料が採掘者収入の数%以下にとどまる期間が長く(静穏な時期には1%を下回る局面もあれば、ブロックへの記録需要が集中すれば一時的に跳ね上がります)、この移行が円滑に進むかどうかは実証されていません。

この問題に対しては、ブロックスペースへの需要が育つ、BTC建て収入の実質的な価値が上がる、ハッシュレートは価格と手数料に応じて自然に均衡する、といった見方が示されています。いずれも仮説であり、まだ検証されていません。本サイトは将来の価格やこの問題の結末を予測しません。

ブロックスペースの用途を巡る論争も続いています。2025年10月にリリースされたBitcoin Core v30では、OP_RETURN出力に対する標準リレーの既定上限(従来83バイト)が事実上撤廃されました(上限はノードごとに設定できます)。これはコンセンサスルールではなくリレーポリシーの変更ですが、ビットコインは金融取引の台帳なのか任意データの保存領域も許容するのかという価値観の対立を再燃させ、Bitcoin Knotsなど別の実装へ移行するノードも増えました。

開発リソースの集中も構造的な課題です。Bitcoin Coreを継続的に保守する開発者の数は限られており、その資金も少数の助成団体・企業に依存しています。プロトコルが分散していても、それを保守する人的資源は同じようには分散していません。

ノード運用のコストも静かな論点です。検証に必要なストレージや帯域の負担が上がるほど、自分で検証する人は減り、他者の言うことを信じるだけの利用者が増えます。これは技術的な脆弱性ではなく、社会的な脆弱性です。

ビットコインの17年は「バグがなかった歴史」ではなく、「バグが見つかり、公開され、修正されてきた歴史」です。ここに挙げた課題のいくつかは今も未解決で、専門家の評価も分かれています。強い主張と、それを支える根拠の強さを切り分けて読むこと——それが、賞賛にも否定にも寄らずにビットコインを理解する最も確実な方法だと考えています。

主な参照元

次に読む

ビットコイン批判論約24分
共有

引用情報 / Citation

Title
ビットコインの脆弱性 — 攻撃ベクトルと実際に起きたバグ
Source
ビットコイン図書館 (bitcoin.ne.jp)
Canonical URL
https://bitcoin.ne.jp/learn/vulnerabilities
Author
KK siiiiiixth
Topic
vulnerabilities
Published
Updated
最終検証 / Last verified
Editorial policy
https://bitcoin.ne.jp/editorial-policy
About
https://bitcoin.ne.jp/about
License
コンテンツ利用条件

運営者が権利を有する記事本文・独自図解・公開データは、引用、要約、索引作成、検索、RAG、機械分析、AIモデルの学習に利用できます。読者に内容を提示する場合は、技術的に可能な範囲で「ビットコイン図書館」と該当するcanonical URLを示してください。

変更履歴 / Revision history

  1. 量子リスクを一次資料で再検証。ECDSAとBIP 340 SchnorrのShorリスク、SHA-256探索のGrover高速化を分離し、P2PK・P2MS・P2TRの長時間露出とhashの背後にある出力の短時間露出を区別。時点依存の露出BTC推計と量子ビット固定帯を外し、BIP 360 v0.12.1のDraft範囲とNIST規格がBitcoin未採用であることを明記。
  2. ハッシュレートとプールシェアを2026年8月16日の実測値へ是正(取得日と平均化窓を明記)。Deloitte の量子脆弱UTXO推計に公表時点と再測定の幅を追記、レンチ攻撃件数を Lopp 一覧の実カウント(352件)へ更新、selfish mining の閾値下限と Makarov・Schoar のマイナー層集中を追加、OP_RETURN の旧既定を83バイトに統一。