區塊、交易與帳本

未花費交易輸出

UTXO 是「未花費交易輸出」的簡稱,指某人已經收到、卻尚未花掉的一份離散的加密貨幣。區塊鏈(如比特幣)並不像銀行帳戶那樣為每個使用者記一個滾動餘額,而是把錢當作一大堆這樣獨立的份額來追蹤,每一份都標明了解鎖它所需的條件。你錢包裡的餘額並不是存在某處的單一數字,而僅僅是你目前掌控的所有未花費份額加起來的總和。

理解 UTXO 最清楚的辦法,是把它想成一張實體鈔票。你不能把一張二十元的鈔票撕成兩半去付十五元;你得遞出整張鈔票,再收回五元找零。區塊鏈交易也是這樣:它把一份或多份完整的 UTXO 當作輸入消耗掉,再產生新的 UTXO 作為輸出——一份給收款人,通常還有一份找零回到你手裡。舊的份額被標記為已花費,新鑄出的份額則成為新的可花費的錢。

這套設計有實實在在的好處。由於每一份要麼完全未花、要麼完全已花,網路只需一次簡單的查找就能檢查是否重複花費,而且許多交易可以各自獨立、並行地驗證。代價是,用整張鈔票的份額來思考,不如直接看一個餘額那樣直觀,這也是另一些區塊鏈轉而選擇帳戶模型的原因。兩者歸根結底都在回答同一個問題——誰擁有什麼——只是用了截然不同的記帳方式。

你手裡有一份 1.0 枚幣的 UTXO,想付 0.7。你的交易會把這整份 1.0 花掉,給賣家發去 0.7 作為一份新的 UTXO,再把 0.3 作為找零 UTXO 返還給自己——扣掉一筆小小的手續費。

又稱
unspent transaction output未花费交易输出未花費交易輸出