什麼是 Bitcoin 未花費交易輸出 (UTXO)?

作者 Kraken Learn team
10 最低限額
November 20, 2024

比特幣 UTXO 模型新手指南 📕

未花費交易輸出 (UTXO) 是比特幣協議用來追蹤加密貨幣錢包之間餘額移動的技術。

在追蹤和管理個別加密貨幣餘額方面,基於區塊鏈的協議通常採用兩種不同的會計模型之一。

其中一種稱為 帳戶/餘額模型 (Account/Balance model)。諸如 以太坊 (Ethereum)TezosEOS 等項目均使用此模型來追蹤區塊鏈用戶執行交易時的餘額。另一種稱為 未花費交易輸出 (Unspent Transaction Output) (UTXO) 模型。 

比特幣 (Bitcoin) 及許多其他加密貨幣,例如 萊特幣 (Litecoin)Cardano狗狗幣 (Dogecoin),均使用 UTXO 模型。 

但它究竟是什麼?它是如何運作的?與帳戶/餘額模型 (Account/Balance model) 相比,UTXO 又有哪些優勢?

BTC icon
$63,961.00
-1.55%
24H
btc

了解 UTXO 模型 💻

歷史記錄

Adam Back 和已故的 Hal Finney 都是 Cypherpunk 密碼學小組的成員,該小組是 比特幣白皮書 (bitcoin white paper) 作者中本聰 (Satoshi Nakamoto) 經常光顧的地方。這兩人分別在 1997 年和 2004 年獨立開發了 UTXO 模型。 

當中本聰 (Satoshi Nakamoto) — 比特幣的創造者 — 於 2009 年推出該協議時,它成為了第一個實施 UTXO 模型的運作中數字貨幣系統。

Hal Finney 和 Adam Back 都長期以來被懷疑是中本聰 (Satoshi Nakamoto),儘管這從未被確鑿證實。

UTXO 概覽

當您向某人發送比特幣時,會按程式執行幾個步驟。交易過程中最早的步驟之一是您的加密貨幣錢包掃描區塊鏈,以查找您擁有的資金金額。這些資金被稱為未花費交易輸出 (UTXO)。

您可以將 UTXO 視為先前比特幣交易中剩餘的零錢。

這些資金被視為“未花費”,因為您可以自由地將其發送給某人或轉移到另一個錢包。它們之所以被稱為“交易輸出”,是因為它們是從先前的交易中建立的。

如果您用一張 20 美元鈔票支付 12 美元的午餐費用,您會剩下 8 美元。在此範例中,剩下的 8 美元將是一個未花費交易輸出。它將回到您的錢包中,準備好用於購買其他物品。

比特幣 UTXO 的運作方式正是如此。當您進行交易時,先前比特幣交易的輸出(即您的零碎比特幣)被用作新交易的輸入。

實體現金交易和 UTXO 之間另一個關鍵比較是,兩者都必須全部花費不可細分。如果您有一個 5 比特幣的 UTXO,並想發送 1 BTC 給某人,您必須發送價值 5 比特幣的整個 UTXO,並收到一個價值 4 BTC 減去任何費用的新 UTXO。 

就像上述範例中,您交出整張 20 美元鈔票來支付 10 美元的午餐費用一樣。

當一個 UTXO 被花費時,它被視為“已消耗”,並在技術上從流通中移除。 

任何剩餘的零錢都會生成一個全新的 UTXO。UTXO 系統的這部分是比特幣如何解決雙重支付問題的。 

就像您無法實際將一張 5 美元鈔票給店主,然後再將同一張 5 美元鈔票給另一個人一樣,比特幣用戶無法在兩筆獨立的數位交易中成功使用相同的未花費交易輸出。

當一個人試圖兩次花費同一個 UTXO 時,這兩筆交易最終會進入一個記憶池 (mempool) — 一個等待處理中交易的「等候室」。它們會一直留在這裡,直到在工作量證明競爭中獲勝的礦工將它們打包到新的區塊中。

您可以在我們的 Kraken 學習中心文章 什麼是比特幣挖礦?中了解有關此過程的更多資訊。

即使兩筆交易被打包到兩個不同的區塊並同時處理,由於時間戳記,其中一筆交易會比另一筆交易先得到驗證。在經過一定數量的確認(新的區塊被添加到區塊鏈中)後,其他節點將標記第二筆無效交易並拒絕它。

Coinbase 交易

比特幣交易沒有輸入的唯一時間是從挖礦中創建新鑄造的 BTC 時。

這被稱為Coinbase 交易,代表每個新區塊中的第一筆交易。

流通中的每個聰(比特幣的子單位)都可以使用透明的區塊鏈分類帳追溯到其各自的 Coinbase 交易。

鎖定和解鎖腳本 🔒

建立 UTXO 時,它們會使用收件人的公開錢包地址鎖定。要將該 UTXO 用作新交易的輸入,必須先使用發送人的數字簽名將其解鎖。

這是關於 Bitcoin 交易的另一個重要理解。當進行交易時,Bitcoin 並非以數位方式從一個帳戶轉移到另一個帳戶。相反,它們會被解鎖、重新分配給新擁有者,然後再次鎖定。

這意味著只有新擁有者可以使用其數字簽名解鎖資金並將其轉移到其他地方;轉移給另一個人或轉移到其控制下的另一個錢包。

Script 是 Bitcoin 用於處理交易(包括鎖定和解鎖 UTXO)的編程語言。 

  • 鎖定腳本 (ScriptPubKey):當 UTXO 被鎖定時,鎖定腳本 (稱為 ScriptPubKey) 會規定在使用 UTXO 作為輸入之前需要滿足的條件。這通常涉及透過提供數字簽名來證明您擁有與用於鎖定 UTXO 的公開錢包地址相對應的私鑰。
  • 解鎖腳本 (ScriptSig):要解鎖 UTXO,您必須滿足鎖定腳本設定的條件,即提供一個數字簽名,證明您控制著與用於鎖定 UTXO 的公鑰相對應的私鑰。

這可防止其他人存取和花費這些資金。

UTXO 的內部運作原理 🚗

從技術層面來看,交易主要有四個部分:

  • 版本:這會通知網絡節點正在使用哪個版本的客戶端軟件。不同版本遵循不同的規則來驗證交易數據。
  • 鎖定時間:這是決定交易添加到區塊鏈速度的時間量。此輸入規定了礦工節點處理交易的最早可能時間。
  • 輸入:指向資金來源或生成 UTXO 的先前交易的資訊。輸入還包含一個稱為「解鎖腳本」的東西。
  • 輸出:有關正在轉移的價值、資金所有權正在重新分配到的錢包以及形成的新 UTXO 的資訊。輸出還包含一個「鎖定腳本」。

比特幣為何使用 UTXO 模型?

帳戶餘額

為了識別用戶的餘額(也稱為 UTXO 集),加密貨幣錢包軟體會掃描區塊鏈,以查找與相應公共錢包地址相關聯的所有 UTXO。

所有 UTXO 的總和精確地說明了錢包所有者控制了多少加密貨幣。

當一個 UTXO 被花費時,接收者的公共錢包地址會被分配給該金額,並且一旦執行,新的 UTXO 就會被記錄在區塊鏈上。

儲存

Bitcoin UTXO 記錄在各種交易中,這些交易儲存在 Bitcoin 區塊鏈的區塊中。然而,這些資訊並未清晰地編入索引,因此難以快速搜尋和整理元數據。 

當使用錢包軟件(例如 Bitcoin Core 客戶端)時,UTXO 元數據會使用 LevelDB 資料庫儲存並編入索引。LevelDB 是一個開源儲存系統,由 Google 於 2011 年建立,大大加快了定位 UTXO 的速度。

Bitcoin Core 客戶端是一種流行的軟件,用於連接到 Bitcoin 區塊鏈網絡。Bitcoin Core 最初由 Satoshi Nakamoto 建立,現由一群志願開發人員社群維護。

UTXO 與實體現金有何不同

實體鈔票類比與 UTXO 模型之間的主要區別在於,Bitcoin 和其他基於 UTXO 的加密資產不受固定金額的限制,即 5 美元、10 美元、15 美元等。任何數量的 Bitcoin(最多八個小數位)都可以是一個未花費交易輸出。 

例如,您可能從一筆交易中剩下 0.0003847 BTC。

這個金額將成為一個新的 UTXO,如果使用,則必須全部花費,不能分成較小的金額。

假設 John 的加密錢包餘額為 1 Bitcoin。他的餘額和餘額的組成是兩回事,就像您的錢包裡可能有 100 美元,但它可能由四張 20 美元鈔票、兩張 5 美元鈔票和一張 10 美元鈔票組成。

假設 John 的 1 BTC 餘額由 5 個不同的未花費交易輸出組成。

  • 0.138 BTC
  • 0.1 BTC
  • 0.004 BTC
  • 0.73 BTC
  • 0.028 BTC

John 想向 Jane 發送 0.6 BTC。為此,John 的錢包軟件會自動將他控制的任意數量的 UTXO 組合起來,以支付此交易以及處理交易所涉及的任何礦工費。

在這個例子中,假設他的錢包軟件自動將 John 價值 0.73 BTC 的 Bitcoin UTXO 發送給 Jane,並將扣除交易費後的剩餘金額作為新的 UTXO 返回給 John。

這個金額會自動發送到一個找零地址;一個連結到您的 加密錢包 的獨立地址。

什麼是 Bitcoin 塵埃?

Bitcoin 塵埃是指 UTXO 中含有先前交易剩餘的微量 satoshi。

單獨來看,這些微量 BTC 的交易費用會比其價值更高,因此它們通常存放在找零地址中,等待與其他 UTXO 捆綁並花費。

什麼是塵埃攻擊?

塵埃攻擊是指詐騙者將塵埃發送給數十萬個不同的錢包地址。其背後的想法是確定社交工程攻擊的潛在目標。

詐騙者會觀察包含他們已發送的塵埃的地址,等待擁有者進行交易,將與其錢包連結的不同地址的 UTXO 捆綁在一起。由於塵埃 UTXO 如此微小,因此很有可能與其他 UTXO 分組並用作輸入。

一旦發生這種情況,詐騙者就能大致了解一個人擁有什麼資金。他們可以選擇在交易中嵌入網路釣魚訊息,邀請擁有者點擊下載惡意軟體的連結,或訪問模仿合法登陸頁面的虛假網站並要求提供個人資訊。

Bitcoin 塵埃攻擊有多危險?

塵埃攻擊並不會讓詐騙者存取您的資金。

它們僅用於縮小特定加密錢包控制的地址範圍。

為了降低您受到塵埃攻擊的風險,最好是切勿點擊與塵埃交易相關的連結或瀏覽網站。

開始購買 Bitcoin

既然您已了解有關未花費交易輸出模型的一切,您準備好繼續您的加密貨幣之旅並購買 Bitcoin 了嗎?

請查閱我們的 Kraken 學習中心指南,以獲取更多有關如何購買 Bitcoin (BTC) 的資訊,並立即註冊 Kraken 帳戶

此頁面上的部分內容可能已使用 AI 翻譯