区块链芝士| 比特币的找零机制是什么?

比特币的找零机制一直让人有些迷惑,明明只向一个地址发送了比特币为什么 blockchain 上面的显示的是1个地址对多个地址,有时是多个地址对1个地址,有时又显示多个地址对多个地址?为什么比特币资深用户要提醒大家当比特币钱包交易100次以上时再次交易后要重新备份钱包,恢复以前的钱包备份有可能会遭遇损失?
这一切都是因为比特币的找零(Change)机制。
有的时候输出的金额超过了用户想要支付的金额。在这种情况下,比特币客户端会创建一个新的比特币地址,并把差额发送回这个地址,这就是比特币的找零机制。
比如你想从商店买一块钱的棒棒糖,你打开你的钱包,发现里面只有一张20元面值的人民币。你能支付的最小金额是多少呢?当然不是1块钱,你不能把这张20元钱的纸币撕下20分之1再交给营业员。你必须把这张20元面值的人民币全部交给收银员,然后因为你只需要支付1元钱,收银员会找给你19元。
我们每天都这么进行一手交钱一手交货的交易,所以上面这个流程好像已经成为一种天经地义的事情。让我们打破这种思维惯性,看看会发生什么事。
现在让我们想象一下这样的场景:存在这样的一个系统,它允许收银员(或者其他什么人都可以)切实地销毁任意数量的真实货币(人民币),并且允许收银员打印出任意金额的真实货币作为替代。不一定是10元面额或者20元面额,如果需要的话,比如打印出 18.94537208 元面值的人民币。同时为了防止双重支付和伪造,必须确保在任何时候,新创建的货币金额与被销毁的货币金额是完全一样的。
这就是比特币的运作机制。与法定货币不同,我们习惯把这种方式称之为交易单元的输入和输出。
当你“支付”比特币,并创建一次交易时,你必须将你支付地址上可供支付的金额(来自该地址之前交易的输出)作为新交易的输入。这样的地址可能不止一个,你的比特币钱包会暗自寻找你钱包中所有可供支付的输出金额(可能来自于不同地址),并把它们加在一起显示为钱包可用余额。
所以,当你的比特币钱包说你有130个BTC时,它只是意味着你的所有地址上可供支付的交易输出加在一起共有130个BTC。这和你的普通钱包中放着1张100元和3张10元人民币差不多一个意思。大家理解了吗?
本文由 零点财经 作者:tao 发表,其版权均为 零点财经 所有,文章内容系作者个人观点,不代表 零点财经 对观点赞同或支持。如需转载,请注明文章来源。
分享生成图片
68

发表回复

区块链芝士| 比特币的找零机制是什么?

2021-02-05 17:44:05

比特币的找零机制一直让人有些迷惑,明明只向一个地址发送了比特币为什么 blockchain 上面的显示的是1个地址对多个地址,有时是多个地址对1个地址,有时又显示多个地址对多个地址?为什么比特币资深用户要提醒大家当比特币钱包交易100次以上时再次交易后要重新备份钱包,恢复以前的钱包备份有可能会遭遇损失?
这一切都是因为比特币的找零(Change)机制。
有的时候输出的金额超过了用户想要支付的金额。在这种情况下,比特币客户端会创建一个新的比特币地址,并把差额发送回这个地址,这就是比特币的找零机制。
比如你想从商店买一块钱的棒棒糖,你打开你的钱包,发现里面只有一张20元面值的人民币。你能支付的最小金额是多少呢?当然不是1块钱,你不能把这张20元钱的纸币撕下20分之1再交给营业员。你必须把这张20元面值的人民币全部交给收银员,然后因为你只需要支付1元钱,收银员会找给你19元。
我们每天都这么进行一手交钱一手交货的交易,所以上面这个流程好像已经成为一种天经地义的事情。让我们打破这种思维惯性,看看会发生什么事。
现在让我们想象一下这样的场景:存在这样的一个系统,它允许收银员(或者其他什么人都可以)切实地销毁任意数量的真实货币(人民币),并且允许收银员打印出任意金额的真实货币作为替代。不一定是10元面额或者20元面额,如果需要的话,比如打印出 18.94537208 元面值的人民币。同时为了防止双重支付和伪造,必须确保在任何时候,新创建的货币金额与被销毁的货币金额是完全一样的。
这就是比特币的运作机制。与法定货币不同,我们习惯把这种方式称之为交易单元的输入和输出。
当你“支付”比特币,并创建一次交易时,你必须将你支付地址上可供支付的金额(来自该地址之前交易的输出)作为新交易的输入。这样的地址可能不止一个,你的比特币钱包会暗自寻找你钱包中所有可供支付的输出金额(可能来自于不同地址),并把它们加在一起显示为钱包可用余额。
所以,当你的比特币钱包说你有130个BTC时,它只是意味着你的所有地址上可供支付的交易输出加在一起共有130个BTC。这和你的普通钱包中放着1张100元和3张10元人民币差不多一个意思。大家理解了吗?