本記事にはアフィリエイト広告(PR)を含む場合があります。
ビットコインのブロックチェーンには、「このアドレスの残高は0.5BTC」という記録がどこにも存在しません。記録されているのは、過去の送金によって生まれた「まだ使われていないお釣り」の集まりだけです。これがUTXO(Unspent Transaction Output、未使用トランザクションアウトプット)と呼ばれるもので、ウォレットに表示される残高は、自分の秘密鍵で使えるUTXOをすべて足し合わせた計算結果にすぎません。
この構造を知らないままだと、いくつかの現象が不可解に見えます。1万円分を送ろうとしたら手数料の見積もりが前回の何倍にもなっていた。少額の受け取りを繰り返していたら送金画面で警告が出た。送った覚えのない自分宛ての送金が履歴に並んでいる。いずれもUTXOモデルから生まれる必然的な結果で、仕組みを理解すれば事前に予測して手を打てます。
この記事では、口座残高モデルとの違いから、UTXOがトランザクションのサイズと手数料を決める仕組み、そして「UTXO統合」をいつ実行すべきかまでを整理します。読み終えるころには、手数料が跳ね上がる条件を自分で判断できるようになり、混雑していない時期に先回りして備えられるようになります。執筆にあたっては、ビットコインのトランザクション構造に関する技術文書と、主要ウォレットが公開しているコインコントロール機能の仕様を突き合わせて確認しました。順に見ていきましょう。
ビットコインの「残高」は計算結果にすぎない
UTXOを理解する最短の道は、財布の中の現金を思い浮かべることです。財布に「1万3千円」という数字が書かれているわけではありません。入っているのは1万円札1枚、千円札3枚という個別の紙幣で、1万3千円はそれを数えた結果です。ビットコインもこれとまったく同じ構造をしています。
ブロックチェーンに記録されているのは、「誰々宛てに0.3BTC」「誰々宛てに0.05BTC」といった個別のアウトプットです。そのうちまだ使われていないものがUTXOで、ウォレットの残高表示とは自分が使えるUTXOの合計額のことです。
UTXOは分割して使えない
現金との類似はもう一歩先まで続きます。1万円札で3千円の買い物をするとき、紙幣を切り分けることはできません。1万円札をまるごと渡して、7千円のお釣りを受け取ります。UTXOも同じで、一度使うときは全額をまるごと消費するという決まりがあります。
0.3BTCのUTXOを持っている人が0.1BTCを送る場合、実際に起きているのは次のような処理です。0.3BTCのUTXOをまるごと消費し、送り先へ0.1BTC、自分へ0.2BTC弱(手数料を差し引いた額)という2つの新しいアウトプットを作る。この自分宛ての戻り分が「おつりアウトプット」で、履歴に見慣れない自分宛ての送金が並ぶ理由がこれです。送ったつもりのない取引に見えますが、正常な動作です。
口座残高モデルとの違い
イーサリアムをはじめ、多くの後発ブロックチェーンは口座残高モデル(アカウントモデル)を採用しています。こちらは銀行口座と同じで、アドレスごとに残高という数字が直接記録され、送金のたびにその数字が加減算されます。両者を並べると性格の違いがはっきりします。
| 観点 | UTXOモデル(ビットコイン) | 口座残高モデル(イーサリアムなど) |
|---|---|---|
| 残高の記録 | 存在しない。UTXOの合計として算出 | アドレスごとに数値として記録 |
| 送金の実体 | 古いUTXOを消費し新しいUTXOを作る | 残高の数値を書き換える |
| 手数料の決まり方 | 消費するUTXOの数に大きく左右される | 処理の複雑さ(計算量)に応じて決まる |
| 並列での検証 | UTXOが独立しているため並列処理しやすい | 順序への依存が強い |
| プライバシー | アドレスを使い分けやすい | 1つのアドレスに履歴が集約されやすい |
| 複雑な処理 | 状態を持つ処理は不得手 | スマートコントラクトに適する |
どちらが優れているという話ではなく、設計思想の違いです。ビットコインは価値の移転を確実かつ検証しやすくすることに寄せ、イーサリアムは状態を持つプログラムの実行に寄せました。イーサリアム側の設計思想はイーサリアムのカテゴリで個別に扱っています。
UTXOの数がそのまま手数料になる
ここが実務上いちばん効いてくる部分です。ビットコインの手数料は送金額とは無関係で、トランザクションのデータサイズ(vByte、仮想バイトという単位で測ります)に単価を掛けて決まります。そしてデータサイズは、主に消費するUTXOの数で膨らみます。
サイズの内訳をざっくり把握する
アドレス形式によって前後しますが、目安は次のとおりです。
- トランザクション全体の基礎部分:10vByte前後
- インプット(消費するUTXO)1つあたり:おおむね68〜148vByte
- アウトプット(送り先とおつり)1つあたり:おおむね31〜43vByte
インプットがアウトプットの2倍から4倍ほど重いことが分かります。つまり、まとまった1つのUTXOから送るトランザクションと、小さなUTXOを20個かき集めて送るトランザクションでは、同じ金額を送っていても後者のデータ量が数倍から十数倍になります。手数料の差は送金額ではなく、資金の細かさから生まれるというのがUTXOモデルの要点です。
少額の受け取りを繰り返すと「ダスト」が溜まる
マイニングの報酬分配、投げ銭、テスト送金、キャンペーンの配布など、小口の入金を重ねると、ウォレットには極小のUTXOが積み上がっていきます。この極小のUTXOは俗にダスト(塵)と呼ばれます。
やっかいなのは、混雑時にはダストを1つ消費するための手数料が、そのダストの金額自体を上回る場合があることです。そうなると帳簿上は残高に含まれているのに、実質的に動かせない資金になります。残高は足りているのに送金できない、という状況の多くはこれが原因です。
身に覚えのない極小入金には触らない
ダストがらみで注意したいのが、追跡目的でごく少額を無差別に送りつける手口です。受け取った側がそれを他の資金と一緒に使うと、複数のアドレスが同じ持ち主のものだと外部から推定できてしまいます。心当たりのない極小入金は、後述するコインコントロール機能で「使わない」印を付けて放置してください。関連する手口は詐欺の見分け方ガイドでまとめています。
UTXO統合をいつ実行するか
細かいUTXOが増えてきたら、それらをまとめて自分宛てに送り直し、少数の大きなUTXOに整理する作業が有効です。これをUTXO統合(コンソリデーション)と呼びます。手数料の前払いによって、将来の送金コストを下げる作業だと考えてください。
実行に適したタイミング
- ネットワークの混雑が落ち着き、手数料の単価が低い時期
- すぐに送金する予定がなく、着金までに時間の余裕がある
- ウォレット内のUTXO数が数十個規模に増えてきた
統合は急ぎの作業ではないので、単価が下がるまで待てるのが強みです。低い単価を指定すれば承認まで時間はかかりますが、自分宛ての送金なので誰も困りません。逆に、混雑のピークに慌てて実行するのは本末転倒です。手数料の単価は常に変動するため、実行前に必ず現在の水準を確認してください。
統合の前に確認したい2つの副作用
1つ目はプライバシーです。複数のUTXOを1つのトランザクションでまとめると、それらが同一人物のものだと外部から推定しやすくなります。用途ごとに資金を分けて管理している場合は、まとめる範囲を用途内にとどめる配慮が要ります。
2つ目は記録です。自分のウォレット内での移動であっても、取引履歴には送金として記録され、ネットワーク手数料が発生します。税務上の扱いは自己保有内の移動か否かで変わるため、取引履歴には統合の記録であることを必ず残しておいてください。損益計算ツールが自己宛て送金を自動判定できないケースもあります。クリプタクトのような計算ツールを使う場合も取り込み後の確認は必要で、考え方の全体像は仮想通貨の税金ガイドで整理しています。具体的な申告方法は国税庁の公表資料や税理士にご確認ください。
UTXOモデルの利点と弱点
手数料の話だけを聞くと不便な仕組みに思えますが、この設計には明確な狙いがあります。
利点として大きいのは検証のしやすさです。各UTXOが独立しているため、複数のトランザクションを並行して検証でき、二重使用(同じ資金を二度使うこと)の判定も「そのUTXOがまだ未使用かどうか」を見るだけで完結します。世界中の誰でも手元の機器で全履歴を検証できるという、ビットコインの根幹はこの単純さに支えられています。プライバシー面でも、受け取りごとにアドレスを変えれば履歴を分散させやすくなります。
弱点は、状態を持つ複雑な処理に向かないことと、資金が細切れになりやすいことです。前者はスマートコントラクトを軸にしたブロックチェーンとの棲み分けにつながっており、後者はまさに本記事で扱ってきた手数料の問題です。設計の背景をもう少し掘り下げたい方は技術解説カテゴリもご覧ください。
今日からできる3つの対策
- コインコントロール機能を有効にする:どのUTXOを使うか自分で選べる機能で、多くのデスクトップ用ウォレットに搭載されています。使いたくないダストを除外でき、手数料の予測も立てやすくなります
- 取引所からの引き出しは回数を減らし、1回あたりの金額をまとめる。引き出し回数がそのままUTXOの数になります。bitbankなどの取引所は出金手数料の体系を公式サイトで公開しているので、あわせて確認しておくと無駄がありません
- 手数料が落ち着いている時期に、年に数回のUTXO統合を習慣にする。実行の記録は日付と目的つきで残しておく
この3つを回しておけば、いざ送金したいときに手数料で足を止められる場面はほとんどなくなります。取引所での購入から自己管理への移行まで通しで確認したい方は、仮想通貨の始め方ガイドが参考になります。
よくある質問(FAQ)
取引所に預けたままなら、UTXOを気にする必要はありませんか
日常的には気にする必要はありません。取引所の口座内では自社の帳簿で残高を管理しており、ブロックチェーンへの記録は伴わないためです。UTXOが関係してくるのは、外部のウォレットへ引き出すときや、外部から入金するときです。ただし、取引所の出金手数料には取引所側のUTXO管理コストが反映されている面もあります。
UTXOの数はどこで確認できますか
コインコントロール機能を備えたウォレットであれば、送金画面から一覧で確認できます。自分のアドレスをブロックチェーン閲覧サイトで検索し、未使用のアウトプットを数える方法もありますが、複数アドレスを使い分けている場合はウォレット側で見るほうが確実です。
UTXO統合をすると資産額は減りますか
統合そのものでネットワーク手数料が差し引かれるため、保有量はわずかに減ります。これは将来の送金手数料を下げるための前払いという位置づけです。近いうちに送金の予定がないなら、単価の低い時期に済ませておくほうが総額では有利になりやすいとされています。
ダストは放置しても問題ありませんか
資産として消えるわけではないので、放置しても差し支えありません。むしろ、身に覚えのない極小入金については、他の資金と混ぜないよう意図的に放置するのが安全です。手数料の単価が大きく下がった時期に、自分で受け取ったダストだけをまとめて統合するという運用が現実的です。
免責事項:本記事は一般的な情報提供を目的としており、投資助言ではありません。最新の情報は公式情報をご確認ください。