首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

小白入门-什么是UTXO?

什么是UTXO?

UTXO,全称Unspent Transaction Output,直译即未花费交易输出。

每笔比特币交易都有输入和输出,别人付给你的钱是“交易输入”,你收到的钱是“交易输出”。只不过当你没支付出去之前是“未花费的交易输出”,一旦你支付出去,就变成了真正的“交易输出”。

UTXO简单理解就是:取代了传统账户,用来快速计算你有多少数字资产余额的一种设计。

为什么中本聪采用UTXO的方式,而没用余额方式呢?

假设比特币和传统货币一样,使用账户余额系统,首先需要一个数据库,记录所有人的余额。这里假设全世界使用BTC的用户有10亿用户,每个人每天交易10次,那么平均每秒余额变动将达11万次,如果按照这个频次继续下去,用不了多久相关数据就会撑爆线上的服务器。

而UTXO的方案简单到极致:只确认交易本身,具有极大的优越性:

1. UTXO不能分割,只能被消耗,独立的数据结构大大减少了计算量;

2. UTXO配合地址使用,具备天然的匿名性,保证了账户的安全;

3. 因为地址的存在,UTXO的销毁和产生,都可追溯,很难伪造;

我们举个简单的例子:

以现金购买商品为例,我的钱包中有一张10元、一张5元和一张1元的纸币,一共16元。如果我买了一包烟,需要花费13元,需要拿出10元和5元的纸币,随后找零得到一张2元纸币。

这时候我要看自己的余额,钱包里剩下一张2元纸币和一张1元纸币,可以直接得出还剩3元。

但如果在区块链上,由于账本记录的都是交易记录,在查余额的时候,一共要进行3笔交易的计算(15元-13元+1元=3元)。

在这里如果使用UTXO的概念,之前的10元和5元由于已经花掉(消耗)了,便不再是UTXO了,再看钱包里的金额,相当于您只有两条记录,一条是找零新产生的2元,一条是原有的1元,这样计算量就减少了。表面单看这一笔并没减少太多计算量,但是随着交易量的无限增加,UTXO的数据会小很多。

正如,中本聪在比特币白皮书上说:

It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction’s history.

当一笔交易基于之前的多笔交易时,这些交易又各自基于多笔交易,但这并不存在任何问题。因为这个系统永远不需要提取一份所有历史交易的完整记录。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190821A0IFJM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券