摘要:所谓UTXO模型,简单来说,就是一种特殊的账户做账模型。它的中文意思称为“未花费交易导出”,它跟银行传统账户模型有一个很大的区别就是,这类模型只纪录交易自身,且不纪录交易的结果。

来源:互联网

比特币网络不是帐簿/余额模型,而是UTXO模型,UTXO是比特币交易生成及验证的一个核心概念。交易形成了一组链式结构,全部合法的比特币交易都能够追溯到前向一个或几个交易的导出,这些链条的源头都是挖矿奖赏,结尾乃是当前未花费的交易导出。所有的未花费(应用)的导出即整个比特币网络的UTXO。那么,究竟什么是UTXO模型呢?它又是怎么运作的?下面,我们一起来看看。


图片[1] - 什么是UTXO模型?UTXO模型是如何运作的?


什么是UTXO模型?

所谓UTXO模型,简单来说,就是一种特殊的账户做账模型。它的中文意思称为“未花费交易导出”,它跟银行传统账户模型有一个很大的区别就是,这类模型只纪录交易自身,且不纪录交易的结果。

像传统的银行帐户模型,它是直接纪录结果的,例如,我账户里有1万块,我要转给你3000,就会从我账户里扣减3000,我的余额是7000,你的账户里提升3000。

但UTXO模型不是这样记载的,他会将整个交易过程记下来,原理是这样的:还是假定我账户里有1万块,我要转给你3000。UTXO在记载的时候,他会先记做这1万块全部转了出去,然后纪录有3000块转到了你的账户里,还有7000块从我的账户转至我自己的账户。

整个过程中,它会把牵扯到的账户资金、交易地址,转账资产、资金来源等信息全部记下。以此就可以跟踪到每一笔交易的最初来源。因此,UTXO的实质其实是一种流水做账,会把交易的过程记下来。

这类模型的好处在于,它让每次交易过程,都被纪录得清清楚楚,并且可以追溯每笔资产的源头。也正是基于这个特点,UTXO可以跟共识机制一起处理双花问题。


UTXO模型的优缺点:

优点:

1、计算是在链以外,交易自身既是结果也是证明。节点只做验证即可,不需要对交易开展额外测算,也没有额外情况存放。交易自身的导出UTXO的计算是在钱夹完成的,那样交易计算压力完全由钱夹来承担,一定程度上降低了链的压力。

2、除Coinbase交易外,交易的Input始终是连接在某个UTXO后边。交易难以被重放,而且交易的先后顺序和依赖关系容易被验证,交易是否被消费也容易被举证。

3、UTXO模型是无状态的,更容易并发处理。

4、针对P2SH类别的交易,具备更好的隐私性。交易里的Input是互不相关联的,可以用CoinJoin这样的技术,来提高一定的隐私性。

比特币是怎么发行的?为什么还没有挖完?

缺点:

1、难以实现一些比较复杂的逻辑,可编性差。针对繁杂逻辑,或者需要情况保存的合同,完成难度高,且情况空间利用率非常低。

2、当Input较多时,印证脚本还会增加。而签字本身是较为耗费CPU和储存空间的。


UTXO模型是如何运作的?

1、地址和UTXO

在以往金融系统中,交易会从一个账户上取出资金转移到另一个账户上。比特币的UTXO模型没有账户,因此没有专门的发送方账户/地址。地址虽然被用于接收UTXO,可是永远不会直接记录在区块链上。比特币地址是scriptPubKeys的编号,包含在每个交易的输出中。

当比特币被花费出去时,输入只包括实行scriptPubKey所必须的签字和公钥,并没提及比特币来自区块链上的哪个地址。可是,UTXO的上一个地址是能够轻松测算得出的。每个交易输入都通过交易id来指出其前序交易,并通过检索来指出使用该前序交易的哪一个导出(实际上便是在引入已有的UTXO)。被引用的交易导出的scriptPubKey能够被转换成比特币地址。

2、比特币的财政政策

UTXO模型能让全部比特币节点在任意时刻就比特币的出现状况达成一致。换句话说,所有人都可以审计比特币的总供给量,来保证比特币的财政政策被严格执行。

3、UTXO的搭配和分割

一个比特币交易能够包括随意数量输入和输出。因此,客户可以随意组合和分割UTXO去完成随意数额的支付。

比如,Alice拥有2个UTXO,各自价值0.5BTC和0.7BTC。当她向Bob付款1BTC时,可以用这俩UTXO做为输入,再将1BTC的输入发送给Bob。

Alice还此外创立了一个0.199BTC的输出做为找零发送给自己。因为需要缴纳交易费,她没法为自己推送0.2BTC。

️交易费不因交易导出(UTXO)的方式体现。它是由输入值和输出值之间的差值测算得到。

4、交易验证

UTXO模型能让比特币节点有效验证链上的每个交易。当节点接到一个交易时,不管该交易是否已经打包进区块,均可验证该交易里的UTXO是否真的有效且没有被花费。正是如此,比特币可以在不依赖可靠第三方的情形下处理双重花费难题。


讲到这里,相信大家对于什么是UTXO模型,以及它是怎么运作的都有一定的了解了。总的来说,UTXO不但可以帮助共识机制处理区块链里的第一类双花问题,更赋予区块链可追源的特征,区块链也能以此为基本,确保每笔交易的真实与可靠。

比特币是如何实现总量恒定的?比特币的优点与缺点