「币姐解读区块链09」2个案例看懂什么是UTXO

上期回顾: 币姐解读区块链08:一文破解比特币的交易运行原理?

币姐开场

上一篇内容提到了,想要发起交易,首先要检查一下你的UTXO是否足够,不够的话是无法交易的。

那么UTXO是什么鬼?中本聪为什么要用UTXO而不用账户余额的设计呢?

本文以比特币的技术为案例,请注意:比特币 ≠ 区块链

作者 | 币姐


UTXO是什么鬼?

UTXO(unspenttransaction outputs)是未花费交易输出。

UTXO跟银行里的账户余额系统不同,跟纸币的逻辑有些类似。看看下面2个例子就大概知道了。

「币姐解读区块链09」2个案例看懂什么是UTXO

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

「币姐解读区块链09」2个案例看懂什么是UTXO

而比特币的转账跟现金更像,现金没有80元的面额,所以只能给老王100元的现金,然后老王再找回来20元现金。

上面的例子也可以用UTXO来解释:

币姐有100元的UTXO,UTXO是不能细分的,就好像不能把现金撕开用是一个道理。所以只能先全部给到老王,然后老王再找零20元。

交易完成后产生了2个UTXO,一个是老王的80元,一个是找给币姐的20元。

2个实际案例再看UTXO

下面,我们看2个实际的BTC交易案例:

「币姐解读区块链09」2个案例看懂什么是UTXO

如上图案例1所示:发起方想给接收方10.5065BTC。

发出方将10.6BTC转给了接收方。

10.6BTC消耗掉了,生成了2个新的UTXO,接收方收下10.5065 BTC,发出方收下0.0925 BTC算是找零。

接收方的10.5065 BTC目前已经使用过了,就不能叫UTXO了,而找零的0.0925 BTC到目前为止还没有使用过,所以他还能称作UTXO未花费的交易输出。

「币姐解读区块链09」2个案例看懂什么是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足够,还需要验证数字签名,那么数字签名是如何工作的呢?我们下期详解。

点击阅读往期币姐解读区块链:

「币姐解读区块链08」一文破解比特币的交易运行原理

「币姐解读区块链07」数字钱包进化史,从非确定性钱包到HD钱包

「币姐解读区块链06」私钥,公钥,地址是如何生成的?

「币姐解读区块链05」密钥,私钥,公钥傻傻分不清楚?

「币姐解读区块链04」上帝视角看区块链系统是如何运转的

「币姐解读区块链03」区块链的历史都发生过哪些精彩的故事?

「币姐解读区块链02」中本聪为什么要做比特币(区块链)?

「币姐解读区块链01」区块链技术到底有什么神奇之处?

「币姐解读区块链09」2个案例看懂什么是UTXO

相关文章