只需3分钟,带你迅速理解UTXO。
在比特币社区,有一句老话——搞懂了UTXO,你就搞懂了比特币。
这句话或许有夸张成分,但也侧面反映了比特币的底层记录形式和逻辑。
UTXO(Unspent Transaction Output),意为“未花费的交易输出”。在这里,请你忘记这句抽象的话,仅需记住,它是比特币的记录保存形式。
这是中本聪创建比特币的时候所作的天才顶层设计。
一张图快速理解:
账户模型太容易理解了,我们每天和银行、微信、支付宝等打交道,你每天打开的各种钱包,查看自己账户、转账、收款都是这种类型。只要你登陆或打开,就能轻松看到自己的余额,并且可以便捷的进行转账等操作。
但是这种账户模型,是有可能出现”双花问题“(就是一笔钱被进行了双重花费,简称”双花“)。比如银行系统被黑,被欺骗了余额,就可能会出现。区块链历史上也曾多次出现这种情况。
此外,账户模型的隐私性也比较差,因为交易都绑定在一个帐户中进行和完成。不管你是支付宝还是微信交易,其实本质上都是从银行账户流出的钱,都是基于一个账户进行和完成的。
进一步说,由于账户模型都是按照一个个账户进行交替处理交易,这个模式下很难同时进行高吞吐量的操作——想一想12306抢票,想一想天猫双11你就是抢不到低价产品。
反观在比特币网络中,你的转账、收款行为就变成了UTXO模型。可以理解成:你的账户里有一张张写了金额的支票(即UTXO,且支票金额无法修改),你需要把支票金额相加,才可以知道你有多少钱。
当张三一共有2张100的支票(UTXO)的时候,他的余额是200;此时张三想转账给李四150,他必须把2张支票一起给李四(此时老支票销毁,也叫输入),然后自己重新收到一张50面额的支票(找零,也叫输出),而李四则收到一张150元面额的支票。
自此,这50面额的支票就算未花费的交易输出(UTXO)。
细心的朋友也发现了,交易过程中UTXO无法被分割成0.5的倍数或其他倍数进行交易,只能以整张整张去交易(想一想,支票写了100,你撕一半能算50吗?)
仔细端详,不难理解为什么UTXO模型更加安全,因为你每次发起的转账/交易请求,你的老”支票“都直接被销毁,在根据是否有找零情况生成一张新的支票。
这种机制下,你的余额是不可能欺骗系统的,因为你的支票在发起请求后就直接被销毁了。
由于UTXO模型交易的时候只认一张张的UTXO,而不是具体的账户,而且每一笔UTXO的交易都会以一个新地址生成(现在的钱包你都无感,实际你的比特币钱包地址=主地址+若干子地址组成),所以它的隐私性更佳;
更牛的是,在巨量的交易请求下,因为每个人的比特币余额是通过分散的 UTXO 存在的,每个 UTXO 都是单独独立计算,所以每个面值其实可以同时转账(或者叫分配)给不同的人,它是可以在一笔交易中同时完成的,不会涉及到账户一致性问题。这就在天然的顶层设计上解决了高并发问题。
中本聪真是天才。
到此,你应该就理解了为什么央行数字货币使用的是 UTXO 模型,不然深圳怎么给 5 万个钱包发送 1000 万数字人民币?
结语——
比特币之所以能成为世界级的黄金加密币,UTXO模型居功至伟,相当于用黄金去铸币。反观其他各种模型的公链,你会发现它们就像国家货币一样,不管如何包装,总会受到战争和灾难的影响而贬值,只有黄金和UTXO模型币才能做到真正的对抗。
比特币长达十年的稳定运行与实践测试,其安全性毋庸置疑。
我认为加密货币的核心三要素就是:公平、安全、隐私。
我坚定的看好比特币的未来,尤其是今年各种基于比特币协议的出现和爆发,虽然大部分还是属于MEME成分,但是已经在公平上把各种土狗盘摁在地上摩擦了。
韭菜被割怕了,也是该换一块土壤生长了。