简要介绍比特币的找零机制
在日常生活的支付场景中,消费者支付100元现金购买一杯25元的咖啡,店铺的收银员会找零75元现金。你不能从这100元纸币中取出25元进行支付,一张纸币只能整张花掉,这是纸币的找零机制。而比特币的找零机制与此类似。
在理解比特币找零机制之前,我们先要了解UTXO (Unspent Transaction Output,未花费交易输出),这是比特币交易模型中的核心概念(比特币白皮书中用一个章节专门描述,可见其重要性)。UTXO是指某次交易的输出 (output),这个输出还没有被用作其他交易的输入 (input),也就是说未被花费。
比特币网络中的任何一个全节点都会存储UTXO数据库,这是一个当前状态下的UTXO集合,当有新的交易上链,节点维护的UTXO集合会进行局部更新。一个钱包地址可能会有多笔UTXO,这些UTXO的数据总和,就是该钱包地址的余额。当你登陆任何一个钱包软件,钱包软件会通过节点查询出你的比特币接收地址对应的所有UTXO,并显示出你的余额。
假设A有一个UTXO为0.5 BTC,A要给B转账0.3 BTC,比特币不支持“从这0.5 BTC 里切出 0.3 BTC 留下 0.2 BTC”,它只能把整张 UTXO“花掉”,支付之后,0.5 BTC的那笔UTXO就被移除掉(从集合中删除),A会收到一个新的UTXO为0.2 BTC(找零),B也会收到一个新的UTXO为0.3 BTC。

| 现实纸币 |
比特币 |
| 一张纸币只能整张花掉 |
一个UTXO只能整份使用 |
| 剩余部分由收银员找零回你 |
剩余部分由交易输出返回给你 |
| 找零后你手上拿到新的纸币 |
找零后你钱包中得到新的UTXO |
| 原始纸币进入收银机(不再使用) |
原始UTXO被标记为已花费(removed) |

共有 0 条评论