UTXO 未支付交易輸出

比特幣的交易在實際運作上,並不是從支付者的帳戶發送至接收者的帳戶或地址中,而是 UTXO 與 scriptPubKey 之間的交互。 確定支付者是否有足夠的 UTXO 可供使用,新的 UTXO 引用於之前的 UTXO。

UTXO 未支付交易輸出

 

UTXO,unspent transaction output,未支付交易輸出。是未被支付的比特幣狀態,一種紀錄交易的模式。

比特幣的交易在實際運作上,並不是從支付者的帳戶發送至接收者的帳戶或地址中,而是 UTXO 與 scriptPubKey 之間的交互。 確定支付者是否有足夠的 UTXO 可供使用,新的 UTXO 引用於之前的 UTXO,再經過確認接收者符合條件,接受新的 UTXO 後,舊的 UTXO 則不再被採用。

而 UTXO 的不可分割性,一次也只能支付給一個接收者.而接收者得到的一個新 UTXO,可以引用來自多筆的舊 UTXO.在完成一批 UTXO 輸出過程後,被認定為一筆交易。

UTXO 構成了交易,交易構成了區塊,區塊構成了區塊鏈。


UTXO 基本概念

  • 不可分割性 每一筆 UTXO 均不能分割至更小單位,必須直接被引用支付出去,而若 UTXO 大於需支付的金額,將會以找零輸出 Change Output 的方式返還支付給原帳戶,成為的新 UTXO。

  • 離散性 每一筆 UTXO 都因其是不可分割的,而有著各自獨立的離散性,並不是被視為帳戶餘額的一部分。

  • 可驗證性 除了每一個區塊中新生成的幣基交易 coinbase transaction 輸出為新的 UTXO 外,UTXO 每一筆輸出,均引用自前一次的 UTXO,能使得模型易於驗證每筆交易的有效性,不需要驗證整個帳戶的餘額。

  • 隱私性 UTXO 並不直接關聯至特定用戶,只有用戶主動將地址公開時,才會展露地址身份,有助於保護部分隱私。


UTXO 組成架構

  • 金額 Value 表示可以被支付的比特幣餘額。

  • 腳本 Script 每一個 UTXO 均關聯了一個腳本,被稱作 scriptPubKey,交易輸入會提供 ScriptSig 作為解鎖資料,節點會將 ScriptSig 與 scriptPubKey 組合執行,條件滿足才能使用這筆 UTXO。

  • 輸出索引 Output Index UTXO 是交易的輸出,而一筆交易可以包含了多個輸出,輸出索引表示了 UTXO 在交易的輸出列表中的位置。

  • 交易哈希 Transaction Hash 每一個 UTXO 都與創建它的該筆交易有關,交易哈希則是該交易的識別資訊。

  • 輸出地址 Output Address UTXO 包含了接收方的比特幣資訊,用於確定誰有權使用這筆 UTXO


UTXO 運作方式

  • UTXO 建立 當一筆比特幣交易被確認後,交易輸出 Transaction Output 會成為新的 UTXO。每個 UTXO 都記錄可花費的比特幣數量以及對應的鎖定條件。

  • UTXO 持有 比特幣錢包會持續追蹤區塊鏈上的 UTXO,判斷哪些 UTXO 的鎖定條件可由自身私鑰解鎖。這些可控制的 UTXO 即構成錢包餘額。

  • UTXO 消耗 當使用者發起交易時,需選擇一個或多個 UTXO 作為交易輸入Transaction Input。被引用的 UTXO 將在交易確認後視為已花費 Spent,無法再次使用。

  • 交易驗證 節點驗證交易時,會將輸入中的 ScriptSig 與被引用 UTXO 的 scriptPubKey 組合執行,並透過腳本運算確認結果是否為 true,以判定該 UTXO 是否可被解鎖與花費。驗證通過後,交易才可被納入區塊。

  • UTXO 轉換 交易輸入消耗舊 UTXO,同時建立新的交易輸出。這些新輸出會成為新的 UTXO,供未來交易繼續使用。比特幣的所有權轉移即透過 UTXO 的持續消耗與生成完成。


UTXO 相關 BIP

  • BIP 68:Relative Lock-Time Using Consensus-Enforced Sequence Numbers
  • BIP 112:OP_CHECKSEQUENCEVERIFY(CSV)
  • BIP 141:Segregated Witness(SegWit)
  • BIP 174:Partially Signed Bitcoin Transaction(PSBT)
  • BIP 341:Taproot
  • BIP 342:Tapscript
2026/9/15 4:59 AM


更多文章