简要介绍比特币的找零机制

在日常生活的支付场景中,消费者支付100元现金购买一杯25元的咖啡,店铺的收银员会找零75元现金。你不能从这100元纸币中取出25元进行支付,一张纸币只能整张花掉,这是纸币的找零机制。而比特币的找零机制与此类似。

在理解比特币找零机制之前,我们先要了解UTXO (Unspent Transaction Output,未花费交易输出),这是比特币交易模型中的核心概念(比特币白皮书中用一个章节专门描述,可见其重要性)。UTXO是指某次交易的输出 (output),这个输出还没有被用作其他交易的输入 (input),也就是说未被花费。

比特币网络中的任何一个全节点都会存储UTXO数据库,这是一个当前状态下的UTXO集合,当有新的交易上链,节点维护的UTXO集合会进行局部更新。一个钱包地址可能会有多笔UTXO,这些UTXO的数据总和,就是该钱包地址的余额。当你登陆任何一个钱包软件,钱包软件会通过节点查询出你的比特币接收地址对应的所有UTXO,并显示出你的余额。

假设A有一个UTXO0.5 BTCA要给B转账0.3 BTC,比特币不支持“从这0.5 BTC 里切出 0.3 BTC 留下 0.2 BTC”,它只能把整张 UTXO“花掉”,支付之后,0.5 BTC的那笔UTXO就被移除掉(从集合中删除),A会收到一个新的UTXO0.2 BTC(找零),B也会收到一个新的UTXO0.3 BTC

我画了如下一幅图,来解释UTXO的工作机制,A向B和C分别转账2 BTC和0.5 BTC,A的txid1被花费掉(从UTXO集合中removed),B收到2 BTC的UTXO,C收到0.5 BTC的UTXO,而A自己得到了一个0.5 BTC的UTXO(这一笔是找零)。

B又向D发起一笔支付,D收到0.15 BTC,而B收到1.85 BTC找零,B原本的new_txid那一笔UTXO被removed。
在完成上述的两次交易之后,UTXO集合中出现了4个新的UTXO,A、B、C、D四个人各自拥有一笔UTXO。你可以把UTXO想象成写着比特币金额的纸币。现实生活中,纸币的面额是固定的,而UXTO中的比特币金额是不固定的,十分灵活。
总结:现实纸币和比特币的关键相似点
现实纸币 比特币
一张纸币只能整张花掉 一个UTXO只能整份使用
剩余部分由收银员找零回你 剩余部分由交易输出返回给你
找零后你手上拿到新的纸币 找零后你钱包中得到新的UTXO
原始纸币进入收银机(不再使用) 原始UTXO被标记为已花费(removed
THE END
分享
二维码
打赏
< <上一篇
下一篇>>