瞭解UTXO模型:Unspent Transaction Output的運作

小凱
Jul 16, 2024

--

剛好最近在研究 Hinkol Protocol 的時候有機會翻出這篇好久以前寫的內容

UTXO 是 Unspent Transaction Output 的縮寫,意思是未花費的輸出,簡單來說就是還沒有用掉的收款。比如Will收到一筆比特幣,他沒有用掉,這筆比特幣對他來說就是一筆 UTXO,如果把這筆比特幣分為兩份也不會視為兩筆UTXO來計,下面將舉例說明:

比特幣白皮書-交易

如果Will得到了6.25BTC的區塊獎勵,他要將5BTC轉給Eric的錢包,這樣的過程在UTXO模型中是這樣紀錄的:

案例一:Will的錢包裡有一筆6.25BTC的UTXO

今天他想將6.25BTC轉給Eric,那UTXO的流程為:Will將6.25BTC轉給Eric,Eric又找零給Will 1.25BTC,因此原先那筆6.25BTC的UTXO被銷毀了,而創造出兩筆UTXO ,分別價值 5BTC(Will轉出給Eric的BTC)和1.25BTC(Will轉出後剩餘的BTC)

案例二:Will的錢包裡有10筆個別價值1BTC的UTXO

如果Eric向Will購買了5.2個BTC,那Will會將錢包裡6筆價值1BTC的UTXO銷毀,轉給Eric,而Eric再還給Will一筆0.8BTC的UTXO。因此一共會銷毀6個UTXO再創建2筆UTXO。

UTXO的創建和銷毀是由交易中找零、輸入和輸出的機制建立,它只記錄交易事件,而不記錄最終狀態,與比特幣數量的多寡並無太大關係,要記住的一點是,UTXO 模型在轉帳交易時,是以 UTXO 為單位的,也就是說只有整數倍 UTXO,沒有 0.5 個 UTXO 的說法。

--

--

小凱

身為一名零零後的懶惰蟲,每個月可能會產出數十篇,亦或者是只有一篇,與其說是為了流量和金錢,我認為 Medium 是一個將我平時所學的知識上傳的優良平台。 近期在 https://www.todayindefi.com/ 工作,請多多支持和關注。