不可逆性とは:確認済みのブロックチェーン取引はなぜ取り消せないのか

不可逆性とは:確認済みのブロックチェーン取引はなぜ取り消せないのか

不可逆性とは、ビットコインの取引がいったんブロックに取り込まれる(これが「確認済み」の意味)と、その上にブロックが積み重なるたびにその取引を取り消すことがますます難しくなるよう設計されている性質のことです。こうした取引を「不可逆」あるいは「取り消すことができない」と呼ぶのは、設計上の特徴を簡潔に表現したものであり、絶対的な保証を意味するわけではありません。ビットコインのプロトコル文書、すなわちネットワークが合意したルール集には、確認済みの取引を取り消す機能は一切記載されていません。

ビットコインにおいて、ブロックとは取引をまとめたひとかたまりの単位であり、ブロックチェーンとは、それらすべてのブロックを記録した共有の台帳です。

ビットコインの「確認」とは何か、取引はどのようにして確認を得るのか?

ビットコインの取引は、作成から確認に至るまで4つの段階を経ます。

  1. 作成と署名。 ウォレット、つまりユーザーがBTCを送るために使うソフトウェアが取引を組み立て、送信者の秘密鍵で署名します。
  2. ブロードキャストと待機。 ブロックチェーンノード、すなわちビットコインネットワークに接続するコンピュータが、取引を他のノードへ中継し、その間取引は未確認のまま待機します。
  3. ブロックへの取り込み。 マイニング事業者、つまりビットコインマイナーを稼働させてブロックチェーンにブロックを追加する個人や企業が、取引をブロックに取り込みます。これにより取引は1回の確認を得ます。
  4. 確認の積み重ね。 マイニング事業者がその後も新しいブロックを追加していくたびに、取引を含むブロックの後に続く各ブロックが、さらに1回ずつ確認を加えていきます。

秘密鍵とは、送信者だけが保持すべき秘密情報です。それを用いて作られるデジタル署名は、鍵の保有者がその取引を承認したことを示す暗号学的な証明です。取引は、自分が使う元(インプット)となる出力(アウトプット)を指定します。出力とは、取引が受取人に割り当てるBTCの金額のことです。インプットとは、新しい取引が使用する以前の出力のことです。

メモリプール、すなわちまだブロックに取り込まれていない取引の待機場所を保持する各ノードは、自身のルールとポリシーに照らして取引が有効だと判断すれば、そこに取引を保持することができます。ノードのポリシーとは、そのノードだけが適用する追加のルール群であり、ノードごとに異なることがあります。

プロトコルのレベルでは、取引の手数料は、その取引を取り込んだマイニング事業者に支払われます。手数料率が高い、つまり取引のサイズに対して手数料が高いほど、より早く取り込まれる可能性は高まりますが、特定の取り込み時間を保証するものではありません。

確認スコアは、ある取引を取り消したり変更したりするために、最有力チェーン上でいくつのブロックを改変する必要があるかを示す数値です。最有力チェーンとは、プルーフ・オブ・ワークが各ブロックに要求する計算労力である「ワーク(作業量)」が最も多いチェーンのことです。スコアが1以上の取引は確認済みとされ、このスコアは「確認数」とも呼ばれます。

確認済みのビットコイン取引は、なぜ取り消しにくいよう設計されているのか?

ビットコインの不可逆性は、まずハッシュの連結構造に支えられています。ハッシュとは、ある関数がデータから計算する固定サイズの数値です。各ブロックヘッダー(ブロックの先頭にあるデータ項目群)は、直前のブロックヘッダーのハッシュを保持しています。ある取引を変更すると、その取引を含むブロックのハッシュが変わってしまうため、次のブロックに記録されたコピーと一致しなくなり、その不一致はそれ以降のすべてのブロックに波及していきます。

プルーフ・オブ・ワークは、このハッシュの連結にコストを付加します。あるブロックが有効とみなされるのは、そのヘッダーのハッシュを数値として読んだときに、ターゲット(ネットワークのルールが定める、有効なハッシュのしきい値)以下である場合に限られます。そうしたハッシュを見つけるには繰り返しの計算が必要であり、その計算こそが「ワーク」です。ある取引を変更するということは、そのブロックおよびそれ以降のすべてのブロックについて計算をやり直すことを意味し、必要なワークはブロックが追加されるたびに増えていきます。

ネットワーク難易度とは、有効なブロックを見つけることがどれほど困難かを示す尺度であり、ネットワークは2,016ブロックごとにこれを調整します。2026年10月時点で、難易度は140兆を超えています。難易度に約43億(2の32乗)を掛け合わせると、1つのブロックを見つけるために必要なハッシュ数の期待値が概算でき、この難易度では平均して5,000垓(5×10の23乗)回を超えるハッシュ計算が必要になります(1垓=10の20乗、ここでの「セクスティリオン」は10の21乗)。

2026年10月時点で、確認数が3の取引を変更するには、3つのブロックを改変する必要があるため、平均で1.5×10の24乗回(1セプティリオン=10の24乗)を超えるハッシュ計算が必要になります。これらの数値は、難易度が約17%下落しても成り立つよう切り下げて算出されています。あくまで規模感を示すためのものであり、攻撃コストや待機時間の目安を示すものではなく、また取り消しの可能性を完全に否定するものでもありません。

ビットコインのフルノードは、ここに第三の層を加えます。フルノードは最もワーク量の多いチェーンに従い、かつ自らルールを検証するからです。ノードは、競合するチェーンの方がより多くのワークを持つ場合に限り、そちらへ切り替えるよう設計されています。これを「リオーガナイゼーション(再編成)」と呼び、切り捨てられたブロックは「ステイル(無効化)」、つまりそのノードの最有力チェーンの一部ではなくなった状態になります。フルノードは各ブロックを、ネットワーク全体にとってブロックや取引が有効かどうかを決めるルールであるコンセンサスルールに照らして自ら検証するため、ワークが積み重なっていたとしても、ルールに違反するブロックは拒否されるよう設計されています。

ビットコインにおいて、不可逆性の限界はハッシュレート、すなわちビットコインマイナーが計算するハッシュの合計値(1秒あたり)を誰が支配しているかに左右されます。ハッシュレートの過半数を握る主体がいれば、直近のブロックを書き換え、自身が行った直近の支払いを取り消すことも理論上は可能であり、確認数をいくら重ねてもその可能性を完全には排除できません。この仕組みは取り消しを「難しくする」よう設計されたものであり、「不可能にする」ものではありません。51%攻撃と二重支払いに関する項目ではその仕組みについて、不変性(イミュータビリティ)に関する項目では、記録された履歴を変更することが非常に困難であるよう設計されているという、より広い性質について扱っています。

未確認の取引は、置き換えたり破棄したりできるのか?

未確認の取引は、ハッシュの連結やプルーフ・オブ・ワークによる保護をまだ受けていません。なぜなら、まだどのブロックにも取り込まれていないからです。そのため、ノードのメモリプールに留まっている間は、置き換えられたり破棄されたりすることがあります。Replace-by-Fee(RBF)とは、送信者がより高い手数料を支払うバージョンで未確認の取引を置き換えられるとするノードのポリシーであり、ノード側がその置き換えを受け入れることがあります。また、ノードは一定時間が経過した場合やプールが満杯になった場合に取引を破棄することもあり、これらはいずれもノードごとのローカルな設定です。

2つの取引が同じ出力を使おうとすると、それらは「競合」します。競合する取引は、未確認の取引を追い越して先に確認されることがあります。いずれか一方が確認されれば、もう一方はもはや有効とはみなされず、ノードによって取り除かれます。未使用トランザクション出力(UTXO)の項目では、単一の取引レベルでの二重支払いについて扱っています。

確認されないままノードのプールから消えた取引は、「取り消された」わけではありません。その取引が使おうとしていた出力は、それを実際に使う取引がブロックに取り込まれるまではブロックチェーン上で消費されたことにはならないため、破棄された取引があっても送信者のBTCは元の場所にとどまることになります。

確認済みのビットコイン取引は取り消せるのか?

ビットコインでは、確認済みの取引は取り消しにくいよう設計されており、プロトコルの文書には送信者やノードがそれを取り消す方法は記載されていません。確認済みのビットコイン取引が実際に取り消せるかどうかは、取り消しに必要なワーク量と、誰がハッシュレートを支配しているかに左右されます。

ビットコインにおける「返金」とは、新しい別の取引のことです。ある出力は、その使用条件(その出力を誰が使えるかを定めるルール)を満たせる者であれば誰でも使うことができます。したがって、BTCを返すという行為は、受取人側が送る新たな取引にほかなりません。

誤った宛先や誤った金額でBTCを送ってしまった場合、それはユーザー側の過失であり、プロトコルが自動的に訂正してくれるものではありません。ノードは、ある取引がルール上有効かどうかだけを検証します。すなわち、使われるインプットが未使用であること、出力の合計がインプットの合計を超えないこと、そして各インプットがそれが使う出力の使用条件を満たしていることです。ルールが検証するのは有効性であって、送信者が本来誰に支払うつもりだったかではありません。そのため、有効ではあるが間違った宛先に送られた取引も、確認されてしまう可能性があります。

ビットコインのアドレスにはチェックサム、すなわち入力ミスを検出するためのエラー検出コードが含まれることがありますが、形式として有効でありながら誤っているアドレスは、このチェックをすり抜けてしまいます。プロトコルの文書には確認済み取引を取り消す方法が記載されていないため、送信者は署名を行う前に宛先と金額を確認しておく必要があります。

ユーザーとネットワークの間に立つサービスは、独自の返金規定や紛争解決ルールを設けている場合があります。ただし、それらはそのサービス固有のものであり、ビットコインのプロトコルの一部ではありません。

仲介者が紛争を調停する決済システムにおいては、その手続きを通じて支払いが取り消されることがあり、クレジットカード会社が一定の場合に請求を取り消す「チャージバック」はその一例です。ビットコインのプロトコル文書には、これに相当する仕組みは記載されていません。

各段階において、取引を変化させうる要因は何か?

段階

意味

変化しうる要因

それを制限する要因

未確認(ステップ1・2)

まだどのブロックにも取り込まれておらず、確認スコアは1未満。ノードは自身のメモリプールにそれを保持できる

より高い手数料のバージョンに置き換えられたり、ノードによって破棄されたり、先に確認される競合取引に追い越されたりすることがある

置き換えや破棄はノードごとのポリシーや設定によるため、ノードごとに挙動が異なりうる

確認1回(ステップ3)

1つのブロックに取り込まれた状態

そのブロックを含まない、よりワーク量の多い競合チェーンにノードが切り替わる可能性がある(リオーガナイゼーション)

競合チェーンはそのブロック分のワークをやり直す必要があり、またノードはルールに違反するブロックを拒否するよう設計されている

確認数の積み重ね(ステップ4)

取引を含むブロックの上に、さらにブロックが積み重なった状態

ハッシュレートの過半数を握る主体であれば、直近のブロックを書き換えることが理論上は可能

ブロックが追加されるたびにやり直すべきワーク量が増えていくため、取り消しはますます困難になるよう設計されている

不可逆性が意味しないこととは?

不可逆性は、ある取引が合法であることや、支払いが正当であったことを意味するものではありません。プロトコルが検証するのは、取引がルールに従っているかどうかであって、その取引がなぜ送られたのかではありません。あるサービスの返金規定、紛争解決、そして法的な救済手段はいずれもプロトコルの外側にあるものであり、本項目はそれらによって資金を取り戻せるかどうかについて何も述べていません。

不可逆性は、ネットワークが攻撃を受けえないことを意味するものでもありません。ハッシュレートの過半数を握る主体がいれば、直近のブロックを書き換えることは理論上可能であり、だからこそ「取り消しが難しくなる」ことは「取り消しが絶対にできなくなる」ことを意味しないのです。

ここで説明したビットコインの設計は、2026年10月時点のものです。他のネットワークについては何も述べておらず、将来の予測でもありません。

2025年11月27日

GoMiningニュース

興味があるかもしれない: