ホーム/ガイド/ブロックチェーン百科事典/基本概念/未使用トランザクションアウトプット (UTXO)とは?

未使用トランザクションアウトプット (UTXO)とは?

2023.06.13 MEXC
共有


ブロックチェーンとは、その本質的には、分散型のデータベースや台帳を指します。では、「ブロックチェーン台帳」はどのように記録を保持しているのでしょうか?現在のブロックチェーンプロジェクトでは、2つの主流の台帳モデルがあります。アカウントバランスモデル(代表例:イーサリアム)と、未使用トランザクションアウトプット (UTXO)モデル(代表例:ビットコイン)です。UTXOを理解することは、ビットコインのブロックチェーンの取引ロジックを理解するのに役立ちます。

UTXOとは、Unspent Transaction Outputの略で、ビットコインのトランザクションにおける基本的な単位として理解できます。例えば、ボブがビットコインの支払いを受け取って使わなかった場合、そのビットコインはUTXOになります。UTXOモデルは、UTXOが一回限りの紙幣のようなものであるという点で、ウォレットを持っているようなものです。各UTXO(紙幣)は特定の金額を表し、すべてのUTXO(紙幣)を合計することで、ユーザーの残高を決定することができます。

各トランザクションでは、UTXOの整数倍が使用されます。例えば、1 UTXO、2 UTXOは使用できますが、0.5 UTXOのような少数は使用できません(紙幣を半分にすることはできないように)。トランザクションが発生すると、既存のUTXO(古い紙幣)は消費され、新しいUTXO(新しい紙幣)が作成されます。例えば:朝、コーヒーとペイストリーを買うために5ドル払います。レジに10ドル札を渡します。この10ドル札は1つのUTXOとして表されますが、店員に渡されます。店員から5ドルのお釣りを受け取りますが、この時点で新しいUTXO(新しい5ドル札)を受け取ります。

このトランザクションがUTXOモデルを使用するブロックチェーン上で発生した場合、どのように動作するでしょうか?これを理解するために、3つの送金シナリオと例を抽象化してみましょう。ここでは簡潔に説明するためにマイナーの手数料は省略します。

1.二者間のトランザクション


ボブが10 BTCを受け取ったと仮定しましょう。そうすると、彼のビットコインアドレスに関連付けられた10 BTCのUTXOがあります。今、ボブはアリスに2 BTCを送金する必要があります。この場合、10 BTCのUTXOは全体として消費されます(古い紙幣は使い果たされます)。2 BTC(新しい紙幣)がアリスに送られ、残りの8 BTC(新しい紙幣)がお釣りとしてボブに返されます。言い換えれば、元々10 BTCは1つのUTXOとして存在していましたが、トランザクションの過程でこのUTXO(古い紙幣)は破壊されて存在しなくなりました。代わりに、2つの新しいUTXO(新しい紙幣)が作成されました。1つはボブのもので、値は8 BTC(ボブに返されたお釣り)です。もう1つはアリスのもので、値は2 BTCです。将来的には、アリスはこのUTXOを残高として他人に送金することができます。


アリスが上記の2 BTCをフランクに送金したい場合、アリスが2 BTCを二重支払いしないようにするために(これは有名な二重支払い攻撃に似ています)、マイナーはUTXOが他のトランザクションで使用されていないことを確認する必要があります。もし、このUTXOが以前のトランザクションで既に使われていた場合、マイナーはこの新しいトランザクションの実行を拒否します。

2.複数者間のトランザクション


理解を深めるために、2つの例を見てみましょう。 (1) 1つのアドレスから3つのアドレスへの送金 (2) 3つのアドレスから1つのアドレスへの送金。これら4つのアドレスをA、B、C、Dと呼びましょう。シナリオ①はAからB、C、Dへの送金、シナリオ②はA、B、CからDへの送金です。初期状態では、アドレスAに10 BTCがあり、B、C、Dには0 BTCがあります。

シナリオ(1)では、アドレスAは最初に10 BTCのUTXOを持ち、それぞれのアドレスB、C、Dに2 BTCずつ送金したいとします。



まず、Aからの元々の10 BTCのUTXOは全体として消費され、それぞれのアドレスB、C、Dに2 BTCが送られます。残りの4 BTCはお釣りとしてAに返されます。この時点で、以前の10 BTCのUTXOは存在しなくなり、4つの新しいUTXOに置き換えられます。そのうち1つはAのもので値は4 BTCであり、残りの3つはB、C、Dのものでそれぞれ値は2 BTCです。送金後、アドレスAには4 BTCのUTXOが1つ、アドレスBには2 BTCのUTXOが1つ、アドレスCには2 BTCのUTXOが1つ、アドレスDには2 BTCのUTXOが1つあります。

次に、シナリオ(2)を見てみましょう。A、B、 Cがそれぞれ2 BTCをDに送金します。

アドレスAにある4 BTCのUTXOは全体として消費されます。そのうち2 BTCがDに送金され、残りの2 BTCが自分自身にお釣りとして与えられます。アドレスBにある2 BTCのUTXOはDに送金されます。アドレスCにある2 BTCのUTXOもDに送金されます。送金が行われた後、アドレスAには2 BTCのUTXOが1つあります。アドレスBには何もありません。アドレスCにも何もありません。アドレスDには2 BTCのUTXOが4つあります(そのうち1つはシナリオ①で行われた送金から残っており、残りはシナリオ②から来ています)。

3.二者間のトランザクションで一方が複数のUTXOを持っている場合


Aが複数のUTXOを持っていると仮定しましょう。それらは1 BTC UTXO、2 BTC UTXO、3 BTC UTXO、4 BTC UTXOです。BはBTCを持っていません。この時点で、AはBに2.5 BTCを送金する必要があります。UTXOモデルはどのように動作するでしょうか?


この時点で、アドレスAにある2 BTCのUTXOは直接Bに送金されます。1 BTCのUTXOは全体として消費されます。そのうち0.5 BTCがBに送金され、残りの0.5 BTCがお釣りとして返されます。送金後、アドレスAにはまだ0.5 BTCのUTXO、3 BTCのUTXO、4 BTCのUTXOがあります。Bには2 BTCのUTXOと0.5 BTCのUTXOがあります。

UTXOモデルを利用する暗号資産では、ユーザーが誤って間違ったコントラクトアドレスを入力した場合、資金が回収不能になる可能性が非常に高いです。これは、UTXOはトランザクションの送信状態に関する追加情報を保存しないためであり、暗号資産のトランザクションが完了すると、対応するUTXOはデータベースに存在しなくなります。本質的には、システムはあなたがすでに資金を使ったと仮定し、この行為は元に戻すことができません。さらに、コントラクトアドレスが互換性がないか間違っている場合、誤った入力につながる可能性があります。これは、受取人が正しく暗号資産を受け取ることができないことを意味します。その結果、暗号資産が回収不能になる可能性が非常に高いです。

これにより、以下のことがわかります。 ① UTXOは最終状態ではなく、トランザクションの履歴を記録します。 ② 各UTXOは特定の量のビットコインを表し、すべてのUTXOの合計がアカウントバランス(残高)を決定します。 ③ UTXOはビットコインのトランザクション出力です。 ④ 完全なトランザクションは、トランザクション出力(送信者)とトランザクション入力(受信者)から構成されます。トランザクション出力はアウトプットと呼ばれることがあります。トランザクション入力はインプットと呼ばれることがあります。トランザクションが完了すると、新しく生成されたUTXOはビットコイン台帳に記録され、さらなるトランザクションに使用できます。UTXOはビットコイントランザクションの基礎となり、セキュリティ、プライバシー、スケーラビリティなどの利点を提供します。多くのブロックチェーンプロジェクトの基本的な台帳モデルとして機能します。

以下に挙げた、MEXCに上場しているトークンはUTXOモデルを使用しています。


ada, ae, avax-xchain, bch, bcha, beam, bhd, bsv, btc, btcv, btm, btm2
chia, ckb, dash, doge, firo, hc, hns, hydra, ioex, KAS(KASPA), lbc, lbtc, ltc
mass, pac, plcu, psl, qtum, rvn, sc, sys, ut, wit, xrd, xvg, zel, zen


上記の暗号資産を送金する際にエラーが発生した場合、回収することができません。入金する前に正しい入金アドレスを入力していることを確認してください!


初心者向け特典

新規登録後、簡単に新規ユーザー特典が受け取れます。最大1000 USDTの先物ボーナスがあなたを待っています。