主页 > imtoken官网钱包app > 科普 | 如果没有 UTXO,比特币可能无法如此稳定地运行十几年

科普 | 如果没有 UTXO,比特币可能无法如此稳定地运行十几年

imtoken官网钱包app 2023-03-18 07:36:57

btc钱包安卓下载_btc钱包密码找回_btc钱包没了

作者| 严文纯

出品 | 白话区块链(ID:hellobtc)

在比特币社区有一种说法,没有比特币,只有UTXO。 还有一句话:懂UTXO,就懂比特币。

这两种说法虽然有不同程度的夸张,但足以体现UTXO对比特币的重要性。 既然UTXO这么重要,那么今天就简单介绍一下吧。

什么是 UTXO

在目前的区块链项目中,记录的方式主要有两种,一种是账户/余额模型,另一种是UTXO模型。 比特币采用的是UTXO模型(Nervos也是,只是改进了UTXO模型),而以太坊等采用的是account/balance模型。

UTXO是Unspent Transaction Output的缩写,意思是未花费的输出,可以简单理解为还没有被使用的集合。 比如韩梅梅收到了一个比特币,但是​​她没有花掉,这个比特币对她来说就是一个UTXO。

账户/余额模型 VS。 UTXO模型

账户/余额模型在生活中很常见。 比如我们的银行账户、微信账户都是基于账户/余额模型的。

账户中的余额是作为一个整体存在的。 李磊账户里有多少钱? 你可以通过查看余额来判断。 当交易发生时,改变的是余额。 比如情人节那天,李雷通过微信转账520元给韩梅梅,那么李雷的微信账户余额就会减少520元,而韩梅梅的账户余额就会增加520元。

UTXO模型不同于账户模型。 李雷有多少比特币,只能通过将他的比特币地址的所有UTXO加起来才能知道。 简单来说,UTXO模型就像我们使用的钱包,钱包里的每一张纸币或者硬币都是一个单独的UTXO,所以钱包里有多少钱不是一目了然的,需要对比一下纸币和硬币面额添加得到它。

每笔付款都在 UTXO 中消费或接收。 比如我们用10块钱买了一份5块钱的早餐,这10块钱会作为UTXO整体支付给卖家,卖家再给你找零。

让我们用一个例子来说明:

情人节那天,李雷给韩梅梅买了花,520元,是现金支付的。 李磊拿出6张百元大钞(相当于6张100元UTXO)给卖家,卖家需要给李磊80元零钱(一张50元纸币,一张20元纸币,一张10元-元注各)。 在这个过程中,可以明显看出,李磊花了600元买了花,换了80元,卖家卖花换了520元。

从UTXO来看,李磊花费了6个UTXO(6张100元),得到了3个UTXO(3张找零); 卖家得到了 6 个 UTXO,并花费了 3 个 UTXO 找零。

如果交易是用比特币完成的,过程会略有不同。 假设李雷用 6 个 UTXO 每个 1 BTC 支付给卖家 5.2 BTC,最终卖家得到一个价值 5.2 BTC 的 UTXO。 给李雷零钱是一个价值 0.8 BTC 的 UTXO。 也就是说btc钱包没了,6个UTXO被“销毁”,变成了2个新的UTXO。 (之所以不一样是因为纸币面额种类有限,而比特币没有这个限制)。

如果李雷和韩梅梅秀恩爱的过程发生在比特币网络上,转账过程会是怎样的?

李磊挖矿获得系统奖励12.5BTC(编者按:本文写于去年比特币减产前,现在比特币区块奖励为6.25BTC),所以李磊的比特币地址有12.5BTC的UTXOs比特币。

李雷想转5.2BTC给韩梅梅,12.5BTC的UTXO将被整体花掉,其中5.2BTC转给韩梅梅,剩下的7.3BTC找零给自己(对于为讨论方便,此处忽略矿工费)。 也就是说,之前的12.5 BTC是以一个UTXO的形式作为一个整体存在的。 在转账过程中,这个UTXO被“销毁”,不复存在,变成了两个新的UTXO:一个属于韩梅梅,这个UTXO价值5.2 BTC; 另一个是李雷的,这个UTXO价值7.3个BTC,这是李雷的零钱。

btc钱包密码找回_btc钱包安卓下载_btc钱包没了

转移资金时两种模式的比较

总结

UTXO的核心设计思想是:它记录的是交易事件,而不是最终状态。 计算一个用户有多少比特币,需要将他钱包里所有的UTXO加起来,结果就是他的持有量。 UTXO模型在转账交易中以UTXO为单位,也就是说支付时调用UTXO的整数倍,比如1个UTXObtc钱包没了,3个UTXO,没有0.5个UTXO。

上面我们介绍了比特币的通用交易——调用一个UTXO来支付给其他人,以及集体交易——调用多个UTXO来支付给其他人。 你能说出任何其他交易类型吗?

btc钱包密码找回_btc钱包安卓下载_btc钱包没了