近期 BRC-20 熱度居高不下,BRC-20 代幣基於比特幣網路,而製造 BRC-20 代幣的成本在於將文件添加到區塊鏈中,以及未來與 Token 關聯的 「UTXO」 移動。本文將以最白話的方式簡單舉例介紹什麼是 「UTXO」。
(前情提要:下定決心投資BRC-20?給新手玩家的7個建議 )
(背景補充:DOMO:BRC-20的創造者,用新實驗重新定義比特幣 )
最近大熱的 BRC-20 Token 是基於比特幣,但比特幣區塊鏈無法對其進行規則約束。製造 BRC-20 Token的成本在於將文件添加到區塊鏈中,以及未來與 Token 關聯的 UTXO 的移動。
既然 UTXO 這麼重要,今天我們就來簡單介紹一下 UTXO。
延伸閱讀:錯過BRC-20代幣?最新的ORC-20:Ordinals生態標準再爆火
01 什麼是UTXO?
在當前的區塊鏈項目中,主要有兩種記錄保存方式,一種是帳戶/餘額模型,一種是 UTXO 模型。比特幣採用就是 UTXO 模型,以太坊等則採用的是帳戶/餘額模型。
UTXO 是 Unspent Transaction Output 的縮寫,意思是未花費的輸出,可以簡單理解為還沒有用掉的收款。比如韓梅梅收到一筆比特幣,她沒有用掉,這筆比特幣對她來說就是一個 UTXO。
02 帳戶/餘額模型和 UTXO 模型
帳戶/餘額模型生活中很常見,比如我們的銀行帳戶、微信帳戶,都是基於帳戶/餘額模型。
帳戶內的餘額是作為一個整體存在的。李雷帳戶上有多少錢,看一下餘額便知道,在發生交易時,變動的是餘額。比如,情人節當天,李雷通過微信給韓梅梅轉 520 元,李雷微信帳戶餘額會減掉 520 元,而韓梅梅帳戶餘額會增加 520 元。
UTXO 模型則不同於帳戶模型。李雷有多少比特幣,要對他比特幣地址所有 UTXO 求和才知道。簡單來說,UTXO 模型就像我們用的錢包,而錢包裡的每張紙幣或每枚硬幣都是一個單獨的 UTXO,因此錢包裡有多少錢,並不一目了然,需要把所有紙幣和硬幣面額相加才能得出。
而每一次收付款,是以 UTXO 為單位消耗或者接收的。比如我們用 10 元錢買 5 元早餐時,這個 10 元作為一個 UTXO 先整體付給賣家,賣家再找零給你。
我們通過一個例子來說明。
情人節當天,李雷給韓梅梅買花,價格 520 元。用現金支付,他掏出 6 張百元大鈔(相當於 6 個 100 元的UTXO)給賣家,賣家需要給李雷找零 80 元(50 元、20 元和 10 元紙幣各一張)。這個過程中顯而易見,李雷花 600元 買花,得到 80 元找零,賣家賣出花,得到 520 元。
從 UTXO 的角度看,李雷花掉了 6 個 UTXO(6 張 100 元),得到 3 個 UTXO(3 張找零);賣家得到 6 UTXO,找零時花掉了 3 個 UTXO。
如果用比特幣完成這筆交易,過程就會稍有不同。
假設李雷用 6 個均為 1 BTC 的 UTXO 付給賣家 5.2 BTC,最後賣家得到一個價值 5.2 BTC 的 UTXO,找零給李雷是一個價值 0.8 BTC 的 UTXO,換句話說 6 個 UTXO 被「銷毀」,變成了兩個新的 UTXO。
(兩者不同的原因在於,紙幣面額的種類有限,而比特幣不受這個限制)。
如果李雷和韓梅梅秀恩愛的過程發生在比特幣網路上,轉帳過程是怎樣的?
李雷挖礦得到系統獎勵的 12.5 枚比特幣,於是李雷比特幣地址上就有一個 12.5 BTC 的 UTXO。
李雷要轉 5.2 BTC 給韓梅梅,12.5 BTC 的 UTXO 將會被整體花掉,其中 5.2BTC 轉給韓梅梅,剩下的 7.3 BTC 找零給自己(為方便討論,此處忽略礦工費)。
換句話說,之前 12.5 BTC 是以一個 UTXO 的形式整體存在的,在進行轉帳時,這個 UTXO 被「銷毀」了,不存在了,變成了兩個新的 UTXO:一個屬於韓梅梅,這個 UTXO 價值5.2 BTC,另一個屬於李雷,這個 UTXO 價值 7.3 BTC,這是找零給李雷的。
03 總結
UTXO 核心設計思路是:它記錄交易事件,而不記錄最終狀態。要計算某個用戶有多少比特幣,就要對其錢包裡所有的 UTXO 求和,得到結果就是他的持幣數量。
UTXO 模型在轉帳交易時,是以 UTXO 為單位的,也就是說在支付時,調用的是整數倍 UTXO,比如 1 個 UTXO,3 個 UTXO,沒有 0.5 個 UTXO 的說法。
比特幣的一般性交易:調用一個 UTXO 給其他人付款,以及集合型交易:調用多個 UTXO 給其他人付款。
你還能舉出其他的交易類型嗎?
📍相關報導📍
比特幣網路塞爆如何解決?核心開發者提阻擋 Ordinals、 BRC-20交易