BTC找零机制解析

时间:2021-07-12 14:12编辑:未知

1元 给 收银员

输出:

新发行的 1元 给 收银员

1元 给 你

由于大家天天都这么进行一手交钱一手交货的买卖,所以上面这个步骤仿佛已经成为一种天经地义的事情。让大家打破这种思维惯性,看看会发生啥事。

目前让大家想象一下如此的场景:存在如此的一个系统,它允许收银员(或者其他什么人都可以)切实地销毁任意数目的真实货币(人民币),并且允许收银员打印出任意金额的真实货币作为替代。可能不是10元面额或者20元面额,假如需要的话,譬如打印出 18.94537208 元面值的人民币。

同时为了预防双重支付和伪造,需要确保在任何时候,新创建的货币金额与被销毁的货币金额是完全一样的。在这样的情况下,你的买卖可能看着像下面如此:

新发行的 19元 给 你

这就是BTC的运作机制。与法定货币不同,大家习惯把这种方法称之为买卖单元的输入和输出。

当你“支付”BTC,并创建一次买卖时,你需要将你支付地址上可供支付的金额(来自该地址之前买卖的输出)作为新买卖的输入。如此的地址可能不止一个,你的BTC钱包会暗自探寻你钱包中所有可供支付的输出金额(可能源于不同地址),并把它们加在一块显示为钱包可用余额。

所以,当你的BTC钱包说你有130个比特币时,它只不过意味着你的所有可供支付的输出加在一块共有130个比特币。这和你的一般钱包中放着1张100元和3张10元人民币差不多一个意思。

让大家查询一下这次买卖:0a1c0b1ec0ac55a45b1555202daf2e08419648096f5bcc4267898d420dffef87,BTC推广客户端将19f地址上存在的之前某次买卖的输出:10.89 比特币全部支付出去,实质买卖金额为 10 比特币支付给 1KM这个地址, 0.89 比特币作为找零返还给 1HP这个地址。

就像一个人不可以只花20元人民币中的1元钱一样,BTC推广客户端也不可以只支付 10.89 比特币中的 10 比特币给他们。

10.89 比特币的前次买卖输出金额将全部作为新买卖的输入金额,并在这个过程中产生了两个新的可供支付的输出金额,10 比特币给1KM,0.89 比特币给1HP,两个输出金额加在一块正好等于 10.89 比特币。

19f 地址上面存在过的这个10.89 比特币可供支付的输出金额在这次买卖完成后将被彻底摧毁,整个BTC互联网将预防它被第三支付。

那两个新打造的可供支付的输出金额目前可以成为下次买卖的输入了。

这次买卖中,买卖手续费为0。假如买卖中支付手续费的话,输入和输出将会产生差额。(譬如,输入 10.89 比特币,输出 10.88 比特币,买卖手续费 = 0.01 比特币)

BTC钱包文件中包含了所有找零地址的私钥,它们可以正常的接收或者发送BTC。但,BTC官方推广客户端的界面上并不会把这部分找零地址显示在地址簿中,或许是为了匿名性的必要,这也是导致大多数人疑惑的地方。

由于BTC推广客户端刚开始只产生100个顾客专用地址的私钥,在创建找零地址时会优先用100个地址中的某一个,但当这部分地址都被用之后,100个以外新的找零地址就会被创建。假如你只备份了刚开始的100个地址的钱包,那样在上面这样的情况下恢复钱包将丢失新的找零地址。

输出:

1元 给 你

1元 给 你

BTC的找零机制一直被人有的迷惑,明明只向一个地址发送了BTC为何blockchain上面的每笔买卖有时显示为1个BTC地址对多个BTC地址,有时显示是多个BTC地址对1个BTC地址,有时又显示多个BTC地址对多个BTC地址?

为何BTC资深用户要提醒大伙当BTC钱包买卖100次以上时第三买卖后要重新备份钱包,恢复以前的钱包备份大概会有遭遇损失?

是的,这所有都是由于BTC的找零(Change)机制。本文参考 比特币的维基百科英文版 ,详细为大伙讲解一下BTC的找零机制是如何运作的。

BTC买卖的规则:将用户有权用的若干BTC汇款地址上的之前买卖的输出金额作为一次买卖的输入,若干BTC收款地址上增加的金额作为本次买卖的输出。输入金额需要大于等于输出金额,超出部分作为本次买卖的手续费。手续费没输出地址,奖励给将本次买卖记账成功的矿工。

由于有时作为输出的金额超越了用户想要支付的金额。在这样的情况下,BTC推广客户端会创建一个新的BTC地址,并把差额发送回这个地址,这就是BTC的找零机制。

譬如你想从商店买一块钱的棒棒糖,你打开你的钱包,发现里面只有一张20元面值的人民币。你能支付的最小金额是多少呢?当然不是1块钱,你不可以把这张20元钱的纸币撕下20分之1再交给营业员。你需要把这张20元面值的人民币全部交给收银员,然后由于你仅需支付1元钱,收银员会找给你19元。

除去中央银行,法律禁止其他人自己发行人民币,所以人民币都是固定面额的。这次买卖的步骤看起来就像下面如此:

10元 给 你

你的 20元 人民币 被销毁

输入:

1元 给 你

输入:

5元 给 你

20元 人民币

本文标签: 比特币 钱包 BTC

上一篇:没有了

下一篇:没有了