ビットコインで送金を行うと、そのトランザクションはP2Pネットワーク上を伝播し、最終的にブロックに記録されることで確定します。しかし「送金した」と「確認された」の間には、複数の技術的なプロセスが存在します。このプロセスを理解することは、手数料の設定を最適化したり、トランザクションが遅延する原因を把握したりするうえで重要です。
本記事では、トランザクションがブロードキャストされてから複数の確認を得るまでの全プロセスを解説します。mempool(未確認トランザクションプール)の仕組み、マイナーの手数料選択ロジック、RBF(Replace-By-Fee)やCPFP(Child-Pays-For-Parent)などの手数料引き上げ手法、そして確認回数と安全性の関係まで体系的に解説します。
日常のビットコイン取引をより賢く行うために、この仕組みをしっかりと理解しておきましょう。
1. トランザクションの構造とブロードキャスト
1-1. UTXOモデルとトランザクションの構造
ビットコインはUTXO(Unspent Transaction Output、未使用トランザクション出力)モデルを採用しています。銀行口座のような「残高」という概念ではなく、過去に受け取ったが未使用のアウトプット(UTXO)を消費して新しいトランザクションを作成します。
トランザクションは主にインプットとアウトプットで構成されます。インプットは消費するUTXOへの参照(前のトランザクションIDとアウトプット番号)と、それを使用する権限を証明する署名データです。アウトプットはビットコインの送り先アドレスと金額です。インプットの合計金額からアウトプットの合計金額を引いた差額がマイナーへの手数料となります。Segwit(BIP 141)の導入以降、署名データはwitness領域に分離されており、トランザクションサイズの計算方法(vbytes)が変わっています。
1-2. トランザクションのブロードキャスト
署名済みトランザクションをネットワークに送信することをブロードキャストと呼びます。ウォレットソフトウェアは接続しているノードにトランザクションを送信し、そのノードがさらに接続するピアに伝播させます。このフラッディング(flooding)方式によって、数秒〜数十秒でネットワーク全体にトランザクションが伝播します。
ブロードキャストの方法にはいくつかの選択肢があります。自分のフルノードから送信する方法が最もプライバシーが高いです。取引所や外部サービスのAPIを使う方法もありますが、送信元IPアドレスなどの情報がサービス提供者に渡ります。プライバシーをより重視する場合は、Torネットワーク経由でのブロードキャストを検討してみましょう。
2. mempoolの仕組みと管理
2-1. mempoolとは何か
mempool(memory pool)は、各ノードが保持する「未確認トランザクションのプール」です。ブロードキャストされたトランザクションはまずmempoolに入り、マイナーによってブロックに選ばれるのを待ちます。重要な点として、mempoolは各ノードごとに独立して存在し、「グローバルなmempool」というものはありません。ノードによって保持しているトランザクションが異なる場合もあります。
mempool内のトランザクションは手数料率(satoshi/vbyte)でランク付けされます。手数料率が高いトランザクションほどマイナーに優先的に選ばれ、低いものは後回しになります。mempool.spaceなどのウェブサービスを使うと、現在のmempoolの混雑状況をリアルタイムで確認でき、手数料設定の参考にできます。
2-2. mempoolの制限とトランザクション排除
各ノードのmempoolにはサイズ制限があります。Bitcoin Coreのデフォルトは300MB(bitcoin.confの「maxmempool」で変更可能)です。mempoolが満杯になると、手数料率の低いトランザクションから順に排除されます。排除されたトランザクションは「消えた」わけではなく、再ブロードキャストすることで再度mempoolに入れることができますが、手数料を引き上げないと再び排除されます。
また、トランザクションには有効期限はありませんが、Bitcoin Coreはデフォルトで336時間(14日)以上mempoolに留まったトランザクションを削除します。この期限が切れる前にブロックに取り込まれない場合、そのトランザクションは無効になることはなく、UTXOは使用されていない状態に戻ります。
3. マイナーによるトランザクション選択
3-1. 手数料率によるブロック構築
マイナー(またはマイニングプール)は、mempoolからトランザクションを選択してブロックに詰めます。ブロックにはサイズ制限(SegWit導入後はweightで最大4,000,000 weight units ≒ 1MB〜4MB相当)があるため、利益を最大化するために手数料率の高い順にトランザクションを選ぶのが合理的です。
ただし、単純に手数料率の高い順ではなく、CPFP(Child-Pays-For-Parent)を考慮した選択が行われます。親トランザクションの手数料が低くても、その親を使う子トランザクションの手数料が高ければ、親と子をセットで選択することでマイナーの収益を高められます。このためマイナーは「パッケージ」単位での手数料率計算も行います。
3-2. 手数料市場の動向
ビットコインの手数料市場は需要と供給によって決まります。ネットワークが混雑している時期(相場急変時・Ordinals/BRC-20などの新たなユースケース爆発時など)は手数料率が急騰します。2023年5月にはBRC-20トークンの取引殺到により手数料が500 sat/vbyteを超える場面もありました。逆に閑散期には1〜2 sat/vbyteという低手数料でも短時間で確認される場合があります。
手数料の推定には各種ツールが使えます。Bitcoin Coreの「estimatesmartfee」RPCコマンドは、指定したブロック数以内に確認される確率の高い手数料率を推定します。mempool.spaceは現在のmempoolを可視化し、各手数料帯のトランザクション分布と推定確認時間を示してくれます。
4. RBFとCPFP:手数料の引き上げ手法
4-1. RBF(Replace-By-Fee)の仕組みと使い方
RBF(Replace-By-Fee)は、未確認トランザクションをより高い手数料のバージョンで置き換えるメカニズムです。BIP 125で規定されており、トランザクション作成時にシーケンス番号を0xFFFFFFFD以下に設定することでRBF対応であることを示します(opt-in RBF)。
RBFを使うには、元のトランザクションと同じインプットを使い、手数料を引き上げた新しいトランザクションをブロードキャストします。RBF対応ノードは新しいバージョンをmempoolに受け入れ、古いバージョンを置き換えます。注意点として、確認前のトランザクションはRBFで置き換えられる可能性があるため、未確認状態での取引を「確定」とみなすことのリスクがあります。多くのウォレット(BitcoinウォレットのほかSparrow、Electrum等)はRBFに対応しています。
4-2. CPFP(Child-Pays-For-Parent)の活用
CPFP(Child-Pays-For-Parent)は、手数料の低い未確認トランザクション(親)から受け取るはずのビットコインを即座に使う子トランザクションを作成し、その子に高い手数料を設定することで、マイナーが親子セットを一緒に選ぶよう促す方法です。
CPFPはRBFと異なり、受信側でも実行可能です。自分宛のトランザクションの手数料が低くて遅れている場合、その未確認残高を使う新しいトランザクション(たとえば自分の別アドレスへの送金)を高手数料で作成することで、マイナーが親子まとめてブロックに入れるインセンティブを与えられます。ただし、この場合も未確認のアウトプットを使うことになるため、ウォレットのcoin control機能が必要な場合があります。
5. トランザクション確認数と安全性
5-1. 確認数の意味と必要数の目安
トランザクションが「確認(confirmation)」されるとは、そのトランザクションを含むブロックがチェーンに追加されることです。1確認目の後、さらにブロックが重なるごとに確認数が増えます。確認数が多いほど、そのトランザクションを覆す(二重支払い攻撃を成功させる)のに必要なコンピュータリソースが指数関数的に増加します。
用途別の推奨確認数の目安として、一般的な取引所では入金確認に1〜3確認を要求することが多いです。高額取引では6確認(約1時間)が広く使われる基準です。理論的に安全とされる確認数は取引金額と攻撃コストのトレードオフで決まりますが、現実的な攻撃コストを考えると6確認で十分なケースがほとんどです。ライトニングネットワークでチャネルを開設する際も最低1〜3確認が必要です。
5-2. ゼロ確認(0-conf)取引のリスク
未確認状態(0確認)のトランザクションをそのまま取引完了とみなす「0-conf(ゼロ確認)」取引は、リスクを伴います。RBFが有効なトランザクションは確認前に手数料を上げて宛先を変更できるため、受け取り側は同じUTXOを使った別トランザクションが後からブロックに取り込まれるリスクがあります。
ただし、少額の現地決済などでは利便性のために0-confが実用されることもあります。RBFフラグが立っていない(non-RBF)トランザクションで、mempoolでの競合がない場合は、現実的な二重支払いリスクは低いとも言われますが、原則として未確認トランザクションを取引完了とみなすべきではないと考えられます。
6. トランザクションの可視性とプライバシー
6-1. チェーン上の透明性と匿名性の課題
ビットコインのトランザクションはブロックチェーン上に永久に記録されており、誰でも閲覧可能です。block explorerを使えば、任意のアドレスの送受信履歴、残高、関連トランザクションを確認できます。これは透明性という点では優れていますが、プライバシーの観点では課題があります。
一度アドレスと個人が紐付けられると(たとえばKYC必須の取引所での出金アドレス)、過去のすべての取引履歴を遡って追跡される可能性があります。チェーン分析企業(Chainalysis、Ellipticなど)はこのような追跡技術を持ちます。プライバシーを改善する手法としては、アドレスの使い回しを避ける、CoinJoinを使う、ライトニングネットワーク経由で決済するなどが挙げられます。
6-2. Taproot・Schnorr署名によるプライバシー改善
2021年11月に有効化されたTaproot(BIP 340/341/342)は、プライバシーと効率性の両面でトランザクション設計を大きく改善しました。Schnorr署名の導入により、マルチシグのトランザクションが単一署名と区別できなくなり(鍵集約:MuSig2)、複雑なスマートコントラクト条件を使っても外部からは通常のトランザクションと見分けがつかなくなります。これにより、マルチシグウォレットやLightningチャネルクローズのトランザクションが以前より見分けにくくなっています。
7. ライトニングネットワークとのオンチェーン連携
7-1. ライトニングチャネルの開設と閉鎖
ライトニングネットワークは、ビットコインのオンチェーントランザクションを使ってチャネルを開設し、チャネル内ではオフチェーン(P2Pの直接通信)で即座に決済を行うレイヤー2技術です。チャネルの開設と閉鎖の際にはオンチェーントランザクションが発生します。
チャネル開設トランザクション(Funding Transaction)は通常の送金と同様にmempoolを経由してブロックに記録されます。適切な手数料を設定して早期に確認を得ることが、素早いチャネル開設には重要です。チャネルの閉鎖方法には「協調クローズ(mutual close)」と「強制クローズ(force close)」があり、強制クローズはCSV(OP_CHECKSEQUENCEVERIFY)による時間的制約のため、資金を使えるまでに数ブロック〜数百ブロック待つ必要があります。
7-2. オンチェーンとオフチェーンの手数料比較
ライトニングネットワークを使うと、小額決済においてオンチェーントランザクションよりも大幅に低い手数料で送金できます。オンチェーン手数料は混雑時に数百〜数千円相当になることもありますが、ライトニング手数料は通常1ミリサトシ(0.001 sat)以下のルーティング手数料が中心です。ただし、チャネル開設・閉鎖コスト(オンチェーン手数料)を考慮すると、長期的・継続的な利用でない場合は必ずしもコスト効率が良いとは限りません。
まとめ
ビットコインのトランザクションは、作成・署名・ブロードキャスト後、各ノードのmempoolに入ってマイナーによる選択を待ち、ブロックに取り込まれることで確認されます。手数料率が高いほど優先的に処理されるため、mempool混雑状況に応じた適切な手数料設定が重要です。遅延したトランザクションはRBFやCPFPで手数料を引き上げることができます。確認数は安全性の指標であり、高額取引では6確認以上を待つことが推奨されます。これらの仕組みを理解することで、より賢く効率的なビットコイン取引が可能になります。
よくある質問(FAQ)
- Q. トランザクションを送ったのに何時間も確認されないのはなぜですか?
- A. 主な原因は手数料率が低すぎることです。mempoolの混雑時には多くのトランザクションが待機しており、手数料率の高い順に処理されます。mempool.spaceで現在の混雑状況を確認し、RBFが有効なら手数料を引き上げるか、受信側であればCPFPを試みることを検討してみましょう。
- Q. RBFはすべてのウォレットで使えますか?
- A. すべてのウォレットで使えるわけではありません。RBFに対応しているウォレットはSparrow Wallet、Electrum、Blue Walletなどがあります。取引所やウォレットによってはRBFに対応していないか、UIからの操作ができない場合があります。お使いのウォレットのドキュメントを確認してみましょう。
- Q. 1確認と6確認では安全性にどれくらい違いがありますか?
- A. 1確認でも一定の安全性はありますが、大規模な採掘リソースを持つ攻撃者であれば、低確認数のトランザクションを覆すことが理論上可能です。6確認以降は確認数が増えるごとに覆すコストが指数関数的に増加するため、現実的な攻撃は事実上不可能と考えられています。
※本記事は情報提供を目的としており、投資を推奨するものではありません。暗号資産への投資は元本割れのリスクがあります。投資判断はご自身の責任で行ってください。