ビットコインの残高は銀行口座のように一つの数字ではありません。複数のUTXO(未使用トランザクション出力)で構成されており、トランザクションを送信するたびにUTXOが消費され、新しいものが作成されます。
UTXOとは何か?
UTXO(Unspent Transaction Output)はビットコインブロックチェーンにおける「まだ使用されていないトランザクション出力」を意味します。簡単に言えば、ウォレットに入っている個々の「コイン」と考えてください。
例えば、ウォレットに1 BTCある場合、それは一つの「1 BTC」ではなく、0.5 BTC + 0.3 BTC + 0.2 BTCのように複数のUTXOの合計である可能性があります。
💡 核心概念:ビットコインには「口座残高」という概念がありません。残高は、そのアドレスに送られたすべての未使用トランザクション出力(UTXO)の合計です。
UTXOはどのように機能するのか?
ビットコイン取引を行う際、以下のプロセスが発生します:
- 入力(Input)選択:送金額をカバーできるUTXOを選択します。
- 出力(Output)生成:受取人への送金額とお釣り(change)という2つの新しい出力が作成されます。
- 消費されたUTXOの削除:使用されたUTXOは消滅し、新しく作成されたUTXOがブロックチェーンに記録されます。
インタラクティブシミュレーター
以下のシミュレーターでUTXOがどのように消費され、新しく作成されるかを体験してみてください。金額を入力して送信ボタンを押すと、UTXOブロックが選択され→消費され→お釣りUTXOが新しく生成される過程を視覚的に確認できます。
テストネットとは?
ビットコインテストネット(Testnet)は実際の価値のないBTCを使用してビットコインネットワークの機能をテストできる別のブロックチェーンです。
- 無料:テストネットBTCはFaucet(蛇口)から無料で入手できます。
- 安全:実際の資産損失のリスクがありません。
- 同一機能:メインネットと同じプロトコルで動作します。
⚠️ 注意:テストネットアドレスは「tb1」または「m/n」で始まり、メインネットアドレスとは異なります。テストネットアドレスに実際のBTCを送らないでください!
UTXO vs Accountモデル
イーサリアムは各アドレスに残高を直接格納するAccountモデルを使用しています。一方、ビットコインのUTXOモデルは:
- プライバシー:取引ごとに新しいアドレスを使用しやすく、追跡が困難です。
- 並列検証:各UTXOが独立しているため、トランザクションを並列に検証できます。
- 二重支払い防止:UTXOは一度しか使用できないため、構造的に二重支払いが不可能です。
まとめ
UTXOモデルはビットコインの最も基本的な設計原則の一つです。最初は馴染みがないかもしれませんが、上のシミュレーターで実際に体験することで自然に理解できるでしょう。ビットコイン開発者を目指す第一歩として、UTXOの動作原理をしっかり理解することをお勧めします。