没有UTXO,比特币或不能如此稳定运行10年
在比特币社区,实际上没有比特币,也有只有UTXO的说法。另一种说法是,如果你理解UTXO,你就理解比特币。
这两种说法有一定程度的夸张,但足以表现UTXO比特币的重要性。既然UTXO这么重要,今天我们就来简单介绍一下UTXO。
01UTXO是什么?
在现在的区块链项目中,主要有账户/馀额模型和UTXO模型两种记录保存方式。比特币采用UTXO模型,以太网坊等采用账户/馀额模型。
UTXO是UnspentTransactionOutput的缩写,意味着不收费的输出,可以简单地理解为还没有使用的收款。例如,韩梅梅收到比特币,她没有用。这个比特币对她来说是UTXO。
02账号/余额模型和UTXO模型。
账户/馀额模型在生活中很常见。例如,我们的银行账户、微信账户都是基于账户/馀额模型的。
账户内的馀额是整体存在的。李雷的账户有多少钱,看馀额就知道交易发生时,变动的是馀额。例如,情人节当天,李雷通过微信向韩梅转账520元,李雷微信账户馀额减少520元,韩梅账户馀额增加520元。
UTXO模型与账户模型不同。李雷有多少比特币,要求知道他比特币地址的所有UTXO。简单来说,UTXO模型就像我们用的钱包,钱包里的每张纸币和每张硬币都是单独的UTXO,所以钱包里有多少钱,一目了然,所有的纸币和硬币的面额都是必要的。
每次收到付款以UTXO为单位消耗或接受。例如,当我们用10元买5元早餐时,这10元作为UTXO首先全额支付给卖方,卖方再找零。
我们举例说明。
情人节当天,李雷给韩梅梅买了花,价格是520元。用现金支付的话,他会拿出6张100元的大钞(相当于6张100元的UTXO)交给卖方,卖方需要给李雷找80元(50元、20元、10元的纸币各1张)。这个过程很明显,李雷花600元买花,80元找零,卖方卖花,520元。
从UTXO的角度来看,李雷花了6个UTXO(6张100元),得到了3个UTXO(3张找零)的卖方得到了6UTXO,找零的时候花了3个UTXO。
用比特币完成这笔交易的话,过程会有一点不同。假设李雷用6个为1BTC的UTXO支付给卖方5.2BTC,最后卖方得到价值5.2BTC的UTXO,找零的李雷是价值0.8BTC的UTXO,换句话说,6个UTXO被破坏,成为2个新的UTXO。(两者不同的原因是纸币面额的种类有限,比特币不受这个限制)。
如果李雷和韩梅梅秀恩爱的过程发生在比特币网上,转账过程是怎样的?
李雷开采获得系统报酬的12.5枚比特币,李雷比特币地址有12.5BTCUTXO。
李雷把5.2BTC交给韩梅梅,12.5BTC的UTXO整体用完,其中5.2BTC交给韩梅梅梅,剩下的7.3BTC给自己找零(为了方便讨论,在这里无视矿工费)。换句话说,以前的12.5BTC以UTXO的形式整体存在,转账时,这个UTXO被破坏,不存在,成为两个新的UTXO:一个是韩梅梅,这个UTXO的价值是5.2BTC,另一个是李雷,这个UTXO的价值是7.3BTC
两种模式在转账时的对比。
03。总结。
UTXO的核心设计构想是记录交易事件,不记录最终状态。如果你想计算一个用户有多少比特币,你必须和钱包里的所有UTXO和平。结果是他的硬币数量。UTXO模型在转账交易时,是以UTXO为单位的,也就是说在支付时,调用的是整数倍的UTXO,例如一个UTXO,三个UTXO,没有0.5个UTXO的说法。
以上介绍了比特币的一般交易:调用UTXO向他人支付,集合交易:调用多个UTXO向他人支付,可以举出其他交易类型吗?