风险提示:理性看待区块链,提高风险意识!
当前位置:首页 > 专栏 > 正文

UTXO是什么意思?比特币UTXO的原理解释

来源: 币界网时间:2024-04-26 18:16

 

什么是UTXO?

UTXO全名是Unspent Transaction Outputs,翻译过来是“未花费的交易输出”。UTXO是由中本聪发明的交易模型,并将此应用到比特币中。UTXO模型是比特币和许多其他加密货币的基本要素。

 

比特币交易中,每一笔交易实际上都是由若干个交易输入(Input)和输出(Output)组成的。交易输入是资金来源,交易输出是资金去向,每一笔交易都要从交易输入中花费出去一部分,这一部分就是未花费的交易输出(UTXO)。每一次的交易输入都可以追溯到之前的UTXO,直至最初的挖矿所得。

 

由挖矿所得创建的比特币交易,是每个区块中的首个交易,又称之为coinbase交易(生成交易),它由矿工创建,没有上一笔交易输出。

 

在比特币交易中 UTXO 就是基本单位,一个UTXO一旦被创建就不可被继续分割,它只能当作是下一笔交易的输入被花费掉,花费后产生新的UTXO,这样周而复始地实现货币的价值转移。所以我们在比特币钱包中所看到的账户余额,实际上是钱包通过扫描区块链并聚合所有属于该用户的UTXO计算得来的。

 

比特币钱包转账交易时,可以选择优先使用哪些UTXO,使用更加经济的UTXO组合或者特定的UTXO进行交易。通过矿工费设置和自定义UTXO的组合,用户可以不用担心“矿工费不足”的问题。用户可以转移剩余的比特币。任何数量比特币都不会在日常交易或最后一笔交易中浪费。

 

比特币UTXO的原理

在比特币的系统里,并没有一个记录所有帐户余额的帐本。那么要怎么确定一个地址现在有多少余额呢?简单的说,你要回顾以前所有的交易,并且找到所有转入给你的BTC,再把他们全都加起来,才会知道。

 

交易中的Input与Output

第一个要素是输入,也就是 Input。首先,并不是所有的交易都有这一项。比如每个区块里面都有一个矿工自治的特殊交易,也就是所谓的coinbase交易,它就是一个没有 Input的交易。这个交易中直接把一定数量的比特币转出给开采这个区块的矿工。除了这个特例之外,其他的交易都是有输入的。

 

比如A向B转账1个比特币,这个交易的输入(Input)就是和A的地址相关的一些交易,更准确的说,就是这些交易中包含的属于A地址的未消费的交易输出,也就是 UTXO 。

 

进入第二个要素,也就是交易中应该包含输出(Output)。在A给B转账一个比特币的交易中,交易的 Output 就是指向A的地址的这一个比特币。这样,UTXO 中的后三个字母 TXO ,其中 TX 代表交易,O 代表 Output。最后一个 U 指的是 Unspent,也就是未消费。A如果从来没有用这个 Output 做过其他交易的输入,那么这个 Output 就是没有被消费过的,就是 UTXO。

 

可以将UTXO比作我们的钱包中不同面额的纸币,例如5张100元、6张50元......钱包中有多少钱,无非就是把这些不同面额的纸币加起来后的一个总金额。

 

当明白了UTXO的概念后,使用UTXO转账的过程就容易理解了,当要进行转账时,支付的就是UTXO或UTXO组合。其实,使用UTXO转账的过程,和我们平时拿纸币去购物支付的过程是一样的。

 

以下示例说明:

A向B转账1BTC,即UTXO1:1BTC

C向B转账2BTC ,即UTXO2:2BTC

 

此时B的BTC地址上有2个UTXO,B的余额就是3 BTC,B的钱包中有2个UTXO可以使用,分别是:UTXO1、UTXO2。

 

在上例中,B的地址中有两笔UTXO余额,分别为1BTC和2 BTC。接下来,B要向D转账0.5BTC,那么,理论上来说B有两种转账方案(为了便于理解,转账费用暂不考虑):

方案一:B使用1 BTC的UTXO1给D转账0.5BTC,会收到0.5 BTC的找零;

方案二:B 使用2 BTC的UTXO2给D转账0.5BTC,会收到1.5 BTC找零;

 

如果B向D转账2.5 BTC,则需要这两笔 UTXO 都花费出去,然后会收到 0.5BTC 的找零。

为了方便解释,以上案例忽略了矿工费。矿工费的多少与钱包的类型,花费UTXO的数量,以及输出新UTXO的数量有关。

 


免责声明:

币界网免责声明:

1.本网站所提供的所有信息仅供参考,不构成任何投资建议。

2.用户在使用本网站的信息时应自行判断和承担风险。

3.币界网不对用户因使用本网站信息而导致的任何损失负责。

4.用户在进行任何投资活动前应自行进行调查和研究。

5.币界网不对用户基于本网站信息做出的任何投资决策负责。

6.用户在本网站发布的任何内容均由其个人负责,与币界网无关。