其实并没有什么比特币,只有 UTXO

UTXO的中文意思叫作:未花费的交易输出。
UTXO是数字货币中的账户模型,这个模型和我们现在银行的账户模型是不一样的。
拿转账来说,现在的情况是:
我要给张三转2000块钱,我要从我的银行卡里面给她转账,我的卡里面有5000 块钱,转给她2000块钱以后,我的银行账户就被扣除了2000块钱,还剩下3000块钱。



其实并没有什么比特币,只有 UTXO


那么如果是基于比特币的UTXO,情况是这样的:
我有5000比特币(幻想),我给张三转2000比特币,2000比特币消耗掉了对不对?注意!这2000不是从我这5000总数里面扣除的,而是:我的比特币总额会分成两份(一份
2000,一份3000),这就是所谓“生成两个新的UTXO”:张三收下2000比特币,我自己收下3000比特币,3000算是给我的找零。
转账成功以后,我给张三的2000比特币目前已经使用过了,被消耗掉了,就不能再叫UTXO了,而找零给我的3000比特币目前我还没有使用,所以它还能称作UTXO ,也就是
未花费的交易输出。那么,如果我总共有5000比特币,我全部转给张三,那么就只需要生成一个新的
UTXO给依依就可以了,不需要找零了。
基于UTXO,每笔交易出现,都要确认比特币之前的情况,检验比特币是不是存在于我的UTXO中,如果不存在,那么系统就会拒绝你的交易行为。
这样一来,每笔交易的输入和输出都是有关系的,可以通过UTXO不断向前追溯,一直追溯到比特币诞生的时候,也就是挖矿的源头。



其实并没有什么比特币,只有 UTXO


如果我想用同一笔UTXO发送给两个人,那么系统只确认先接受到的那一笔,一旦确认UTXO已经被消耗了,那么你就不可以再把它转给下一个人,这样就避免了双重支付的问题。(
一笔交易就是一个UTXO,每个UTXO都是一次性的,即一次必须消耗完。这种一次性的机制就很好的避免了双花问题。比如我们买到商品时,首先要撕掉一次塑料包装纸。这个塑料包装纸就是一次性的,撕开了就不能恢复原样了。同理UTXO只有两种状态,你没有花它的时候,它静静在你比特币钱包地址上躺着的时候,比特币是未花费的状态。而一旦UTXO被拿来支付和交易,就变成已花费的状态。



其实并没有什么比特币,只有 UTXO



既然系统只确认先接受到的那一笔,那么问题来了,系统怎么知道谁先谁后呢?系统当然知道,因为系统有一个叫
“时间戳”的东西。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!