未花費交易輸出(UTXO)

未花費交易輸出(UTXO)的文章封面插畫

多數人熟悉的金錢系統,通常會把資產顯示成一個帳戶餘額:銀行告訴你帳上還有多少,支付平台也直接更新數字。這種經驗很直覺,因此不少人初次接觸比特幣時,也會預設系統背後一定有一個地方持續記著「某人現在有幾枚幣」。

不過,比特幣的底層記帳方式並不是替每個人維護單一餘額表。它更像是在追蹤一批一批尚未被動用的交易輸出,也就是所謂的 UTXO。每一筆有效交易,都會消耗先前存在的某些輸出,同時再產生新的輸出;只要某個輸出還沒有被後續交易拿來使用,它就屬於未花費狀態。錢包畫面上的總額,通常只是把你有權動用的多個 UTXO 加總後,整理成較容易理解的結果。

因此,理解 UTXO 的關鍵,不在於把它背成縮寫,而在於知道比特幣是在管理一組組可被花費的條件。某筆資產能不能被你動用,取決於你是否滿足對應輸出的使用條件,常見情況就是能否提出正確簽章。這也說明了為什麼一筆付款之後,系統常會同時產生給收款人的輸出,以及找回給自己的找零輸出;帳面上看似只是扣掉多少、剩下多少,底層其實是在重新組合輸出。

這個概念重要,因為它會影響你對餘額、找零、手續費估算與隱私的理解。若只用銀行帳戶的直覺去看比特幣,很多交易細節都會顯得莫名其妙;一旦知道它其實是在追蹤 UTXO,後面再讀交易結構與錢包行為時,就比較不容易混亂。