学ぶ
ビットコインの二重支払い(ダブルスペンド)とは?なぜ防げるのかを図解

結論
ビットコインの二重支払い(ダブルスペンド)とは、同じ1BTCを二度以上使おうとする不正のことです。デジタルデータは簡単にコピーできるため、通常なら「送ったはずのお金」を同時に別の相手にも送れてしまいます。ビットコインはこれを、すべての取引を1本の公開台帳(ブロックチェーン)に時系列で並べ、多数のマイナーが正しさを競って記録することで解決しました。取引はブロックに取り込まれ「承認(confirmation)」が積み重なるほど、後から書き換えるのに必要な計算量が指数関数的に増え、事実上巻き戻せなくなります。これが、銀行のような中央管理者なしに「デジタルデータなのに二重コピーできないお金」を成立させた核心です。
この記事のポイント
- 二重支払い問題=デジタルデータが複製可能なゆえに「同じお金を二度使える」根本課題
- ビットコインは全取引を1つの公開ブロックチェーンに並べ、順序を全員が合意することで解決
- 承認0(ゼロコンフ)の取引は覆せる余地があり、高額決済ほど承認待ちが安全
- 攻撃には Race/Finney/51% など種類があるが、承認を重ねるほど成功確率は激減する
そもそも「二重支払い問題」とは
物理的な現金は、渡した瞬間に自分の手元から消えるので二度使えません。ところがデジタルのデータは、写真ファイルのように完全なコピーを無限に作れます。もしお金がただのデータなら、同じ「1コイン」を A さんにも B さんにも送信でき、受け取った両者が「自分のものだ」と主張できてしまう。これが二重支払い(double-spending)問題です。
従来この問題は、銀行やカード会社という中央の帳簿係が「この人の残高はいくら、今この支払いで減った」と一元管理することで防いできました。ビットコインが画期的だったのは、信頼できる管理者を置かずに同じことを実現した点です。仕組みの全体像はビットコインの仕組みで解説しています。
ビットコインはどう防ぐのか(図解)
ビットコインでは、世界中の取引がまずメンプールという待機所に集まり、マイナーがそこから取引を選んでブロックにまとめます。
`` [あなたの送金] ↓ 署名して放送 [メンプール(未承認の待機列)] ← /ja/articles/what-is-mempool ↓ マイナーが取り込む [ブロックN] → [ブロックN+1] → [ブロックN+2] … 一度並んだ順序は全ノードが共有・検証 ``
ポイントは3つです。
- 順序の合意:同じコインを使う2つの取引がぶつかった場合、先にブロックへ取り込まれた方だけが有効になり、もう一方は「残高不足」として無効化される。
- 改ざんコスト:各ブロックは前のブロックのハッシュを含む鎖状構造。過去を書き換えるには、それ以降のブロックすべてを世界中の正直なマイナーより速く作り直す必要がある。この計算競争がマイニングです。
- 確率的な確定:後続ブロック(承認)が増えるほど、追い抜くのに必要な計算量が跳ね上がり、逆転はほぼ不可能になります。
承認数と「確率的な不可逆性」
取引がブロックに入ると承認数「1」、その後ろにもう1つブロックが積まれると「2」…と増えます。ビットコインの承認(confirmation)は「絶対」ではなく確率で語られる確定です。
ナカモト・サトシの原論文(ホワイトペーパー)第11章は、攻撃者が追い抜く確率が承認数とともに指数関数的に下がることを計算で示しました。目安として、攻撃者が全体の約10%の計算力しか持たない場合、6承認まで待てば逆転成功率はおよそ0.1%以下とされ、これが業界で「6承認=実質確定」と言われる根拠です(※攻撃者の計算力が大きいほど必要承認数は増えます)。
| 承認数 | 状態の目安 | 想定される用途 |
|---|---|---|
| 0(ゼロコンフ) | 未確定・覆せる余地あり | 少額・信頼できる相手のみ |
| 1 | ブロックに取り込み済み | 中程度の金額 |
| 3 | かなり安全 | 一般的な決済 |
| 6 | 実質的に不可逆(慣例) | 取引所の入金反映など高額 |
注意
本記事は仕組みの教育を目的とした解説であり、投資や送金の助言ではありません。承認数の目安(6承認など)は慣例であり、金額や相手・状況によって必要な待機数は変わります。高額の受け取りでは、利用する取引所やウォレットが定める承認要件を必ず確認してください。数字は「〜時点の目安」であり、最新は各公式情報で確認を。
ゼロコンフ(0承認)の危険と主な攻撃
承認が0の取引は、まだどのブロックにも固定されていないため、理論上は書き換えられます。代表的な二重支払い攻撃を浅く俯瞰します(詳細な手口・防御は個別の関連記事で扱います)。
| 攻撃名 | 狙う状況 | 概要 |
|---|---|---|
| Race(レース)攻撃 | 0承認 | 店には支払い取引を、ネットワークには自分宛の矛盾する取引を同時に流し、後者が先に承認されるのを狙う |
| Finney(フィニー)攻撃 | 0承認+自分がマイナー | 自分宛の取引を含むブロックを事前に採掘して隠し持ち、別の支払いをした直後に隠しブロックを公開する |
| 51%攻撃 | 承認済みでも | ネットワークの過半数の計算力を握り、チェーンを書き換えて確定済み取引すら覆す。ビットコインでは莫大な設備・電力が必要で現実性は極めて低い |
いずれも承認を待つほど成功が難しくなるのが共通点です。特に Race/Finney は0承認を前提とするため、承認を1つでも待てば大半は無力化されます。51%攻撃は承認済みでも理論上は可能ですが、ビットコイン規模のネットワークでは必要コストが天文学的で、成功しても自らの資産価値を毀損するため経済的な合理性がありません。
よくある質問
Q. 二重支払いは実際に起きたことがありますか? A. ビットコインのメインネットで、承認済み取引が二重支払いで覆された事例は基本的に確認されていません。過去に問題になったのは主にハッシュレートの小さい別のブロックチェーンでの51%攻撃です。ゼロコンフ(0承認)を悪用した試みは技術的には存在します。
Q. 何承認まで待てば安全ですか? A. 慣例では高額なら6承認が目安ですが、金額・相手・利用サービスの規定によって変わります。少額かつ信頼できる相手なら1承認でも実用上は十分なことが多いです。詳しくは承認とはを参照してください。
Q. なぜ「絶対に不可逆」と言えないのですか? A. ビットコインの確定は数学的な「確率」で保証されるためです。承認が増えるほど逆転確率は0に限りなく近づきますが、厳密にはゼロにはなりません。実務上は無視できる水準です。
Q. メンプールに滞留している取引は二重支払いされますか? A. メンプールで待機中の取引は未承認なので、理論上は矛盾する取引に置き換えられる可能性があります。承認が付いて初めて台帳に固定されます。
参考・出典
- Bitcoin: A Peer-to-Peer Electronic Cash System(ナカモト・サトシ 原論文)
- Confirmation - Bitcoin Wiki
- Irreversible Transactions - Bitcoin Wiki
- How Bitcoin solves the double-spend problem - River Learn
- Double-Spend Attacks on Bitcoin - Gemini Cryptopedia
投資にあたっての注意
本記事は情報提供を目的としたものであり、投資助言ではありません。暗号資産は価格変動やハッキング、紛失等のリスクがあります。投資判断はご自身の責任で、余裕資金の範囲で行ってください。税制・規制は変更される場合があるため、最新情報は必ず公式の一次情報をご確認ください。
Sources
FAQ
- 二重支払いは実際に起きたことがありますか?
- ビットコインのメインネットで承認済み取引が二重支払いで覆された事例は基本的に確認されていません。過去に問題になったのは主にハッシュレートの小さい別チェーンの51%攻撃です。ゼロコンフ(0承認)を悪用した試み自体は技術的には存在します。
- 何承認まで待てば安全ですか?
- 慣例では高額なら6承認が目安ですが、金額・相手・利用サービスの規定で変わります。少額かつ信頼できる相手なら1承認でも実用上十分なことが多く、絶対的な基準ではありません。
- なぜ「絶対に不可逆」と言えないのですか?
- ビットコインの確定は数学的な確率で保証されるためです。承認が増えるほど逆転確率は限りなく0に近づきますが厳密にはゼロにはならず、実務上は無視できる水準になります。
- メンプールで待機中の取引は二重支払いされますか?
- メンプールで待機中の取引は未承認のため、理論上は矛盾する取引に置き換えられる可能性があります。ブロックに取り込まれ承認が付いて初めて台帳に固定されます。
本記事は情報提供のみを目的とし、投資・金融・取引の助言ではありません。価格は参考値で古い場合があります。投資判断はご自身の責任で。