前面的章节中已经提到过交易费,以后的章节也会陆续提到。本章主要讨论在比特币系统中,交易费是如何设定的。
当一笔交易被纳入比特币区块链的时候,就可能支付了一笔交易费。前面章节提到,交易费是比特币交易中输入金额(付款方支付的比特币)和输出金额(收款方收取的比特币)之间的差额——输入金额必须不少于输出金额,否则交易无法完成;如果交易的输入金额大于输出金额,那么这个差额就是交易费。交易费由将该交易打包进某个区块的矿工获得。
交易费的经济学意义非常有趣,也非常复杂。而且交易费的设定细节随时间变化而不断变化,我们在这里把时间框定在2015年年初,讨论交易费在那个时点是如何设定并运作的。我们也会在本节末尾简单叙述一下当前的情况。
交易费为什么存在?原因是在比特币网络中传播你的交易信息是需要成本的——每个节点传播交易信息,最后由一个矿工把这笔交易打包进一个区块,这些都有代价。举个例子,如果一个矿工将你的交易打包进他的区块,那么这个区块就会比其他区块大一点点,也会花费更多的时间传输到其他节点,这样,这个区块变成孤块的可能性就会提高,原因是在这一小段时间中,别的矿工也许刚好完成了区块打包。
不论是对于节点的传播还是对于矿工而言,确认你的交易都需要花费代价,交易费便用来补偿矿工处理交易所付出的代价。节点通常并不收取费用,当然,节点的运行成本也比矿工的运行成本低许多。交易费的金额可以由发起交易的人自由设定,也可以不设定交易费。通常来讲,如果你支付了较高的交易费,则交易将被更快、更可靠地传播和记录。
为了说明矿工如何设定交易费用,我们现在来看一下默认的交易费政策。但需要注意:首先,下文叙述的交易费政策基于2015年发布的现行第0.10.0版本,在后续版本中,交易费政策可能不同;其次,设置默认交易费的动机是为了防止区块链被大量小额交易所“污染”,而并不是想准确地评估矿工处理交易的成本。
当然,矿工无须遵守默认的交易费政策。在2015年,交易费在矿工收入中的占比不到1%,因此,大部分矿工是遵循默认交易费政策的。但随着挖矿奖励的降低,交易费在矿工收入中的占比会越来越高,我们可以预测,将会有越来越多的矿工不再遵守默认的交易费政策。
现在大部分矿工所默认的交易费是这样计算的:首先,如果交易满足以下三个条件,那就不需要支付交易费:
1.交易小于1 000个字节。
2.所有输出为0.01BTC或更大。
3.优先权足够高。
优先权是这样定义的:(所有输入的账龄的总和×输入金额)/交易规模。也就是说,先明确交易的输入所对应的上一笔交易,把每笔交易的账龄(交易完成到现在所经过的时间)及输入金额相乘,然后把乘积相加,就得到了优先权数据。注意,某笔交易的输出越长时间没有被消费掉,账龄就越高,那么,它被支付时,交易的优先权就越大。
如果一笔交易满足了上述三点要求,这笔交易会被传播,最后会被纳入区块链,这个过程是免费的。否则,交易就会被收取费用,当前默认标准是:每1 000个字节需要支付0.0001BTC,在2015年,这相当于每1 000个字节花费1美分的交易费,一笔交易通常包括:输入通常是148个字节,每个输出通常是34个字节,其他信息10个字节。如果一笔交易有两个输入和两个输出,那么这笔交易的大小是400个字节。
如果一笔交易没有满足上述要求,它也有可能会被纳入区块链,但如果你想要一笔交易被更快、更有保证地纳入区块链,那么就需要支付一笔标准的费用。因此,大部分钱包软件和支付服务商在它们的支付流程中,都包含了标准的交易费用,在日常比特币交易过程中,你会发现你支付了一定的交易费用。
当前,大多数的矿工会强制要求交易必须包含交易费,这意味着他们不会去处理那些没有付交易费的交易(或者最后处理)。当然也有些矿工没有这么做,他们愿意接受很少的交易费用甚至免费。