帳務模型的背景介紹
我們前面提到,比特幣透過「區塊鏈」這個公開帳本來記錄所有交易。不過,這種明細式的紀錄方式,在查詢時會變得相對複雜。例如,如果我們想知道某個錢包目前擁有多少比特幣,就必須從創世區塊開始,一筆一筆地讀取所有交易、計算收支,非常不方便。
為了解決這個問題,比特幣系統引入了「UTXO」(Unspent Transaction Output,尚未花費的交易輸出)的概念。這可以被視為靜態的資產歸屬紀錄,類似於我們熟悉的「土地權狀」制度。
在傳統金融系統中,銀行是以「帳戶」為單位記帳,每個人的資產與支出都記錄在個人帳戶中,重點是「這個人目前擁有多少錢」。而比特幣的帳務邏輯是反過來的——它以「資產本身」為中心進行記錄,也就是「這筆資產目前還沒被花費、屬於誰」,這種方式就像土地權狀:權狀是針對土地本身所開立。當土地發生轉讓時,舊權狀會被註銷,新權狀會登記在新的所有人名下。比特幣的 UTXO 也是這樣運作:每筆交易的輸出都是一張「小權狀」,只有當它被花費時才會失效,尚未花費的部分則代表當前擁有的資產。
比特幣的 UTXO 模型
UTXO 是「Unspent Transaction Output」的縮寫,中文為「未花費的交易輸出」,你可以把它想像成尚未註銷的土地權狀。在比特幣系統中,當你想轉帳時,並不是從一個「帳戶」轉出金額,而是花費你所持有的 UTXO。
每一筆 UTXO 對應到某一次交易的輸出,也可以有多筆 UTXO 被合併使用來進行一筆交易。我們來看幾個簡單的例子:
- 全額支付範例:你擁有一筆 100 美元的 UTXO,並想要全部支付給對方。這筆 UTXO 會完全被花費,產生一筆新的 100 美元的 UTXO 給對方。
- 部分支付範例:你用 100 美元的 UTXO 支付 40 美元給對方,交易會產生兩筆新的 UTXO:一筆是給對方的 40 美元,另一筆是找零給你的 60 美元。
- 多筆支付範例:你支付 25 美元給 C,20 美元給 D,並找零 55 美元給自己。這筆交易將會產生三筆新的 UTXO。
此外,比特幣允許多個 UTXO 作為同一筆交易的輸入,這讓使用者能靈活組合小額資產,進行大額支付。例如:
- 你擁有三筆各為 100 美元的 UTXO,想要支付 140 美元給朋友。
- 錢包會抓出兩筆 100 美元的 UTXO 作為輸入,產生以下輸出:
- $140 支付給朋友 B
- $60 找零給自己
比特幣交易的結構與交易費
每一筆比特幣交易(Transaction)都由「輸入(Inputs)」與「輸出(Outputs)」構成。輸入端指的是你目前擁有的 UTXO,輸出端則表示這筆資金接下來的流向(包括轉帳對象和找零地址)。
至於交易手續費,是怎麼計算出來的呢?其實比特幣的交易資料中並沒有一個「手續費欄位」,而是透過這樣的方式來計算:
手續費 = 輸入總金額 − 輸出總金額
也就是說,所有的輸入金額必須大於或等於輸出的總和,多出來的那一部分會被視為支付給礦工的手續費。
例如:你使用一筆 100美元 的 UTXO 發送 95 美元給朋友,那麼剩下的 5美元就是這筆交易的手續費。手續費越高,越能吸引礦工優先處理你的交易。
下一篇文章,我們將會進一步討論 UTXO 的技術細節與實際交易的組成邏輯,幫助你更深入理解比特幣運作的本質。
📚 本文出處:DeFintek.io
👉 歡迎點擊進入我們的課程平台,觀看更詳細的課程,一步步帶領你進入加密世界: 開始學習比特幣|DefinTek 課程平台