Hi 游客

更多精彩,请登录!

比特池塘 区块链茶馆 正文

小白入门-什么是UTXO?

yuan198299
1222 0 0
什么是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.
当一笔交易基于之前的多笔交易时,这些交易又各自基于多笔交易,但这并不存在任何问题。因为这个系统永远不需要提取一份所有历史交易的完整记录。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

yuan198299 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1