区块链交易中的 UTXO

Q:比特币中的 UTXO 是指什么

A:UTXO 是未经使用的一个交易输出,是比特币交易中的基本单位,当用户接受比特币时金额被当做 UTXO 记录在区块链中

(简单理解就是可供未来交易使用的金额

#1

 

比特币的交易是什么?



在比特币中,消费或转账都可以称为交易,事实上就是将一个比特币地址上的金额转到另一个比特币地址上(简单理解为现实中两个银行卡账号之间的转账),所以我们是可以追溯一连串的交易到这枚比特币最初属于的拥有者那里的。



比特币每条交易都由两部分组成:交易输入、交易输出(交易输入表示钱从哪里来,交易输出表示钱要到哪里去),如下图。

区块链交易中的 UTXO

区块高度 #527112 打包的交易记录



#2

比特币的交易输出长什么样?

具体到交易输出,又由三部分构成UTXOUnspent Transaction Outputs 未消费输出)、STXO(已消费输出)、交易费组成。

区块链交易中的 UTXO

比特币交易简易流程图



以上图交易 3 为例,对于张三而言,输出到张八的金额就是 STXO,输出给张三自己的找零金额就是 UTXO交易 2 中的张二的输出,就是本次交易的输入)。

想象一下,现实中如果要花费 50 元购买一个价格 45 元的数据线,那 45 元就是 STXO,剩下的 5 元找零就是 UTXO。

当然与现实中不一致的最重要的一点是:交易费(上图交易 3 找零下方的 0.1 fee 就是交易费),交易费在比特币交易中并未明确体现,如果 (STXO + UTXO) < 输入金,那么中间的差额就是本次交易的矿工费(如果使用钱包转账的话,通常不用你操心矿工费,钱包会自动计算矿工费)。

因为交易费的存在,刚才的购买数据线的例子如果用比特币来交易的话,找零可能会是 4.9 元,其中的 0.1 元即是本次交易的交易费。

#3

几种交易类型



如果交易,钱包会从 A 可用的 UTXO 中找到一个大额,也可能是多个拼成一个可用于支付的金额(大于或等于)。



比如

 A 要消费 28.8 元给 B(事实上 A 有极大概率并不会拥有 28.8 元的 UTXO 正好可供本次交易使用),

钱包会自动相加多个

等于 30 的

 

UTXO  

做为此次交易输入(如 18+10+2,三个输入,查找并确定 UTXO 全部由钱包自动完成)

,产生的一个

输出

B 的地址

,第二个输出是找零到 A 自己的地址中(所有这一切也由钱包自动完成)



还有一种交易类型是一对多的,比如给员工发工资的类型(一个输入,N 个输出)。



第三种特殊的交易类型:没有输入 Input 的交易类型



这怎么可能?



每个区块

中的第一个交易为 Coinbase 交易,它存在的目的是为了生成新的比特币奖励给挖矿成功的矿工。

区块链交易中的 UTXO

Coinbase 交易显示 No Input(Newly Generated Coins)



#4

那么 UTXO 可以继续细分吗?



现实中我用支付宝直接支付 45 ,而不需要支付 50 后再让商家找回 5 元零钱。



在比特币中,那能不能将 50 拆开成 45 +5,直接支付 45,而不需要找回零钱呢?



不可以。



一个输入在支付时必须做为一个整体被全部支出,然后

产生一个

输出

到对方

地址

,另一个输出是找零到自己的地址,

就像在现实中,你口袋里有上次找回的 5 元,你是不能把 5 元撕成两半,分别代表 2.5 元一样。



#5

所有的 UTXO 可以合并吗?



既然不可以细分,那可以合并吗?就像银行中的“零存整取”的概念有吗?



没有,UTXO 并不会自动合并为大额的金额。



这就好比你真实世界中的钱包,里面都是 10 块、20 块、50 块的零钱,这些零钱并不会自动合并变为 100 块。如果你非得把他们兑换成大额的整的,你需要费点劲,比如找便利店或朋友帮忙。



如果在比特币中, 你也非得这样操作,也不是不可以,花手续费呗(多个 UTXO 做为输入,输出为你自己的一个比特币地址即可)。

#6

能看到所有 UTXO 的余额吗?



在比特币中

是不存在用户的账户余额的(余额这个概念是不对的)。



在现实中,你看下自己的钱包或银行账户余额即可知道到底有多少钱。



事实上你的比特币余额就是分散在区块和交易当中的一个又一个的 UTXO,余额只是钱包汇总并展示了属于你的所有的 UTXO(

只有一条又一条的交易记录

)。

比特币

比特币有多少?

   

|  

如何获得一枚比特币

比特币/黄金 

    

|    

比特币/现金

区块链  

 

PoW 工作量证明

    |     

挖矿是挖什么

 

 

区块链长这样

   

|

 

 

51%攻击

      |     

价格通缩

以太坊

智能合约

        |  

   

Gas

EOS   

超级节点

区块链交易中的 UTXO