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

2018-06-20  本文已影响0人  修远来了

微信公号:辉光日新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章

上一篇下一篇

猜你喜欢

热点阅读