Reading text-only. View on full site →

UTXOモデル (Unspent Transaction Output)

2026-03-10 · ideas · ja

ビットコインは口座残高ではなく、未使用トランザクション出力(UTXO)の合計で残高を管理する。コインモデルの原理とプライバシー・セキュリティ上の利点。


import Mermaid from '@components/shortcodes/Mermaid.astro'; import InfoBox from '@components/shortcodes/InfoBox.astro'; import CompareTable from '@components/shortcodes/CompareTable.astro'; import ChartBar from '@components/shortcodes/ChartBar.astro'; import ChartLine from '@components/shortcodes/ChartLine.astro'; import KidsQuiz from '@components/shortcodes/KidsQuiz.astro'; import KidsStory from '@components/shortcodes/KidsStory.astro'; import KidsCert from '@components/shortcodes/KidsCert.astro';

UTXO(Unspent Transaction Output、未使用トランザクション出力)は、ビットコインが残高を管理する根本的な方式である。銀行のように「口座残高」を記録するのではなく、まだ使用されていない個々の出力値の合計で残高を計算する。

0.5 BTC"] U2["UTXO B<br/>0.3 BTC"] end subgraph トランザクション TX["トランザクション"] end subgraph 出力 O1["受取人<br/>0.7 BTC"] O2["お釣り<br/>0.0999 BTC"] end U1 --> TX U2 --> TX TX --> O1 TX --> O2 FEE["手数料: 0.0001 BTC"] TX -.-> FEE style TX fill:#f7931a,stroke:#f7931a,color:#000 style FEE fill:none,stroke:none,color:#8b949e`} />

コインモデル

現金取引を思い浮かべると理解しやすい。財布に1万円札2枚と5千円札1枚があれば、残高は「25,000円」という数字ではなく、3枚の個別紙幣の合計である。ビットコインも同様だ。

ビットコイントランザクションが発生すると:

  1. 入力(Input):以前に受け取ったUTXOの一つ以上を「消費」する
  2. 出力(Output):新しいUTXOを生成する - 受信者への送金額と自分に戻るお釣り
  3. 消費されたUTXOは永久に消滅し、新しいUTXOが誕生する

例えば、0.7 BTCのUTXOを持つ人が0.3 BTCを送金する場合:

なぜアカウントモデルではないのか

イーサリアムは銀行のようなアカウント残高モデルを使用する。ビットコインが一見複雑に見えるUTXOモデルを選択した理由:

UTXO管理の実践

UTXOの数とサイズは手数料に直接影響する:

Sparrow Walletのようなデスクトップウォレットは、UTXOを個別に確認・管理できる機能を提供する。

関連する概念

Read on the full site: https://learn.txid.uk/ja/ideas/utxo/