什麼是 UTXO(未花費交易輸出)?
UTXO(未花費交易輸出)是比特幣的核心記帳模型,代表已收到但尚未使用的加密貨幣價值單位。錢包不追蹤單一帳戶餘額,而是將這些獨立的「鈔票」加總計算。交易會完整消耗現有的 UTXO,並為收款方建立新的 UTXO,同時將找零退還給付款方。這一機制優化了交易驗證、可稽核性與隱私性,並直接根據輸入大小決定鏈上手續費。
UTXO(Unspent Transaction Output,未花費交易輸出)是一種已收到但尚未使用的加密貨幣價值單位,是比特幣及其他數個區塊鏈所採用的基本記帳模型。與銀行帳戶追蹤單一餘額不同,以 UTXO 為基礎的區塊鏈會追蹤許多獨立的價值片段,這些片段可在未來的交易中使用。
在比特幣中,錢包在技術上並不持有單一餘額,而是持有一組 UTXO——即過去交易的輸出。當你傳送 BTC 時,錢包會選取一個或多個 UTXO 並完整花費,再建立新的輸出:一筆給收款方,通常還有一筆作為找零退回給你。
理解 UTXO 有助於說明比特幣交易的運作方式、為何手續費取決於交易大小,以及幣選擇、幣控制、地址重複使用與合併等錢包功能的重要性。
用簡單的話解釋 UTXO
UTXO 的運作方式就像實體錢包裡的鈔票。若你想付 7 美元,手邊只有一張 10 美元鈔票,你就得交出整張 10 美元,然後收到 3 美元找零。你無法從鈔票上直接撕下剛好 7 美元。
比特幣的運作方式類似。每個 UTXO 都是一個擁有獨立金額的價值片段。付款時,錢包會選取足夠的 UTXO 來支付金額,完整花費後,再分別為收款方和找零建立新的 UTXO。錢包餘額就是你所控制的所有 UTXO 的總值。
UTXO 在比特幣交易中如何運作?
比特幣交易由輸入(inputs)和輸出(outputs)構成。
- 輸入:即將被花費的現有 UTXO。錢包對這些輸入簽名,以證明其具有花費權限。
- 輸出:交易建立的新 UTXO,通常包含收款方的輸出和找零輸出。
- 手續費:輸入總值與輸出總值之差,由將該交易打包進區塊的礦工收取。
舉例而言,假設你的錢包有三個 UTXO:0.5 BTC、0.3 BTC 和 0.2 BTC。若你想傳送 0.4 BTC,錢包可能會以 0.5 BTC 的 UTXO 作為輸入,建立一筆 0.4 BTC 的輸出給收款方,再建立約 0.0999 BTC 的找零退回給你,並留下 0.0001 BTC 作為手續費。
確認後,原本的 0.5 BTC UTXO 便不再存在。你的錢包此時控制的是 0.3 BTC UTXO、0.2 BTC UTXO,以及新產生的找零 UTXO。
比特幣為何使用 UTXO 而非帳戶餘額?
比特幣採用 UTXO 模型,是因為它讓交易驗證更簡單、可稽核,且能有效防止雙重花費,同時賦予用戶在管理隱私和手續費方面更大的彈性。
- 獨立驗證:每個 UTXO 可以獨立驗證,讓節點更容易確認交易是否有效。
- 簡潔的區塊鏈狀態:網路只需追蹤哪些輸出尚未被花費,形成清晰且可稽核的 UTXO 集合。
- 防止雙重花費:每個 UTXO 只能被花費一次,一旦作為輸入使用即告消耗,無法重複使用。
- 隱私潛力:用戶可將資金接收到不同地址並保持 UTXO 分離,在謹慎使用的情況下,更難追蹤交易關聯。
- 彈性的花費條件:每個 UTXO 可透過 Bitcoin Script 設定自訂的花費規則,支援多重簽名、時間鎖及其他條件付款。
這與以太坊等以帳戶為基礎的區塊鏈不同——後者每個地址都有一個會在每筆交易後更新的持續餘額。
什麼是幣選擇(Coin Selection)?
幣選擇是錢包決定在交易中花費哪些 UTXO 的過程。錢包必須選取足夠的 UTXO 來涵蓋付款金額和手續費。
不同的幣選擇策略會同時影響手續費和隱私性。
- 最大優先:優先花費最大的 UTXO,操作簡單,但可能產生較大的找零輸出。
- 最小優先:優先花費較小的 UTXO,有助於減少小額剩餘,但可能需要更多輸入,進而提高手續費。
- 分支定界法(Branch and Bound):較先進的錢包會嘗試找出一組 UTXO 的組合,使其盡量貼近付款金額,避免不必要的找零。
- 隱私導向選擇:部分錢包會避免合併來自不同來源的 UTXO,因為此舉可能洩露它們同屬一個持有者的資訊。
大多數用戶不需要手動選擇 UTXO,但錢包設計至關重要,因為幣選擇策略直接影響交易成本和鏈上隱私。
UTXO 如何影響比特幣手續費?
比特幣交易手續費取決於交易大小,而非傳送的 BTC 金額。含有大量輸入和輸出的交易佔用更多區塊空間,因此手續費也更高。
這正是持有大量小額 UTXO 可能代價高昂的原因。若錢包需要合併許多小額 UTXO 才能完成一筆付款,交易體積會更大,手續費也可能隨之上升。這些小額輸出在小到無法以經濟方式花費時,通常被稱為「粉塵(dust)」。
部分用戶會在低手續費時期合併 UTXO。合併操作將多個小額 UTXO 整合成較少的大額 UTXO,有助於降低未來的交易成本。不過,合併也可能暴露地址之間的關聯,應謹慎進行。
UTXO 如何影響隱私?
UTXO 具有假名性,並非完全私密。任何人都可以在公開的區塊鏈上查看比特幣交易,並分析哪些 UTXO 被花費、哪些新輸出被建立。
常見的隱私風險包括:
- 地址重複使用:重複使用同一地址可能將多個 UTXO 關聯到同一持有者。
- 共同輸入所有權:當多個 UTXO 同時被花費時,分析人員通常會假設它們屬於同一人或同一錢包。
- 找零識別:區塊鏈分析人員通常能推測哪個輸出是付款、哪個是找零。
- 粉塵攻擊:微小金額的 UTXO 可能被傳送至錢包,以追蹤未來的花費行為。
注重隱私的用戶通常會使用新地址、避免不必要的 UTXO 合併、選擇支援幣控制的錢包,並在適當情況下使用 CoinJoin 等隱私工具。
UTXO 模型與帳戶模型的差異
UTXO 模型和帳戶模型是區塊鏈追蹤所有權的兩種不同方式。
在 UTXO 模型中,價值以獨立的未花費輸出形式存在;交易消耗舊輸出並建立新輸出。比特幣、萊特幣、狗狗幣、卡爾達諾及其他數個網路均採用 UTXO 或 UTXO 啟發式設計。
在帳戶模型中,每個地址擁有一個餘額,並在每筆交易後增減。以太坊和許多智能合約平台採用此模型,因為它更自然地契合以帳戶為基礎的應用程式和智能合約。
UTXO 模型在付款驗證和隱私管理方面通常較為簡潔,帳戶模型則在複雜的智能合約互動方面較為便利。
總結
UTXO 是一種未花費交易輸出,可作為未來交易的輸入。在比特幣中,錢包不持有單一餘額,而是持有許多 UTXO,錢包餘額即為這些未花費輸出的總和。
UTXO 模型決定了比特幣交易的運作方式,影響手續費、隱私性、錢包設計、幣選擇及粉塵管理。雖然大多數用戶無需手動管理 UTXO,但理解這一概念有助於說明:為何比特幣交易有時會產生找零、為何花費大量小額輸出時手續費可能上升,以及為何隱私性取決於幣的選取與合併方式。
相關概念
延伸閱讀
常見問題
一般比特幣用戶需要管理 UTXO 嗎?
通常不需要。大多數現代比特幣錢包會自動處理 UTXO 的選取。不過,理解 UTXO 有助於說明交易手續費、找零輸出、粉塵及幣控制功能的運作原理。
比特幣中的粉塵(dust)是什麼?
UTXO 可以部分花費嗎?
以太坊是基於 UTXO 的嗎?
為什麼比特幣交易會產生找零?
還沒有帳戶?
立即註冊,開啟您的加密貨幣之旅