【学懂区块链】12:不在钱包的比特币,会在哪儿?

微信公号:辉光日新i ( hgrx2017 );

已进行数字签名版权保护;

转载请保留以上声明。



一脸慌张的小刚紧张地冲我说:哥,我特别忐忑!

怎么啦?

不安!

怎么啦这是?

心里特别地纠结!

再不说,我让你飞到千里之外信不?


是这样,我刚刚花1000块买了点比特币,也确实看到钱包地址上有了比特币。可后来正好看到一篇文章,说比特币地址里没有余额,而是什么UFO!我怕被骗了,所以赶快跑来问问你!


大兄弟,那不是UFO,跟外星人没关系。

应该是“UTXO”,它的意思是“未花费的交易输出”。


小刚有点懵了,嘟囔着说:“未花费”我知道,就是还没花掉的钱,还放在我兜里。但“交易输出”是个什么东东?


什么是交易的输入输出


交易输入和交易输出是比特币交易中的两个概念,我们想象这样的场景:

在A和B之间有一个叫“交易”的盒子,现在A需要向B支付5个比特币,那么A往盒子里放入的币就叫做交易输入,即向“交易”这个盒子里输入的部分;同理,B由“交易”盒子里拿到的币就叫做交易输出,即从“交易”盒子里输出的部分。


这种输入等于输出的交易很好理解,咱们正好可以巩固一下之前的知识。


1、天女散花

A支付5个比特币(一份交易输入)均分给B、C、D、E、F等人(多份交易输出),这种情况是一份交易输入进行了多份交易输出;


2、万剑归宗

A把自己拥有的1+2+2个比特币(多份交易输入)集中起来,支付一笔5个比特币(一份交易输出)的交易,这种情况是多份交易输入集合成一份交易输出;


3、去而复返

A需要向B支付4个比特币,而A只有5个比特币。于是A向B支付5个比特币(交易输入),B从这笔交易中得到4个比特币(交易输出),另外1个比特币(交易输出)做为找零支付给了A自己。这种情况是两份交易输出中有一份是做为找零支付给了自己。


小刚不解地问:A直接支付4个比特币就可以了呀,为什么还要多付一个再接受找零呢?

好问题,所以我们要接着理解UTXO。


什么是UTXO


UTXO的意思是:我给你的比特币,必须是我从上笔交易中得到的且没有花费的比特币

同理,这笔比特币可以一直往上追溯到它诞生的那一刻。正因为UTXO的机制,保证了比特币的不可伪造和不可重复支付。一旦解决了这些信任问题,比特币就变得非常实用,这种价值使它具有了强大的生命力。


不同于余额的UTXO


在当前的货币系统里,每个人的资产就是账户里的余额,交易时可以无限分割。

就像长在自家田里的庄稼,可以看得见,当用来交易时可以随意选择交易数量的多少。


而在比特币系统里,并不存在存储比特币的地址或账户余额,只有被主人用私钥锁住的、分散在区块链里的UTXO。

就好比矿主的矿石,在矿主家里(比特币地址)是看不到矿石的,实际上它们是所有权归矿主但分散在地下不同位置的矿石。


虽然这些矿石(UTXO)分布在地下不同位置(区块链)且不在矿主家里(比特币地址),但这并不妨碍它们属于矿主,因为矿主掌握着那份所有权的合同(私钥)。除非矿主把合同搞丢,那就悲剧了。

因为比特币系统不认主人,只认私钥。


小刚点点头,问道:那矿主如果用矿石做交易该怎么办?


还记得吗,比特币最小可以分割为一亿分之一,即1聪。

这些矿石(UTXO)非常有趣,它们可以是1聪的任意倍,可一旦被生产出来就像硬币一样不可再分割。这就使它的交易和普通的余额交易变得不一样。


现在来看你刚才疑惑的问题:为什么A不支付4个比特币,而是多付1个比特币再接受找零呢?


我们先排除两种情况:

1、当A有4个UTXO(未花费的交易输出)比特币时,直接支付4个比特币即可;

2、当A有1+1+2个UTXO(未花费的交易输出)比特币时,它们会被加起来一并支付。


接下来是我们要重点关注的一种情况:


当A只有5个UTXO(未花费的交易输出)比特币时 ,因为这笔UTXO是像硬币一样不可分割的,所以只能作为一个整体被当作交易输入来花费掉。

作为这次交易中的两个交易输出,一部分的4个比特币被支付给B,另一部分的1个比特币支付给A作为找零。

这些就是UTXO在比特币区块链中的存在形态和交易形式。



小刚这时候表现的一脸不满,抱怨说:用比特币做个交易这么复杂啊?


我忙解释说:不用怕,这只是比特币系统运行的原理,听起来是复杂了点儿,但实际上这些UTXO的组合和找零之类的操作都是由钱包自动完成的,不用我们去操心。

哦,这还差不多!小刚呼了一口气。


比特币身在何处


比特币系统因为UTXO机制的存在,使得比特币与传统的货币结构完全不同。

事实上,我们每个人的比特币都不在自己的比特币地址里,


就像刚才介绍的一样,每个拥有比特币的人就像一位矿主。

他所拥有的矿石(比特币)并不在自己的家里(比特币地址),而是由自己所有权合同(私钥)锁定和控制,且分布在地下(比特币区块链)不同位置。


所以,“比特币地址上没有比特币”这句话是准确的,没毛病。


小刚还是很疑惑,追问道:那为什么我钱包的比特币地址上又显示着比特币数额呢?

我接着解释:这是因为比特币钱包会通过扫描区块链找到用户所有的UTXO,计算出一个总的数额并显示出来,方便用户知道自己的比特币数额。


就像探测公司会帮矿主探明地下矿石总的储量,并写在矿主家墙上方便矿主查看。虽然矿主家里看不到矿石,可他能及时知道自己在地下的矿石储量。


小刚听到这里好像明白过来,终于舒了一口气:

明白了,我所拥有的比特币并不在钱包中的比特币地址上,而是我收到并且还没有花费的、被私钥锁定在比特币区块链上的总额。


我正要夸小刚理解得到位,却听见他说:所以,要回家好好看世界杯!


啊……?

我望着小刚的背影,呆呆地问:这是什么神逻辑?



参考资料:

《精通比特币》第5章

你可能感兴趣的:(【学懂区块链】12:不在钱包的比特币,会在哪儿?)