最近,无意中在网上看到这句话:现实世界中没有比特币,只有UTXO。那UTXO又是什么意思呢?
比特币的交易由交易输入和交易输出组成,每一笔交易都要花费一笔输入,产生一笔输出,而其所产生的输出,就是“未花费的交易输出”,也就是 UTXO。
在比特币系统里,每笔交易都有其输入和输出。别人转比特币给你是“交易输入”,你收到比特币是“交易输出”。比如小明转给我5BTC,我可以立即转给小芳,也可以作为UTXO自己保留,作为未来交易的输入。
用户的比特币余额,不同于我们支付宝或者银行卡里面的余额,它是比特币钱包通过扫描区块链并聚合所有属于该用户的UTXO来计算的,UTXO可以是任意值,但只要它被创造出来了就不可再分了。
以比特币的交易为例,UTXO的原理是:小明给我转账3BTC,小芳也给我转账3BTC,对于我而言,现在就有了6BTC的UTXO,也就是6个“未花费的交易输出”。现在我想支付5个BTC给小红,那么我需要把这6个UTXO作为交易的输入,并且产生两个输出:一个是支付了5BTC给小红,另一个是找零1BTC到自己的钱包地址,这剩余的1BTC就是“未花费的交易输出”,即UTXO。
那比特币系统为什么会采用UTXO账户体系呢?
这是因为在比特币系统没有中心化的权威第三方,所有的交易都是基于共识,然而达成共识需要经过大多数节点确认,要是信息传递出现时间差,就不能同时确认所有账户余额,那么就会面临双重支付,所以比特币系统采用UTXO账户体系可以有效避免出现双花支付。
UTXO账户体系使比特币系统里的每一笔交易,都可以追溯到上一笔交易。比如我转给你的2BTC,是别人转给我的,而别人地址里的BTC,也是由另一个别人转给他的。
以此类推,就可以追溯到最初被矿工挖出比特币的那一个区块,这就保证了比特币不可被重复支付。
所以说,你的比特币地址里没有余额,只有UTXO。
网友评论