理解不了UTXO?也许你该看看这篇文章

作者: longbtc | 来源:发表于2018-10-30 20:19 被阅读9次

版权声明:本文授权BH好文好报群摘编、转载以及相关转授权推文行为

简介:思源:我考验一个区块链内容作者的方式,是让他给我讲讲UTXO。如果他没有举出足够贴近生活、足够小白的案例,基本可以判定是一个不合格的作者。

这是币圈小白那些事儿的一道考题,看到考题我愣了一下,我进入币圈1年多,读过《精通比特币》,读过比特币白皮书,读过很多作者关于比特币原理的文章,可都是走马观花,还真不能精确的表达出utxo的解释,更别说讲给小白听,于是又重新读了一遍《精通比特币》关于交易的章节,找别人的解释来学习。

顺便推荐《精通比特币》,如果想了解比特币,最好一字不差读完。

账户余额模型

传统交易非常好理解,比如张三给了李四5块钱,那么张三余额减5块,李四余额加5块就行,日常交易是这么交易,记录也是这么记录。

utxo模型

张三是一名矿工,拿着鹤嘴锄挖矿的矿工,某一天张三运气比较好,挖到了一大块金子,重量1250克,于是张三决定去消费一番。

[图片上传中...(image-728f73-1540901921523-1)]

由于张三欠了一屁股债,于是需要先去还钱。张三找到债主李四,“我欠你250克金子,我来还钱来了”,这么一整块金子咋还啊,不过幸好有一台神秘机器,先把1250克金子给融化,分成250克的一块,1000克的一块,然后张三拿上了1000克的一整块金子,债主李四把250克的金子拿走了。

[图片上传中...(image-a3eb92-1540901921523-0)]

张三把钱还了,可惜张三还是个赌鬼,刚有点钱,又进赌场去了。赌场里人可太多了,一会功夫,1000克金子就剩500克,不过这500克金子已经不是一整块了,500克金子实际是200克,150克,100克,30克,20克加起来的,一共5块金子。这金子也不是原来的1000克了,而是赌博过程中一次次交易产生的。

好,先记住这个故事,然后在看看utxo是什么。

UTXO =(unspent transaction outputs)= “未花费的交易输出”

比特币的每笔交易都是有输入和输出的,就像上图一样,左边的金子是输入,右边的金子是输出。

  • 1250克的第一块金子,来源于挖矿,是挖矿产生的“输出”,它属于张三,且还未花费(可使用),是一个utxo。

  • 1000克的第二块金子,来源于交易的“找零”,是交易的“输出”,它属于张三,且还未花费(可使用),是一个utxo。

  • 还给李四的250克金子,也是交易的“输出”,它属于李四,且未花费(可使用),这250克是属于李四的utxo。

  • 后边的200克,150克,100克,30克,20克的5块金子,来源于赌博过程中输赢,是每一次交易的“输出”,它属于张三,且还未花费(可使用),所以是5个不同大小的utxo。

utxo是不可分割的,就像每块金子是不可分割的,挖出来第一块金子的过程就是coinbase交易,产生了1250克金子(输出),这块金子只能作为一个整体来使用(输入),然后产生的1000克又成了不可分割的金子(输出),这块金子也只能静静的躺着等待下次被使用(输入)。

1250克金子是挖矿的输出(utxo),同时又是第一次交易时的输入。(UTXO 可以作为新交易的输入

张三所拥有的utxo的总和就是张三的可用余额,到最后张三拥有5个utxo,余额为500克金子。

所以,每一个拥有比特币的人并没有比特币,他只是拥有很多他自己可用的utxo。

《精通比特币》的解释

现在需要一字不落的阅读专业的解释了。

比特币交易中的基础构建单元是交易输出。交易输出是比特币不可分割的基本组合,记录在区块上,并被整个网络识别为有效。 比特币完整节点跟踪所有可找到的和可使用的输出,称为 “未花费的交易输出”(unspenttransactionoutputs), 即 UTXO。 所有 UTXO 的集合被称为 UTXO 集,目前有数百万个 UTXO。 当新的 UTXO 被创建,UTXO 集就会变大,当 UTXO 被消耗时,UTXO 集会随着缩小。每一 个交易都代表 UTXO 集的变化(状态转换)。

交易输出就是之前每次获得的金子(1250g,1000g等),utxo集可以理解为全世界所有金子的合集,新的utxo被创建可以理解为产生了新的金子(即使是用旧的合成也算新的),utxo被消耗可以理解为把金子融化。

当我们说用户的钱包已经“收到”比特币时,我们的意思是,钱包已经检测到了可用的 UTXO。通过钱包所控制的密钥,我们可以把这些 UTXO 花出去。 因此,用 户的比特币“余额”是指用户钱包中可用的 UTXO 总和,而他们可能分散在数百个交易和区块中。 “一个用户的比特币余额”,这个概念是比特币钱包应用创建的派 生之物。比特币钱包通过扫描区块链并聚集所有属于该用户的 UTXO 来计算该用 户的余额 。大多数钱包维护一个数据库或使用数据库服务来存储所有 UTXO 的快 速参考集,这些 UTXO 由用户所有的密钥来控制花费行为。

秘钥可以理解为DNA,张三的金子与张三的DNA绑定了,只有张三可以验证使用。utxo分散在数百个交易和区块中可以理解为,张三每到一处消费完,都把“找零”的金子直接寄存到了交易地点,每次用的时候只需在图上的神秘机器上验证一下自己的DNA,金子就飞过来可以使用了。

一个 UTXO 可以是 1“聪”(satoshi)的任意倍数(整数倍)。就像美元可以被分割 成表示两位小数的“分”一样,比特币可以被分割成八位小数的“聪”。尽管 UTXO 可以是任意值,但一旦被创造出来,即不可分割。这是 UTXO 值得被强调的一个 重要特性:UTXO 是面值为“聪”的离散(不连续)且不可分割的价值单元,一个 UTXO 只能在一次交易中作为一个整体被消耗。

1聪可以理解为1个金原子,每块金子都是金原子的任意整数倍,但是金子一旦成型,就不可分割了,只能当做整体被融化。


我的其他文章:

从我持有跌幅超过90%的币中学到的

如果看完《韭菜的自我修养》你觉得收获不小的话,只能证明你还是个嫩韭菜

一个12年粉丝眼中的长铗

早赞声明:为方便早赞、避免乱赞,“BH好文好报群”为点赞者、写作者牵线搭桥,实行“先审后赞、定时发表”的规则,也让作品脱颖而出、速登热门!加群微信:we01230123(天平)

相关文章

网友评论

    本文标题:理解不了UTXO?也许你该看看这篇文章

    本文链接:https://www.haomeiwen.com/subject/czdntqtx.html