在
比特币社(shè)区内,有一种这(zhè)样的说法:其实并没有比特币,有的只是(shì)UTXO。还有一种说法是:如果理解(jiě)了UTXO,你就理解(jiě)了比特币。
这两种(zhǒng)说法虽然都(dōu)有不同程度的夸(kuā)张,但足(zú)以(yǐ)体(tǐ)现(xiàn)UTXO之于(yú)比特币的重要性。既然UTXO这么重要,今天我们就来简(jiǎn)单介(jiè)绍一(yī)下(xià)UTXO。
什么是UTXO
在当(dāng)前(qián)的
区块链项目中,主要有两种记(jì)录保存方(fāng)式,一种是账(zhàng)户/余(yú)额(é)模型,一种(zhǒng)是UTXO模(mó)型。比特币采(cǎi)用就是UTXO模(mó)型,
以太坊、EOS等则采用的是账户/余(yú)额模型。
UTXO是 Unspent Transaction Output的缩写,意思(sī)是(shì)未(wèi)花费的输出,可(kě)以简单(dān)理解为还没有用(yòng)掉的收(shōu)款。比如韩梅(méi)梅收到一笔比特币(bì),她没有用掉(diào),这笔(bǐ)比特币对她来说就(jiù)是一个UTXO。
账户/余额(é)模型和UTXO模型
账户/余额模型生活中很常见,比如(rú)我们的银行账户(hù)、微信账(zhàng)户,都(dōu)是基于账户/余额(é)模(mó)型。
账户内的余额(é)是作为一个整体存在(zài)的。李雷账户上有多少钱(qián),看一下余额便知道,在(zài)发生交易时,变动(dòng)的是余(yú)额。比如,情人节当天(tiān),李雷(léi)通(tōng)过微信给韩梅(méi)梅转520元(yuán),李雷(léi)微信账(zhàng)户余(yú)额会减掉520元,而韩梅梅账户(hù)余额会增加520元。
UTXO模型则不同于账户模型(xíng)。李雷(léi)有多少比特币(bì),要对他比特币地(dì)址所(suǒ)有UTXO求和才(cái)知道。简单来说,UTXO模型就(jiù)像我们用的(de)钱包,而钱包(bāo)里的(de)每张(zhāng)纸币或每枚硬币都是一个单(dān)独的UTXO,因此(cǐ)钱包里有多少钱,并不一(yī)目了然,需要把所有纸币和硬币面额相(xiàng)加才能(néng)得出。
而(ér)每一(yī)次(cì)收付(fù)款,是以UTXO为(wéi)单位消耗或(huò)者(zhě)接(jiē)收的。比如我们(men)用10元钱(qián)买5元早餐时,这个10元作为一个UTXO先整体付给卖家(jiā),卖家再(zài)找零给你。
我们通(tōng)过一个(gè)例子来说明。
情人节(jiē)当天,李雷给(gěi)韩梅(méi)梅(méi)买花(huā),价(jià)格520元。用现金支付,他(tā)掏出6张百元大钞(chāo)(相当于6个100元(yuán)的UTXO)给(gěi)卖家,卖家需要给(gěi)李雷找零80元(50元、20元和(hé)10元纸币各一张)。这个过程中显而(ér)易(yì)见,李雷花600元买花(huā),得到80元找零,卖家卖出花,得到(dào)520元。
从UTXO的角度看,李雷花掉了6个(gè)UTXO(6张100元(yuán)),得到3个UTXO(3张找零);卖家得到6UTXO,找零时花掉了3个UTXO。
如果用比(bǐ)特币完(wán)成这笔交易,过程就会稍有(yǒu)不(bú)同(tóng),假设李雷用(yòng)6个均(jun1)为1
btc的UTXO付给卖家5.2BTC,最后卖家得到一(yī)个价值5.2BTC的UTXO,找(zhǎo)零给李雷是(shì)一(yī)个价值(zhí)0.8BTC的UTXO,换句话说6个UTXO被“销毁”,变成了(le)两个新的(de)UTXO。(两者不同的原因在于(yú),纸币(bì)面额的种类有限,而比特币不受这个限制(zhì))。
如果李雷和韩梅梅秀恩爱的过(guò)程发生在比特币网络(luò)上,转账(zhàng)过程是怎样的?
李(lǐ)雷挖矿得(dé)到系统奖(jiǎng)励的(de)12.5枚比(bǐ)特(tè)币(bì),于是李雷比特币地址上就有一个12.5BTC的UTXO。
李雷要转(zhuǎn)5.2BTC给韩梅梅,12.5BTC的(de)UTXO将会被整(zhěng)体花掉(diào),其中(zhōng)5.2BTC 转给(gěi)韩梅梅(méi),剩下(xià)的(de)7.3BTC找零给自己(为方便(biàn)讨论,此处忽略矿工费(fèi))。换句话说(shuō),之前12.5BTC是以一个UTXO的形式整体(tǐ)存在的,在进行转账时(shí),这个UTXO被“销毁”了(le),不存(cún)在了,变成(chéng)了两个新的UTXO:一(yī)个属于韩(hán)梅梅,这个UTXO价值5.2BTC,另(lìng)一个属于李雷,这个UTXO价值7.3BTC,这是找零(líng)给李雷的(de)。
两种模型(xíng)在转账时的对(duì)比
UTXO 核心设计思(sī)路是:它记录交易事件(jiàn),而不记(jì)录最终状态。要计算某个(gè)用户(hù)有多少比特币,就要对其钱(qián)包里所有的UTXO求和,得到结果就是他的持币数量。UTXO模型在转账交易时(shí),是以UTXO为单位的,也(yě)就是说在支(zhī)付时,调用的(de)是整数(shù)倍UTXO,比如1个(gè)UTXO,3个UTXO,没有0.5个UTXO的说法。
版权申明:本内容来自于互联网(wǎng),属第三方汇集推荐平台。本文的版权归原(yuán)作者所有(yǒu),文章言论不代表(biǎo)链(liàn)门户(hù)的观点,链门户不承担任(rèn)何(hé)法律责任。如有侵权(quán)请联系(xì)QQ:3341927519进行反馈。