OKCoin

理解比特币交易费用

戴维 发布在 比特币 7 8830

enter image description here

作者:Bitzuma

译者:各安天命

稿源:巴比特资讯(www.8btc.com)

每一笔比特币交易都会收取付款人一定的交易费。与银行按照固定利率或交易总额比例收取费用不同的是,比特币的费用基于编码所需的数据量。想要理解这个系统并不难,但是它的细微差别和不直观的本质使许多比特币用户感到迷惑,无论是新手和老手。了解交易费用可以节省你的金钱和时间。本指南描述了比特币交易费系统是如何工作的以及如何有效地使用它。

一种昂贵的支付方式

费用通常在比特币交易额中占一小部分,但有时可以达到甚至超过被转移的金额。让我们假想一个案例,在这个案例中交易费的收取像是乱了套了。

Alice是一个成功的博主。她在每一篇文章的最后,都会附上二维码来接受比特币捐款。每月,Alice把捐赠地址中累积的余额转入她的Ellectrum wallet。通常需要大约1.5%的费用。有个月,Alice收到数以百计的小额捐款,总数惊人。不同于以往的过户,这一次似乎需要30%的费用。为什么会这样?

像Alice一样,你可能会在以下几种情况里碰到高交易费的情况:

  • 发布了一个用于收集捐款的地址;

  • 钱包用龄久且经多次支付;

  • 经常使用收取大量小额费用的在线游戏网站;

  • 使用提供免费比特币的网站;

  • 参与矿池;

  • 运行收费网站

比特币是一种电子现金系统

中本聪把比特币描述为一个“电子现金系统”。现在看来现金系统和信贷系统或网上银行系统的区别似乎并不重要。然而,理解比特币交易费用的第一步是忘记你所知道的这些其他支付方法。

假设你要记录纸币的来源,这些纸币也许是一部分慈善捐款。你可以使用信封来整理收到的捐款。每个捐赠者捐赠的现金都会被放入一个纸币信封(“现金信封”),经统计和重新分配后转入到新的信封。

enter image description here

比特币地址是一个数字“现金信封”

再往深了想,比特币可以被认为是一个电子版本的现金信封系统。一个地址有零或以上单元具体面值的电子现金。输入增加现金单元(和值)到地址,输出调动现金单元(和值)。比特币使用术语“未花费的币”(unspent output)来指其电子现金的单元。这个词源于比特币技术说明。幸运的是,根本就没有必要去了解细节。现在,当你看到“未花费的币”,想象下固定面值的纸币。

交易都是不平等的

比特币交易会将一个或多个未花费的币进行再分配。也许相反,交易费是基于交易再分配的“未花费的币”的总数,而不是他们的总值。

假设Bob的比特币地址里有1比特币(简称BTC)。当他在网上买了一件价6 mBTC的T恤,他的交易费是0.1 millibitcoins(mBTC),或1.7%。

Alice和Bob一样,比特币地址里有1BTC。然而,她收到的是成千上万的小额金额。当Alice购买同样价格的T恤时,她要支付0.4 mBTC的交易费,或6.7%。

enter image description here

Alice和Bob的储备金(funds)价值都是相同的。然而,Alice的地址比Bob包含更多数量的未花费的币。Alice可能要支付更多的交易费用。

Alice和Bob钱包里都有1BTC,又购买相同价格的相同物品,然而Bob支付费用为1.7%,而Alice支付6.7%的费用。这公平吗?

交易以一串数字数据出现,与电脑上的图片或其他文件是不同的。包含更多内容的文件会占用更多磁盘空间,需要更多的网络带宽来传输。同样地,在比特币交易中,重新分配更多未花费的币需要更多的数据,从而需要更多的资源来验证和存档。Alice之所以要支付更高的费用是因为她的交易所产生的数据需求对网络存储和带宽资源造成了更大的压力。

我们脑海里的再分配未花费的币的交易模型是准确的,但不完整。交易中未花费的币 变成另一笔交易的输入,从而形成交易链,每个成员将货币单元的所有权移交给下一位。在一场比特币交易中,储备金(funds)可以转移到一个或多个地址。

enter image description here

比特币交易链。前一个交易中的输出成为下一个交易的输入。第一个交易只有一个未花费的币。

输入和输出都会在交易过程中形成数据,最终造成了费用。

估计比特币交易费用

Bitcoin Wiki报道,在一笔交易中,每1000字节的数据增加0.1 mBTC费用。任何规模低于整千的,精确到千位。例如,675字节的交易费用为0.1mBTC。同样,1345字节的交易费用为0.2mBTC。

为了估计费用,我们需要一种方法来转换输入(in)和输出(out)为字节(size)。交易的确切大小只能签字决定,不幸的是对于许多钱包程序来说太迟,起不到作用了。然而,交易大小的上限可以用下面这个方程计算

size = 181 * in + 34 * out + 10

一个典型的交易需要两种输出——一为支付给收款人,二为接受零钱。使用上面的公式作为一个起点,我们可以看到交易中支付0.1 mBTC费用的最大输入是5。再加一个输入费用就将翻倍至0.2 mBTC。额外的11个输入将再翻两番到0.4 mBTC。

使交易费用最小化

交易费可通过以下两种方式达到最小化:(1)通过最小化小额输入数量;(2)通过减少使用每个输入的成本。这两种方法都是可行的,同时能有效地结合。

减少钱包中的小额输入总量的最简单方法就是从一开始就不要接收。如果你现在的收款方式是多次小额支付,那么考虑下改用大额支付的方式吧。

如果你不能控制付款的数量,例如因为你把捐赠地址发布在网上,你的钱包软件可能做出正确的决定来为你选择收入。如果不能,而你又觉得费用仍然过高,考虑使用支持钱币控制的钱包吧。

Bitcoin Core现在提供了一个方便的钱币控制功能。在选项屏选择“显示”选项,然后查看“显示硬币控制功能”框。

enter image description here

使钱币控制在Bitcoin Core上得以实现

选中钱币控制选项后,Bitcoin Core允许你选择任何交易的输入,只需点击发送屏幕上的“输入”按钮。这可能对整合大量的小额支付很有用。

enter image description here

Bitcoin Core钱币控制屏幕。个别的收入可以选择收入在一起,对合并大量小额未花费的输出也许会有用。

除了减少输入的次数,减少每个输入所需的数据需求也可以减少费用。 压缩的公共密钥使这一切成为可能,只需通过减少先前输入的字节需求,从180降到148。对于一个典型的有两种输出的交易,压缩的公钥使规模减少到足以容纳六笔输入,同时只需0.1 mBTC费用,相比之下,未压缩的公钥地址只能接受5笔输入。

想知道你的钱包是否使用压缩公钥,用你的私人秘钥查看Wallet Import Format。私人密钥以数字“5”为首,表示未压缩的公钥,那些以字母“K”或者“L”为首的代表压缩的公共密钥。

有些交易无需支付交易费

有些交易有资格不支付交易费。根据Wiki报道,如果满足这些条件用户可以免费交易:

小于1000字节; 所有输出大于10 mBTC; 输入值大且时间久

这些限制是为了防止恶意用户发布低价值“垃圾邮件”交易来试图干扰网络。最后一个要求使高价值交易无需支付交易费,只要交易之间所隔时间够久。这个要求被称为“优先级”(priority),公式为: priority = sum(input_value_in_base_units * input_age)/size_in_bytes

input_value_in_base_units 是每个用satoshis表示的输入(一个比特币相当于100,000,000 satoshis),input_age是每个输入收到的确认数量,size_in_bytes是用字节表示的交易量大小。优先级大于5760万的交易可以不用支付交易费。

重新安排优先级计算,并结合方程来估计交易大小,我们可以知道要等多长时间才能进行零交易费的交易: input_age = (57,600,000 * (181 + 34 * 2 + 10)) / input_value_in_base_units

想象Alice控制着一个价值100 mBTC未花费的币的地址。为了不支付交易费,她需要等待: (57,600,000 * (181 + 34 * 2 + 10)) / 10,000,000 或1492个确认。鉴于网络每天生产大约144个确认,Alice应至少等待10天。如果使用来自压缩公钥的接受地址,等待时间将缩短为9天。同样,如果将输入增加一倍到到200 mBTC,等待时间将缩短为5天。简单地来说,收到比特币的一天后支付是免费的。

实际网络中有例外

在这里阐述的交易费用规则已经编制进文档。然而,没有什么能迫使任何矿工或矿池遵守它们。一小群矿池接受任何有效的交易,不在意费用或金额大小。由于持反对意见的矿工为一小部分人,零费用交易最终可能得到肯定,尽管过程很慢。有时这种速度太慢导致不合格的零费用交易在还未得到证实之前就消失了。如果你想低价交易,耐心等待。

结论

  • 比特币交易费用起初似乎是任意无规则的,但实际上它们遵循定义良好的规则:

  • 比特币是一个电子现金系统。纸币的电子等价物是未花费的币。未花费的币成为下一笔交易的输入,如此等等;

  • 网络征收费用基于交易字节的大小,而不是它的金额;

  • 交易大小(换言之费用)的最大贡献者是输入的数量;

  • 用收到大量小额支付的地址支付付款会导致高额费用;

  • 钱币控制可以帮助整合大量的未花费的币,比如小费和其他小额支付;

  • 在收到比特币的一天之后再进行支付可以不交交易费

原文地址:http://bitzuma.com/posts/making-sense-of-bitcoin-transaction-fees/

译者BTC地址:1BmxVdvmyXdj3eHos1hx8ezqrJi3bD4v8k

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:7

您需要登录后才可以回复 登录|注册

    理解比特币交易费用http://t.cn/RvZJI6Y

    +1
    +1
    我要点评
    Author Image
    巴比特资讯 915 天前

    c0d4b42d3c443172c63966c0690fa961537601952f3cf81825869fd2ff1c878a

    +1
    +1
    我要点评

    //@地球人已经无法阻止比特币: 转发微博

    +1
    +1
    我要点评
    BTC社区
    BTC社区 932 天前

    可以选择,这也是为什么交易费低或者不付交易费的交易确认时间会非常长

    +1
    +1
    我要点评
    昌用
    昌用 932 天前

    矿工是不是能够选择交易费更高的交易进行记账?还是完全由协议限定交易费规则?如果有最新协议中关于交易费的强制性要求清单就好了。

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 932 天前

    【理解比特币交易费用】http://t.cn/RvZJI6Y 译者:各安天命 比特币的交易费基于编码所需的数据数量,而非交易总值,要理解这个系统并不难,但其细微差别和不直观的本质使许多比特币用户感到迷惑,了解交易费用可以节省金钱和时间。本指南描述了比特币交易费系统是如何工作的以及如何有效地使用它。

    +1
    +1
    我要点评