UTXOとは?

UTXOは 未使用トランザクション(TX)出力. 基本的に、それは各トランザクションから受け取る残りの暗号通貨の変更の量です。ただし、さらに説明するには、まず、一般的な暗号トランザクションがどのように機能するかを分析する必要があります。 UTXOを使用する最もよく知られている暗号通貨であるため、この例ではビットコインを使用しましょう.

UTXOトランザクションの例

ビットコインウォレットを見ると、バランスが取れています。この例では、100ビットコインに設定しましょう。あなたはただ観察しますが 1 バランス、あなたの資金は実際に構成されています いくつか UTXO。それぞれ25ビットコインに相当する4つのUTXO、50に相当する2つのUTXO、または37、18、40、および5ビットコインに相当するUTXOのセットがある場合があります。具体的な金額は関係ありませんが、合計で合計残高になる必要があります。この場合は100です。.

例をさらに進めて、新しい車を探し回っていると仮定しましょう。よく働いていますね;あなたはそれに値する。ランボルギーニの固定観念に反して、あなたは35ビットコインの費用がかかるポルシェを決定します。さて、あなたの財布には、それぞれ15、17、28、40ビットコインに等しいUTXOしか含まれていません。正確に35ビットコインで評価されるものはありません.

UTXOを分割することは不可能であるため、借りている正確な35ビットコインを支払う方法はありません。.

代わりに、40ビットコインUTXOを使用します。その代わりに、ネットワークは2つの新しいUTXOを作成します。1つは35ビットコイン、もう1つは5ビットコインの価値があります。変更として5ビットコインUTXOを受け取る間、自動車販売店は35ビットコインUTXOを受け取ります.

また、17ビットコインと28ビットコインのUTXOを使用して、変更として10ビットコインを受け取ることもできます。トランザクションでは、UTXOの任意の組み合わせを使用できます。ただし、どれを制御することはできません.

UTXOを個別のインスタンスに分割できるのと同様に、それらをより大きなトランザクションに組み合わせて、ネットワーク上で作成するインスタンスの数を減らすこともできます。.

取引手数料はどうですか?

取引手数料も取引に含まれ、変更として受け取るUTXOから差し引かれます。方程式は次のようになります。

新しいUTXO =(トランザクション内のUTXOの合計)–(トランザクション量)–(トランザクション料金)

1ビットコインの取引手数料で最新の例を続けます:

新しいUTXO =(17 + 18)–(35)–(1)= 9ビットコイン

UTXOの重要性と潜在的な問題

UTXOを実装すると、ブロックチェーンのアカウンティング方法が大幅に簡素化されます。すべてのトランザクションを追跡して保存する代わりに、UTXOとも呼ばれる未使用のコインを追跡する必要があります。.

ご覧のとおり、ビットコインエコシステムのすべてのコインは1回しか使用できません。したがって、現在ウォレット内のすべてのビットコインは、次のいずれかの理由で使用されていません。

  1. 鉱夫はそれを鉱業報酬として受け取った、または
  2. トランザクション中に作成されました。 (前の例を覚えていますか?)

UTXOは、二重支払い攻撃を防ぐために重要であり、存在しないコインを使うことを防ぎます。ネットワークノードは、使用可能なすべてのUTXO(つまり、未使用のコイン)を含むデータベースを記録および維持します。そのデータベースにないコインでトランザクションを送信しようとすると、ノードはそれを拒否します.

潜在的なストレージの問題

ノードはUTXOデータベースをRAMに保存するため、データセットを管理可能なサイズに保つことが重要です。それが大きくなるにつれて、フルノードを実行するコストもそれに伴って大きくなります。フルノードの実行に費用がかかりすぎると、実行する余裕のある裕福な少数の人々の間でビットコインネットワークがさらに集中化する可能性があります.

ブロックチェーンを介したビットコインUTXOデータベースサイズの経時変化

ブロックチェーンを介したビットコインUTXOデータベースサイズの経時変化

この集中化のリスクは、ビットコインのブロックサイズを増やすことに反対する主な論拠の1つです。ビットコイン開発者のギャヴィン・アンドレセンは、 彼の記事 UTXO uh-oh…:

「1メガバイトのブロックは、年間約1億の500バイトのトランザクションのための余地です。それらのすべてがUTXOセットを500バイト増やした場合、UTXOセットは年間50ギガバイト増加します。」

1メガバイトのブロックサイズは、UTXOデータベースが毎年大きくなる可能性がある範囲の上限を設定します。彼は続けます:

「他の変更なしでより多くのトランザクションを許可すると、UTXOセットの成長が加速する可能性が高く、完全に検証されたノードを実行するのに、より費用がかかり、より迅速になります。」

アンドレセンの言葉を細かく切り刻んでいないのです。 彼の記事は実際にはブロックサイズを増やすことに賛成しています。彼は、UTXOセットのサイズへの影響は、他の人が信じているほど劇的ではないと主張しています。また、第2層のスケーリングソリューションの複雑さを考慮すると、これらのソリューションを長期的に導入する前に、短期的にはより大きなブロックを実装する必要があります。.

ソリューション

ありがたいことに、潜在的なストレージの問題にはいくつかの解決策があります。まず、ノードはUTXOデータベース全体をRAMに保存する必要はありません。その一部をより安価なソリッドステートディスク(SSD)または回転するハードディスクに保存することを選択できます。これらのストレージタイプでは、各ノードの検証時間が遅くなりますが、平均ブロック時間が10分未満である限り、問題は発生しません。.

さらに、ビットコイン開発者は、UTXOデータベースを最適化するためにトランザクションメカニズムを継続的に改善しています.

最後に、Segregated Witness(Segwit)および同様のスケーリングソリューションは、UTXOデータベースの成長を間接的に遅くします。から直接引っ張る ビットコインコアのドキュメント

「Segwitは、UTXOセットサイズに影響を与えない署名データを、UTXOセットサイズに影響を与えるデータよりも75%安くすることで、ここでの状況を改善します。これにより、ユーザーは、料金を最小限に抑えるためにUTXOセットへの影響を最小限に抑えるトランザクションの使用を支持し、開発者はUTXOセットへの影響も最小限に抑える方法でスマートコントラクトと新機能を設計するようになります。 」

結論:UTXOの代替案?

今日の例では一貫してビットコインを使用しましたが、ビットコインキャッシュ、ライトコイン、コモドなど、UTXOを実装する他の暗号通貨はたくさんあります.

他のアカウンティングメカニズムを利用する他の多くの暗号もあります。たとえば、イーサリアムにはアカウントベースのトランザクションモデルがあります. このメカニズム 一般に、スペースの節約が向上し、コードが単純になります。ただし、トランザクションのプライバシーのレベルが失われ、将来的にスケーラビリティの問題が発生する可能性があります.

10人の暗号開発者の部屋に最適な会計方法について尋ねると、10の異なる回答が得られる可能性があります。これはコミュニティ全体で熱く議論されているテーマであり、まだ完璧な解決策はありません。そして、複雑さのために、それはおそらく決してありません.