
上期回顾: 币姐解读区块链08:一文破解比特币的交易运行原理?
币姐开场
上一篇内容提到了,想要发起交易,首先要检查一下你的UTXO是否足够,不够的话是无法交易的。
那么UTXO是什么鬼?中本聪为什么要用UTXO而不用账户余额的设计呢?
本文以比特币的技术为案例,请注意:比特币 ≠ 区块链
作者 | 币姐
UTXO是什么鬼?
UTXO(unspenttransaction outputs)是未花费交易输出。
UTXO跟银行里的账户余额系统不同,跟纸币的逻辑有些类似。看看下面2个例子就大概知道了。

假设币姐要给老王转80元。如果是通过银行转账,那么服务器只需要在币姐的余额里-80元,在老王的余额里+80元就可以了。

而比特币的转账跟现金更像,现金没有80元的面额,所以只能给老王100元的现金,然后老王再找回来20元现金。
上面的例子也可以用UTXO来解释:
币姐有100元的UTXO,UTXO是不能细分的,就好像不能把现金撕开用是一个道理。所以只能先全部给到老王,然后老王再找零20元。
交易完成后产生了2个UTXO,一个是老王的80元,一个是找给币姐的20元。
2个实际案例再看UTXO
下面,我们看2个实际的BTC交易案例:

如上图案例1所示:发起方想给接收方10.5065BTC。
发出方将10.6BTC转给了接收方。
10.6BTC消耗掉了,生成了2个新的UTXO,接收方收下10.5065 BTC,发出方收下0.0925 BTC算是找零。
接收方的10.5065 BTC目前已经使用过了,就不能叫UTXO了,而找零的0.0925 BTC到目前为止还没有使用过,所以他还能称作UTXO未花费的交易输出。

我们再看另外一笔交易,如上图案例2所示:发出方想给接收方392.101963 BTC。
在交易前
发出方的3个UTXO数额相加刚好392.101963 BTC。
交易后
3个UTXO直接消耗掉,只需要生成了一个新的UTXO给接收方就可以了,不再需要找零了。
案例2的过程就好像为了凑26元,需要将20元,5元,1元凑一起是一个道理。
币姐说明
在上面2个案例中,有人可能发现,案例1中少了0.001 BTC,案例2中却没有少。
案例1中0.001 BTC就是矿工费,案例2中没有支付矿工费。关于矿工费我们会在后面的内容里详细说明。这里不展开。
UTXO有什么特点?为什么要用UTXO而不用余额?
看了上面几个案例之后,我们发现UTXO有几个特点:
1.每个UTXO都是独一无二的,就好像带有编码的钞票一样
2.相比钞票来说,UTXO更灵活,并没有固定面额的限制,任意数额都可以
3.UTXO是不能分割的,只能被消耗掉
4.在交易前后,UTXO的数量可能增多,也可能减少
5.每笔交易的输入和输出都是有关系的,可以通过UTXO不停往前追溯,直到挖矿
UTXO具备下面几个优势:
1.UTXO具备天然的匿名性
2.UTXO是独立的数据结构,可以更好的并行处理。
3.长期来看,UTXO的数据占用更小,而余额系统会越来越臃肿。
4.UTXO的结构更不容易被篡改,每个UTXO都追根溯源,很难伪造。
总结
UTXO(unspenttransaction outputs)是未花费交易输出。
他的逻辑跟钞票有点像,他是不可分割的,如果UTXO大于交易金额,则接收方需要“找零”。
UTXO具有4个优势:
1.匿名性更好
2.更好的并行性
3.数据占用更小
4.不容易被篡改
下期预告:数字签名是如何验证交易的?
我们提过了,如果想发起交易,除了UTXO足够,还需要验证数字签名,那么数字签名是如何工作的呢?我们下期详解。
点击阅读往期币姐解读区块链:
「币姐解读区块链07」数字钱包进化史,从非确定性钱包到HD钱包

网友评论
【如何挖矿】注册,认证,下载钱包,就能够挖矿!无需购买矿机,笔记本,台式机都可挖矿!
【提醒】必须注册认证!必须注册认证!认证无需传照,秒通过!
【手机注册网址】
http://www.coinyee.io/m/register?inviteCode=31307
【电脑注册网址】
http://www.coinyee.io/31307
【注册送BTC】注册赠送0.00015个比特币,价值9元!