作者 | 晏文春出品|白话区块链
在比特币社区内,有一种这样的说法:其实并没有比特币,有的只是UTXO。还有一种说法是:如果理解了UTXO,你就理解了比特币。这两种说法虽然都有不同程度的夸张,但足以体现UTXO之于比特币的重要性。既然UTXO这么重要,今天我们就来简单介绍一下UTXO。
01 什么是UTXO
在当前的区块链项目中,主要有两种记录保存方式,一种是账户/余额模型,一种是UTXO模型。比特币采用就是UTXO模型,以太坊、EOS等则采用的是账户/余额模型。
第160次以太坊ACDE会议:确定纳入EIP-4844、6780、6475、1153:4月29日消息,根据Christine Kim对第160次以太坊执行层核心开发者会议(ACDE)进行的总结,本次会议主要讨论在下次坎昆(Cancun)升级中,需要纳入哪些代码修改。
除了此次升级的主角EIP-4844(降低L2手续费) 外,开发者还同意将以下EIPs纳入升级:
·EIP-6780(修改SELFDESTRUCT操作码的功能,主要是为未来应用Verkle树做准备);
·EIP-6475(为可选值引入新的简单序列化类型,以提供更佳的可读性和紧凑的序列化);
·EIP-1153(引入瞬态存储操作码)。
另外,还有部分EIPs提案尚未被正式接受纳入升级(EIP-6913、6493、4788、2537、5656)以及部分被确定不考虑纳入本次升级(Big EOF和EVMMAX)。
在对围绕坎昆EIPs进行讨论后,下一次会议议程将是关于EIP-4844的进展。
此前消息,以太坊核心开发人员会议中表示,计划对区块链的共识层进行代码修改,为下一次坎昆升级(Cancun-Deneb)做准备,预计将于今年晚些时候进行。
以太坊的Cancun-Deneb升级中预期的最重大变化将是EIP-4844,也称为“ proto-danksharding ”。 EIP-4844旨在通过以太坊节点实现链下数据的临时存储和检索,以满足区块链应用程序的数据和存储需求。如果成功激活,EIP-4844有望降低第2层rollup解决方案(包括Optimism和Arbitrum)的交易成本。[2023/4/30 14:35:10]
UTXO是 Unspent Transaction Output的缩写,意思是未花费的输出,可以简单理解为还没有用掉的收款。比如韩梅梅收到一笔比特币,她没有用掉,这笔比特币对她来说就是一个UTXO。
价值约1.8亿美元比特币从Gemini转出至未知钱包:金色财经报道,Whale Alert数据显示,11703BTC(价值约1.8亿美元)于今日07:09从Gemini转出至未知钱包。[2022/11/22 7:54:05]
02 账户/余额模型和UTXO模型
账户/余额模型生活中很常见,比如我们的银行账户、微信账户,都是基于账户/余额模型。
账户内的余额是作为一个整体存在的。李雷账户上有多少钱,看一下余额便知道,在发生交易时,变动的是余额。比如,情人节当天,李雷通过微信给韩梅梅转520元,李雷微信账户余额会减掉520元,而韩梅梅账户余额会增加520元。
FTX.US总裁Brett Harrison宣布辞职,将转做公司顾问:9月27日消息,FTX.US总裁Brett Harrison在其个人社交平台宣布将辞任FTX.US总裁一职,未来几个月其将工作重心转移至公司顾问角色。[2022/9/27 5:54:55]
UTXO模型则不同于账户模型。李雷有多少比特币,要对他比特币地址所有UTXO求和才知道。简单来说,UTXO模型就像我们用的钱包,而钱包里的每张纸币或每枚硬币都是一个单独的UTXO,因此钱包里有多少钱,并不一目了然,需要把所有纸币和硬币面额相加才能得出。
而每一次收付款,是以UTXO为单位消耗或者接收的。比如我们用10元钱买5元早餐时,这个10元作为一个UTXO先整体付给卖家,卖家再找零给你。
Optimism攻击者向V神的钱包发送100万个OP代币:金色财经消息,据PeckShield称,黑客攻击者盗取了2000万个用于加密做市商Wintermute的Optimism(OP)代币,已将其中100万个代币发送到以太坊联合创始人VitalikButerin的钱包地址。该漏洞利用者还将100万个代币的投票权委托给了以太坊基金会安全研究员YoavWeiss。
Buterin之前也将Optimism空投中的1,746个OP代币委托给了Weiss。Weiss发推文说他不是黑客,但暗示此人可能是白帽黑客。目前被盗的2000万中只有1800万留在了他们的钱包里。(theblock)[2022/6/9 23:02:55]
我们通过一个例子来说明。
情人节当天,李雷给韩梅梅买花,价格520元。用现金支付,他掏出6张百元大钞(相当于6个100元的UTXO)给卖家,卖家需要给李雷找零80元(50元、20元和10元纸币各一张)。这个过程中显而易见,李雷花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被“销毁”,变成了两个新的UTXO。(两者不同的原因在于,纸币面额的种类有限,而比特币不受这个限制)。
如果李雷和韩梅梅秀恩爱的过程发生在比特币网络上,转账过程是怎样的?
李雷挖矿得到系统奖励的12.5枚比特币,于是李雷比特币地址上就有一个12.5BTC的UTXO。
李雷要转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,比如1个UTXO,3个UTXO,没有0.5个UTXO的说法。
在上文中,我们介绍了比特币的一般性交易:调用一个UTXO给其他人付款,以及集合型交易:调用多个UTXO给其他人付款;你还能举出其他的交易类型吗?
——End——
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。