中級者用語を調べる
UTXOとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
UTXOは「まだ使われていない取引の出力」のことで、ビットコインはこの単位で残高を管理します。口座の数字を書き換えるのではなく、受け取った未使用の塊を消費して新しい塊を作る方式です。残高とは、自分が使えるUTXOの合計にすぎません。
要点
- 未使用の取引出力という「お金の塊」の単位
- 残高は保有するUTXOの合計として計算される
- 支払うと元のUTXOは全額消費され、お釣りが新たに作られる
- 二重支払いは「同じUTXOを2回使えない」ことで防がれる
定義
過去の取引の出力のうち、まだどの取引の入力にも使われていないもの。これを入力として消費し、新しい出力を作ることが送金にあたる。
現金の紙幣に近い考え方です。1万円札で3000円の買い物をするとき、札を裂いて渡すことはできず、1万円を渡して7000円のお釣りを受け取ります。UTXOも同じで、0.5BTCのUTXOから0.2BTCを送るときは、0.5BTC全体を入力として消費し、相手に0.2BTC、自分に0.3BTC弱を戻す出力を作ります。
ノードは「現在存在するUTXOの集合」を保持しています。取引の検証は、指定された入力がこの集合にまだ残っているかを見るだけで済むため、過去の全履歴を読み直す必要がありません。同じUTXOを指す取引が2つ来た場合、先にブロックに入った方だけが有効になります。
この方式は、1つの取引に複数の入力と出力を自由に並べられるため、並列に検証しやすいという利点があります。一方で、少額のUTXOが大量に溜まると、それらをまとめて使う取引はデータ量が大きくなり、手数料が高くつきます。ビットコインのほか、ライトコインやカルダノが同系統の方式を採っています。
注意点
- · 手数料は金額ではなくデータ量で決まるため、小さなUTXOが多いと送金コストが上がる
- · お釣りは新しいアドレスに送られることが多く、残高が消えたように見えても失われてはいない
- · アカウント型チェーンと違い「残高を直接書き換える」概念はないため、同じ感覚で設計すると誤る