AICoin小课堂丨什么是比特币的UTXO

UTXO模型,全称Unspent Transaction Output,即未花费的交易输出,是一种特殊的账户记账模型。就好比信息君收到了一笔比特币转账,但他并没有用这笔比特币交易,这笔比特币对于他来说就是一个UTXO。

 

在当前的区块链项目中,主要有两种记录保存方式:一种是账户余额模型(又称“普通账户模型”);一种是UTXO模型,比特币采用的就是UTXO模型。以太坊、柚子等则采用的是账户余额模型。

 

账户余额模型可以类比为我们日常生活中的银行账户、微信账户等,用于直接记录结果。

 

比如,信息君的账户里有3万块钱,现在要给小A转账1万,然后就会从信息君的账户里扣除1万块钱,他账户余额变为2万, 小A的账户里增加1万。

 

UTXO模型则不同于账户模型,它是把整个交易过程记录下来。

 

UTXO核心设计思路:UTXO记录交易事件,而不记录最终状态。要计算某个用户有多少比特币,就要对其钱包里所有的UTXO求和,得到结果就是他的持币数量。UTXO模型在转账交易时,是以UTXO为单位的,也就是说在支付时,调用的是整数倍UTXO,比如1个UTXO,3个UTXO,并没有0.5个UTXO的说法。UTXO模型就像现实生活中的钱包,而钱包里的每张纸币或每枚硬币都是一个单独的UTXO。要计算钱包里的资金总额,则需要把所有纸币和硬币面额相加才能得出。

 

还是假设信息君的账户里有3万块钱,现在要给小A转账1万。UTXO在记录的时候,它会先记做信息君的账户里的3万块钱全部转了出来,然后再记录有1万块钱块转到了小A的账户里,接着又记录有2万块从信息君的账户转到信息君自己的账户。

 

整个过程中,UTXO会把牵扯到的账户资金、交易地址、转账资金、资金来源等信息全部记下。所以,UTXO的本质是一种流水记账,会把交易的过程记录下来。

 

UTXO模型会把每次交易过程都记录得明明白白,并且可以追溯每笔资金的来源(可追溯)。也正是基于这个特点,UTXO可以和共识机制一起解决双花问题

 

前面提到的,双花问题分为记账前双花和记账后双花两种情况。区块链解决第一种类型的双花问题(记账前双花),跟传统银行采取的方式相似,按照顺序一笔一笔处理交易。当节点在处理一笔交易的时候,会先通过UTXO模型检验交易资金存不存在,然后追溯这笔交易的源头,确定没问题后,就会通过共识机制进行全网广播,记录到链上。如果有人想要用同一笔钱支付两次,区块链网络只会确认先接受到的那一笔,之后那笔交易,节点会在查询UTXO时发现,这笔资金已经被支付出去,并不存在于他的账户中,从而拒绝交易,以此解决了记账前双花问题。

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

发表评论

暂时没有评论,赶紧抢沙发吧!