8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

UTXO是怎么回事?

George 2021-3-22 1069

UTXO(Unspent Transaction Output)即为未消费交易输出的意思。在比特币中类似于以太坊中的账户模型。 在比特币中,一笔交易的每一条输入和输出实际上都是UTXO,输入UTXO 就是以前交易剩下的, 更准确的说是以前交易的输出UTXO。这是比较官方的一个说法。

简单来说,我们都知道比特币是虚拟的,本质上就是一串代码。而记录比特币交易的账户模型,就是UTXO。它记录了,包括你账户交易了多少比特币,两者的交易地址,资金来源,数额等等。所以本质上说,确实没有什么比特币,有的只是记录的一个个UTXO。

举个例子,假如我们现在钱包里有100块钱,你要花5块钱,然后找零95块。当你拿出来100块大洋花出去的时候,这100块就已经不能再算作UTXO,只有找零得到的95块,才会算作UTXO。所以,比特币使用前后所链接的公链,记录所有交易记录,当之前的 UTXO 出现在后续交易的输入时,就表示这个 UTXO 已经花费掉了,不再是 UTXO 了。不过整个新的交易,会记录在新的区块上,没有改变历史区块的数据。

另外还要提一下,UTXO与传统的账户系统有什么区别。假如有两个人,一个是小明,一个是小美。小明要给小美转100块钱。那么传统的账户模型是这样的:先判断小明账户里是否有100块的余额,然后在小明的账户里减少100块,在小美账户里增加100块。

但UTXO的机制是这样的:小明的账户里有200块钱,他要想给小美转账,必须将200块钱全部消耗掉。所以他不仅要给小美转100块,还要给自己账户转100块。这样一个好处就是,如果从第一个区块开始逐步计算所有比特币地址中的余额,就可以计算出不同时间的各个比特币账户的余额了。



最新回复 (2)
返回
发新帖