比特币作为新型的投资项目,最受投资者欢迎的一点就是费用低廉。通常情况下,我们可以免费将比特币发送到任意角落,但是某些情况,我们还是需要支付一定的手续费才能完成转账。本文对比特币手续费进行详解,一起来看看吧。 一、比特币手续费的作用 由于比特币区块大小有限。目前每个区块限制为1MB,大约能附带两千多条交易记录。当网络上等待确认的交易数量增多时,矿工们为了最大化自己的收益就会优先记录手续费高的交易。手续费低的交易只能等待更久才可能被确认。比特币手续费是奖励给矿工的,以激励矿工继续挖矿为比特币提供足够的算力从而确保比特币网络的安全。通过收取比特币手续费,我们也能限制垃圾交易恶意堵塞网络。目前矿工的主要收入是通过创造新的块(Block)来获得25BTC的奖励,但是这个奖励每4年减半,随着时间的推移比特币交易手续费奖励将逐渐取代创造新块的奖励。 二、比特币手续费的支付 在支付比特币收费时,采取的是老币、大额交易优先方式。若发送的比特币金额过小,或币龄过低,则很有可能被收取费用。每笔交易都有优先级,由“输入”的年龄、金额和交易输入数量决定。具体而言就是, 客户端将每一笔输入的金额与该输入在区块中存在的时间相乘,将所有乘法结果相加再除以交易字节大小。若结果小于0.576,则收取交易费。所以,有一堆零碎且/或很新的“输入”,又不想掏手续费可以这么干,交易里加上一个大额且较老的输入即可。这里边,比较关键的就是这个金额x年龄的平均值。如果在某交易本来是收费的,但随着时间流逝,又有新的区块不断产生,那么原先交易中“输入”年龄也随之增长,进一步提升了交易的优先级,因此该交易产生的费用可能会被免除。
交易收取的手续费将按照每千字节收费,长度取决于输入和输出的数量,大致可用下列公式计算:148 * 输入数量 + 34 * 输出数量 + 10。若长度小于10000字节且支付的老币或者交易有足够高的优先级,那么这笔交易最终被确认为免费,反之需收费, 费用默认为0.0001BTC/千字节(不足1k的按1k计算)。 可自行在客户端相关设置中更改交易费数额。低于0.0001BTC的设置不会生效。新费用设置生效后,尽量避开那些找零金额低于0.01BTC的币,两者不叠加。 三、比特币手续费支付流程 1. 筹备要发送的比特币 客户端负责收集钱包里的比特币余额为支付做准备,因为收到的每一笔比特币都存在钱包里面直到花掉它们。假如你收到3BTC与2BTC两次付款,它们在钱包的记录是相互独立的,即一个3BTC和一个2BTC,而不是合并为5BTC,随着时间的推移你的钱包里会积累许多这样数量不等的比特币,所以当发送比特币的时候钱包必须决定用哪些比特币最适合用来本次发送。交易中得到的比特币称为“输入(inputs)”,支出的比特币称为“输出(outputs)”,在你的钱包里存在多个输入和输出。
2. 阻止大量微额支付冲击网络 若交易“输出”(包括找零)小于0.01BTC,则收取0.0001BTC的手续费。“选币”时,算法会尽量避开那些找零金额低于0.01BTC的币。这种方式的产生,是因为钱包支付的时候具有既定的规则,即:在众多输入(inputs)中筹备支付金额的时候尽量避免产生小于0.01BTC的金额变动
3. 优先级 如果你发送金额太小或者是你的比特币刚开采出来不久,那么你的转账就不再免费之列。正如上文所说的,老币优先级更高。每一个交易都会分配一个优先级,这个优先级通过币的新旧程度、交易的字节数和交易的数量。如果此次交易的比特币大小小于0.576,它就是小额交易。如果确实大量的小额交易,又想免费转出,这时候可以加一个数额大的、币龄大的比特币金额,就会将平均优先级提高,从而可以免费转出比特币。同样,如果该次转账的大小超过10000字节但是优先级符合免费的标准,那么仍然可以享受免费转账,否则需要支付手续费。
四、小结 总而言之,比特币的手续费是其网络运行机制的一部分,它确保了网络的正常运作和安全。虽然存在手续费较高的情况,但对比传统银行来说,它仍是较低的。