Bitroo小課堂26:UTXO是什么?
UTXO 的英文是 Unspent Transaction Output ,翻譯過來叫 “未消費的交易輸出”。應該這么說,比特幣的核心概念交易,交易的核心知識點就是 UTXO。
交易的組成要素
比特幣中是沒有账戶這個概念的,所謂一個地址的余額,其實就是統計這個地址相關的所有交易,然後運算出來的。所以我們把顯微鏡調調焦距,先看看一個交易中都包含哪些要素。
第一個要素是輸入,也就是 Input。首先,並不是所有的交易都有這一項。比如每個區塊裏面都有一個礦工自治的特殊交易,也就是所謂的 coinbase 交易,它就是一個沒有 Input 的交易。這個交易中直接把一定數量的比特幣轉出給制作這個區塊的礦工。除了這個特例之外,其他的交易都是有輸入的。比如小明想給小剛轉账1個比特幣,這個交易的 Input 應該是啥呢?是和小明的地址相關的一些交易,更准確的說,就是這些交易中包含的屬於小明地址的未消費的交易輸出,也就是 UTXO 。
於是我們就很自然的進入了第二個要素,也就是交易中應該包含輸出。“輸出”是個術語,英文叫 Output。在小明給小剛轉账一個比特幣的交易中,交易的 Output 就是指向小張的地址的這一個比特幣。這樣,UTXO 中的後三個字母 TXO ,其中 TX 代表交易,O 代表 Output,我們就理解了。
最後一個 U 指的是 Unspent,也就是未消費。小張如果從來沒有用這個 Output 做過其他交易的輸入,那么這個 Output 就是沒有被消費過的,就是 UTXO。
最後一個要素就是手續費,一個非 coinbase 交易中輸入要等於輸出加上手續費,手續費是要轉账給礦工的。討論中為了簡便,我們忽略手續費這一項。
理解的比特幣交易的基本組成其實也就理解了 UTXO。到任何一個比特幣瀏覽器中點开一個具體的交易,詳情中可以看到咱們剛剛說的這幾個要素。
湊輸入和找零
UTXO 有個特點,就是跟硬幣一樣,不能掰开用,那么交易過程中如何湊夠輸入金額,又如何找零的呢?
小明給小剛轉账 1 比特幣。整個過程是這樣的,小明要收集足夠的輸入,比如小明的地址對應的以往交易中,找到了一個面值為 0.9 的 UTXO,不夠 1 比特幣,好在交易中是允許有多個輸入的,所以小明又找到了一個面值 0.2 的 UTXO,這樣在這次轉账的交易中,就會有兩個輸入。同時輸出也會有兩個,一個是指向小剛地址,面值是 1 比特幣。另一個指向小明的地址,面值是 0.1 比特幣,這個輸出就是找零了。
梳理一下,整個流程是這樣的:小明首先要湊夠足夠面額的 Input,這裏他找到了兩個 Input,而這兩個 Input 本身都是以往交易的 Output。這兩個 Output 在未消費之前,就是 UTXO,但是當前交易一旦生效,它們兩個就會被消耗掉,而本交易中又會生成兩個新的 UTXO,一個指向小明,一個指向小剛。相當於小明和小剛各種領到手一個硬幣,未來可以在其他交易中去消費。而小明和小剛各自地址的余額,其實就是各自對應的所有 UTXO 的總和。
這樣,交易中如何去湊夠輸入,如何生成輸出,並進行找零,我們就清楚了。
為何使用 UTXO 模型?
到這裏我們就有一個疑問了,比特幣不就是個大账本嗎?為何不採用账戶模型,而要採用 UTXO 模型呢?
账戶模型是傳統銀行或者類似於支付寶這種服務的基本模型,這個模型下,我有一個自己對應的账戶,上面記錄我有 13 塊錢,那么 13 這個數字是明明白白記錄到系統中的。账戶模型的確是非常簡單,也非常靈活,以太坊以及一些其他區塊鏈項目中採用的就是账戶模型。
再看看比特幣,小明有 13 個幣,其實區塊鏈上是根本沒有 13 這個數字的,因為區塊鏈上只有交易。但是我們打开比特幣的區塊鏈瀏覽器,是可以看到一個地址對應的余額的,這是區塊鏈瀏覽器自己運算出來的,不是區塊鏈上本來就有的。
UTXO 是理解比特幣交易的樞紐性概念,想要理解比特幣底層原理的同學,這是一個繞不過去的坑。每個交易中,可以包含多個輸入,並且通常包含兩個輸出,輸出總額加上手續費正好等於輸入總額。每個輸出都跟硬幣一樣,有自己的一個面值,而且屬於某個特定地址。還沒有被當做其他交易的輸入使用的輸出,就是 “未消費交易輸出”,就是 UTXO。
UTXO 模型中沒有账戶的概念,所以對比账戶模型顯得稍微繞一些,但是它本身其實也是有巨大優點的,例如非常有利於在分布式系統中進行並行計算處理。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
XRP 漲至 7.5 美元?分析師告訴 XRP 大軍為純粹的煙火做好准備!
加密貨幣分析師 EGRAG 表示,XRP 即將迎來關鍵時刻,價格可能大幅上漲,這取決於能否突破關鍵...
今晚ETH迎來暴漲時代 op、arb、metis等以太坊二層項目能否跑出百倍幣?
北京時間7月23日晚上美股开盤後 ETH 的ETF开始交易。ETH的裏程碑啊,新的時代开啓。突破前...
Mt Gox 轉移 28 億美元比特幣 加密貨幣下跌 ETH ETF 提前發行
2014 年倒閉的臭名昭著的比特幣交易所 Mt Gox 已向債權人轉移了大量比特幣 (BTC),作...