PR

ビットコインのUTXOとは?お釣りの仕組みと手数料を計算例で解説

ビットコインのUTXOとお釣り・手数料の仕組み 基礎知識

ビットコインを0.1BTC送っただけなのに、履歴に自分宛ての送金が表示された。あるいは、残高が十分あるのに、思ったより送金手数料が高い。そんな経験につながるのが、ビットコインの「UTXO」という仕組みです。

UTXOは、過去の取引で作られ、まだ使われていない出力のことです。ビットコインの残高は銀行口座のような一つの数字として直接保存されるのではなく、利用できるUTXOの集まりから計算されます。

UTXOを理解すると、「お釣りが自分に戻る理由」「送金手数料が同じ金額でも変わる理由」「ウォレットに表示される残高と取引履歴の関係」が分かります。

この記事では、架空のBTC取引を使い、入力・出力・お釣り・手数料を数字で追いかけます。ウォレットを使いこなすための考え方に集中し、送金画面の操作手順や価格予想は扱いません。

先に結論

  • UTXOは「まだ使われていない取引の出力」。ウォレット残高の材料になる。
  • 送金では、選んだUTXOを入力として使い、受取人への出力と必要に応じたお釣りの出力を新しく作る。
  • 手数料は「入力の合計−出力の合計」。お釣りを指定しない場合、残額が大きな手数料になることがある。
  • 送金額だけでなく、入力数や取引データの大きさによってネットワーク手数料が変わる。
  • 取引所のアプリ内残高と、自分で秘密鍵を管理するウォレットのUTXO管理は区別する。

UTXOとは?ビットコインの残高をつくる単位

ウォレット残高を構成する未使用出力UTXO

UTXOは「Unspent Transaction Output」の略で、日本語では「未使用トランザクション出力」と呼ばれます。「まだ次の取引の入力として使われていないBTCのまとまり」と考えると分かりやすいでしょう。

たとえば、友人から0.03BTCを受け取り、その後に別の相手から0.07BTCを受け取ったとします。両方が利用可能な出力として残っているなら、ウォレットは合計0.10BTCの残高を表示できます。しかし、内部的には0.10BTCという一個の塊に必ず統合されているわけではありません。

Bitcoinの開発者向け資料では、各取引は一つ以上の入力と出力から構成され、ある取引の出力が次の取引の入力として使われると説明されています。出力は使用されるまでUTXOとして残り、使用済みになった出力をもう一度使うことはできません。

「送金履歴」と「残高」は同じデータを違う角度から見ている

ウォレットの履歴は、いつどのような取引に関係したかを示します。残高は、そのウォレットが現在使えると判断するUTXOを合算した結果です。履歴に過去の受取が残っていても、その受取でできたUTXOがすでに使われていれば現在の残高には含まれません。

逆に、一つの取引で新しいお釣りUTXOができれば、送金後にもその出力を将来の支払いへ使えます。ウォレットはこうした処理を裏側で管理するので、一般利用者が毎回UTXOの番号を入力する必要はありません。

銀行口座の残高と何が違う?

銀行口座のイメージでは「口座残高10万円から3万円を引くと7万円」と考えます。ビットコインでは、使うUTXOの全額をいったん入力に取り込み、受取人への支払いと、お釣りなどの新しい出力を作ります。

これは「紙幣で支払ってお釣りを受け取る」イメージに近いですが、実際に紙幣が移動するわけではありません。ブロックチェーンに記録されるのは、以前の出力を参照する入力と、新たな出力です。

比較 銀行口座のイメージ BitcoinのUTXOモデル
残高 口座に紐づく金額として管理 利用できる複数の未使用出力を合算
送金 口座残高から金額を差し引く 既存のUTXOを入力にし、新しい出力を作る
お釣り 通常は意識しない 新しいUTXOとして自分側に戻ることがある
手数料 銀行の料金体系による 取引データ量と手数料率などが関係

UTXOと「お釣り」はどう動く?0.13BTCの計算例

送金先への出力と自分のお釣り、手数料の関係

ここからの数量はすべて仕組みを理解するための架空例です。特定ウォレットの現在の手数料や、BTC価格を示すものではありません。

あるウォレットに、次の2つの利用可能なUTXOがあるとします。

  • UTXO A:0.08BTC
  • UTXO B:0.05BTC
  • 利用可能な合計:0.13BTC

このウォレットから相手へ0.10BTCを支払い、ネットワーク手数料に0.0002BTCを使うと仮定します。この2つのUTXOを入力に選んだ場合、出力は次のように構成できます。

区分 数量 意味
入力A 0.08BTC 以前の未使用出力
入力B 0.05BTC 以前の未使用出力
入力合計 0.13BTC 今回使うUTXOの合計
相手への出力 0.10BTC 支払い
自分へのお釣り出力 0.0298BTC 次に利用できる新しいUTXO
手数料 0.0002BTC 入力と出力の差額

0.13BTC=0.10BTC+0.0298BTC+0.0002BTCです。0.08BTCと0.05BTCのUTXOはこの取引で使用済みになり、新しいお釣りの0.0298BTCがウォレットに残ります。

「0.13BTCを全部相手に送って、相手が0.0298BTCを返している」わけではありません。相手への出力と自分へのお釣り出力が、同じ一つの取引の中で同時に作られています。

手数料はどこから差し引かれている?

この例では入力合計0.13BTCに対して、出力合計が0.1298BTCです。差額0.0002BTCがネットワーク手数料になります。

Bitcoinでは基本的に、入力合計−出力合計=取引手数料という関係です。手数料を別の「手数料アドレス」に送るのではありません。ブロックを作るマイナーが、ルールに従ってその手数料を受け取れる仕組みです。

0.0002BTCは20,000sat(サトシ)です。1BTC=100,000,000satなので、BTCの小数とsat表示を取り違えないことも大切です。

お釣りが別のアドレスへ送られることはある?

あります。自己管理ウォレットの中には、受取に使ったアドレスとは別のお釣り用アドレスを新しく作るものがあります。これはアドレスの使い回しを減らし、取引を追跡されやすくする情報を減らすためです。

履歴やブロックエクスプローラーを見て、知らないアドレスへの大きな出力があると心配になるかもしれません。しかし、その一部はウォレットが自分で管理するお釣り先である場合があります。

ただし、見覚えのないアドレスを無条件に「自分のお釣り」と判断してはいけません。ウォレットの表示や取引の詳細で確認し、不正送金が疑われるときは公式サポートや信頼できる専門家へ相談してください。

複数のUTXOはいつまとめられる?ウォレットの選択処理

一つのウォレットに複数のUTXOがある場合、どれを取引の入力に使うかはウォレットの選択方式に左右されます。これを「コイン選択」と呼びます。

たとえば、0.50BTCのUTXOが1つあって0.11BTCを送る場合、必要な手数料を差し引き、お釣りを作ることができます。手数料を0.0001BTCと仮定すると、お釣りは0.3899BTCです。

0.50−0.11−0.0001=0.3899BTCとなります。お釣りは小さな出力に限らず、元の入力の大部分になる場合もあります。

別のウォレットでは、0.06BTCと0.05BTCなど複数の入力を組み合わせるかもしれません。同じ0.11BTCの支払いでも、入力の数や種類、出力の数によって取引データ量が違うため、手数料が変わり得ます。

なぜ少額のUTXOが多いと手数料が上がる場合がある?

Bitcoinのネットワーク手数料は、単純に送金額に比例して決まるものではありません。取引が占めるデータ量を、仮想バイト(vB)などで表し、1vB当たり何satを支払うかで考えることができます。

入力が増えると、以前のUTXOを参照する情報や署名関連のデータが増えやすくなります。そのため、小さなUTXOを多数まとめて使う取引は、一つのUTXOを使う取引より大きくなる場合があります。

例えば、手数料率が仮に10sat/vBで、取引サイズが150vBなら1,500sat、650vBなら6,500satです。これは計算例であり、特定の入力数なら必ずこのサイズになるという意味ではありません。

架空の取引 仮想サイズ 手数料率 計算上の手数料
構成が小さい取引 150vB 10sat/vB 1,500sat
構成が大きい取引 650vB 10sat/vB 6,500sat

同じ0.01BTCを送る場合でも、UTXOの構成や採用するアドレス・署名方式が異なれば費用は変わります。手数料率自体もネットワークの混雑により変動します。

「少額を何度も受け取ると送金コストが増える」は本当?

多数の少額UTXOを後でまとめて使う場合、入力が多くなるためコストが増えやすいのは事実です。しかし、少額の受取が多い人すべての送金手数料が必ず高くなるわけではありません。

財布にあるUTXOの数量、利用する入力の組み合わせ、送金先の数、選択時の手数料率などで変わります。ウォレットが自動で入力を選んでくれる場合もあれば、利用者が選択できる機能を持つ場合もあります。

手動選択に対応するウォレットでも、初心者が無理に設定を変更する必要はありません。まずはウォレットが表示する見積額と、実際の取引結果を比較することから始めましょう。

UTXOが多いときの「統合(コンソリデーション)」とは?

送金手数料に関係する入力数、データ量と混雑

UTXOの統合とは、複数の小さなUTXOを入力として使い、自分が管理する少数の新しいUTXOへまとめ直すことです。送金先も自分になる取引ですが、ブロックチェーン上の取引なのでネットワーク手数料はかかります。

例えば、0.01BTCのUTXOを10個持っているとします。合計0.10BTCですが、後の支払いで全10個を入力に使うと取引が大きくなるかもしれません。そこで、小さな入力をまとめる取引を行う考え方があります。

ただし、統合すると手数料を支払うだけでなく、以前は別々だったUTXOが同じ管理者のものだと推測されやすくなる場合があります。統合すれば必ず得をするわけではありません。

手数料が低い時間帯にまとめると必ず節約できる?

将来の送金コストを抑えられる可能性はありますが、統合取引自体に費用がかかります。将来のネットワーク手数料率も予測できないため、確実な節約方法とはいえません。

例えば、今の統合に2,000satを払い、将来の取引で3,000sat程度の差が出るなら合計では有利になる可能性があります。しかし、後からほとんど使わなければ統合費用だけが残ります。これは理解のための仮定であり、実際の節約額ではありません。

また、どのUTXOが同じ所有者かを推定されるプライバシー上の不利益も考慮する必要があります。統合機能を提供しないウォレットで、無理に複雑な操作を行う必要はありません。

手数料や残高の表示で混乱しやすい3つのケース

ケース1:残高0.10BTCを全部送ろうとすると不足する

ウォレットに0.10BTCがあり、ちょうど0.10BTCを受取人へ送りたいとします。しかし、ネットワーク手数料に0.0001BTCが必要なら、利用できる入力が0.10BTCしかない状態で受取人へ0.10BTCを渡すことはできません。

入力と出力の合計が合わないためです。「全額送金」機能があるウォレットでは、手数料を差し引いた0.0999BTCを送るように調整する場合があります。

実際の手数料は固定ではないため、ウォレットが表示する受取予定数量を確認してください。サービス側の出金手数料とネットワーク手数料が別の場合もあります。

ケース2:取引履歴に送金額より大きな「入力」がある

0.03BTCの支払いのために、0.10BTCのUTXOを入力として使う場合があります。このとき履歴の詳しい画面には、0.10BTCを使ったように見える情報が表示されることがあります。

しかし、相手へ0.10BTCが全部渡ったという意味ではありません。受取人への出力、お釣りへの出力、手数料を分けて確認する必要があります。

ウォレットによっては、入力・出力を見やすく要約するため、ブロックエクスプローラーと数字の見え方が異なることがあります。

ケース3:送金したあと残高が増えたり減ったり見える

送金直後に、お釣りの新しいUTXOが未承認扱いになったり、ウォレットが利用可能残高と確認待ち残高を分けて表示したりする場合があります。

Bitcoin Coreにも、信頼できる残高、未承認の残高、採掘報酬の成熟待ち残高を分ける仕組みがあります。残高欄の増減が不自然に見える場合でも、画面の集計条件が違うだけの場合があります。

ただし、残高が予想と違うときは、利用するウォレットの公式仕様と取引記録を確認してください。不正送金や未着金を単に「お釣りの表示の問題」と決めつけないことが重要です。

UTXOはどのように識別される?TxIDと出力番号

一つの取引には複数の出力が存在する場合があります。そのため「取引IDだけ」で特定のUTXOを完全に指定することはできません。

BitcoinのUTXOは、基本的に過去の取引ID(TxID)と、出力番号(vout)の組み合わせで参照されます。出力番号は0から始まります。

たとえば架空の取引に2つの出力があり、0番が受取人への0.10BTC、1番がお釣りの0.0298BTCだった場合、それぞれ別の出力として区別されます。どちらの番号になるかは、取引を作るウォレットの実際の構成によって異なります。

Bitcoin Coreの「listunspent」という機能では、未使用出力をTxID、vout、数量、承認数などとともに確認できます。一般のウォレットでも、UTXOの詳細表示に対応するものがあります。

TxIDを使えば、対応するブロックエクスプローラーで取引を検索できます。確認する際は、TxIDだけでなく、その取引がブロックに取り込まれているかも見ておきましょう。

UTXO方式とイーサリアムの残高方式は何が違う?

BTCのUTXO方式は、すべての暗号資産に共通する仕組みではありません。イーサリアムでは、アカウントに紐づく残高や状態を使って取引を処理します。

たとえばETHの送金では、一般に送信元アカウントの残高が減り、受信先アカウントの残高が増えるという考え方で説明できます。Bitcoinのように、過去の特定の出力を複数選んで入力に使う方式ではありません。

項目 Bitcoin Ethereum
主なモデル UTXO アカウント型
使う残高 未使用出力の集合 アカウントに記録された状態
お釣り出力 発生する場合がある Bitcoin型のお釣りUTXOはない
ネットワーク費用 取引サイズと手数料率など ガス使用量やガス価格など

したがって、BTCのお釣りの仕組みを、そのままETHやERC-20トークンへ当てはめないようにしましょう。Ethereumのレイヤー2も、BitcoinのUTXOとは別の技術的な論点です。

取引所に預けたBTCでもUTXOを気にする必要はある?

暗号資産交換業者にBTCを預けている場合、一般利用者の画面に表示される残高は事業者の内部台帳で管理されることがあります。利用者が自分のUTXOを選べるとは限りません。

取引所から外部へBTCを送る場合、事業者が複数利用者の送金をまとめてブロックチェーン上で処理することもあります。そのため、自分が指定した送金数量と、ブロックエクスプローラーに表示されるすべての入力・出力が一対一で対応するとは限りません。

送金元の画面では、手数料が定額など事業者の料金ルールに従う場合もあります。自己管理ウォレットのネットワーク手数料の計算を、そのまま交換業者の出金手数料へ当てはめることはできません。

取引所から別のサービスへ送るときの具体的な操作や宛先確認については、仮想通貨の送金方法と注意点を参考にしてください。

UTXOに関するよくある質問

Q. UTXOはBTCを買うたびに一つ増えますか?

必ずではありません。自己管理ウォレットがオンチェーンでBTCを受け取ると新しい出力が作られる場合がありますが、一つの取引に複数の出力があり得ます。取引所内の売買は、利用者ごとに新しいUTXOを作る処理とは限りません。

Q. 0.1BTCを持っているなら、UTXOも0.1BTCが一つですか?

そうとは限りません。0.03BTCと0.07BTCの2つのUTXOかもしれませんし、もっと多くの小さなUTXOの合計かもしれません。残高だけでは内訳は分かりません。

Q. お釣り用アドレスは勝手に作られても大丈夫?

ウォレットが自動で新しいお釣りアドレスを作るのは一般的な設計の一つです。ただし、未知の出力が自分のものかどうかは利用中のウォレットの情報と照合してください。アドレスを見ただけでは所有者を断定できません。

Q. UTXOを使うと残高が消えるのですか?

入力として選ばれたUTXOは使用済みになりますが、支払いの残額が新しいお釣りUTXOとして戻る場合があります。支払い金額と手数料を除いた残高が、原則として残ります。

Q. 送金額が大きいほどネットワーク手数料も高くなりますか?

単純な比例関係ではありません。Bitcoinのネットワーク手数料には取引データの大きさや手数料率が関係します。大きな金額でも入力が少ない取引もあれば、少額でも入力が多い取引もあります。

Q. UTXOを統合すればいつでも得ですか?

必ずしも得ではありません。統合自体に手数料が必要で、複数のUTXOが同じ所有者に属すると推測されやすくなる場合もあります。将来の利用予定と費用を踏まえて考える必要があります。

Q. UTXOと送金先のBTCアドレスは同じものですか?

異なります。アドレスは一般に受取先を指定するために使い、UTXOはまだ使われていない取引出力です。一つのアドレスに複数のUTXOが関係する場合もあります。

Q. お釣りの数量が少なすぎるとどうなりますか?

非常に小さな出力は、将来使うための費用に見合わない場合があります。ウォレットはネットワークの中継条件や取引の構成を踏まえ、小さなお釣り出力を作らず手数料へ含めるなどの調整をする場合があります。具体的な境界は出力形式や条件によって異なります。

Q. UTXOを知らないとBTCを送れませんか?

通常のウォレットを使うだけなら、UTXOの仕組みを詳しく知らなくても送金できる場合がほとんどです。ただし、手数料や履歴の不思議な表示を理解したい場合には、UTXOの考え方が役立ちます。

まとめ|UTXOが分かるとBTCのお釣りと手数料が理解しやすい

Bitcoinの残高は、利用可能な未使用出力を組み合わせて計算されます。送金では、過去のUTXOを入力として使い、受取人への出力と必要に応じたお釣りの出力を作ります。

例えば、0.08BTCと0.05BTCのUTXOで合計0.13BTCを入力にし、0.10BTCを相手へ支払い、手数料0.0002BTCを使えば、お釣りは0.0298BTCです。この関係を理解すれば、履歴に自分宛ての出力が表示されても、すぐに二重送金と誤解せずに確認できます。

手数料は送金額だけで決まらず、取引の構成とネットワークの混雑も影響します。一般的なウォレットはUTXOを自動管理するため、初心者が無理に手動調整する必要はありません。

新規発行の仕組みや採掘者の報酬については、ビットコインの半減期も参考にしてください。なお、このページの数値はすべて説明用の架空例であり、現在のネットワーク手数料や投資成果を示すものではありません。

コメント

タイトルとURLをコピーしました