大多数钱包自动计算并计入交易费。但是,如果你编程构造交易,或者使用命令行接口,你必须手动计算并计入这些费用。交易费基于交易的大小,用千字节来计算,而不是比特币的价值。交易费不是强制的,而且没有交易费的交易也许最终会被处理,但是,包含交易费将提高处理优先级。交易的数据结构没有交易费的字段。相反地,交易费通过所有输入的总和,以及所有输出的总和之间的差来表示。从所有输入中扣掉所有输出之后的多余的量会被矿工收集走。
交易费被作为输入减输出的余量:Total Fees = Sum(Inputs) - Sum(Outputs)
计算失误可能让你给了矿工一笔可观的劳动费!如果你消耗了一个20比特币的UTXO来完成1比特币的付款,你必须包含一笔19比特币的找零回到你的钱包。否则,那剩下的19比特币会被当作交易费,并且会被挖出你的交易到一个区块中的矿工收走。尽管你会受到高优先级的处理,并且让一个矿工喜出望外,但这很可能不是你想要的。
如果你忘记了在手动构造的交易中增加找零的输出,系统会把找零当作交易费来处理。“不用找了!”也许不是你想要的结果。哈哈,小费。
Alice想为咖啡支付0.015比特币。为了确保这笔交易能立即被处理,Alice想支付一笔交易费,比如说0.001。这意味着总交易成本会变成0.016。因此她的钱包需要凑齐0.016或更多的UTXO。如果需要,还要加上找零。我们假设他的钱包有一个0.2比特币的UTXO可用。他的钱包就会消耗掉这个UTXO,创造一个新的0.015的输出给Bob的咖啡店,另一个0.184比特币的输出作为找零回到Alice拥有的钱包,并留下未分配的0.001比特币内含在交易中。
现在让我们换个例子。Eugenia,我们在菲律宾的儿童募捐项目主管,完成了一次为孩子购买教材的筹款活动。她在世界范围内接收到了好几千个小数额的捐款,总额是50比特币。所以她的钱包塞满了非常小的UTXO。现在她想用比特币从本地的一家出版商购买几百本的教材。现在Eugenia的钱包应用想要构造一个单笔大额付款交易,它必须从可用的、由很多小数额构成的大的UTXO集合中寻求钱币来源。这意味着交易的结果是从上百个小数额的UTXO中作为输入,但只有一个输出用来付给出版商。输入数量这么巨大的交易会比一千字节要大,也许总尺寸会达到两至三千字节。结果是它需要更高的交易费来满足0.0001比特币的网络费。Eugenia的钱包应用会通过测量交易的大小,乘以每千字节需要的交易费,来计算适当的交易费。很多钱包会通过多付交易费的方式来确保大交易被立即处理。高交易费不是因为Eugenia付的钱很多,而是因为她的交易很复杂并且尺寸很大——交易费是与参加交易的比特币值无关的。
2013年9月,一个家伙在交易0.01btc时,却将80btc作为附加交易费用捐赠给了矿工。
尽量在众多输入中筹备支付金额时不要发生小于0.01btc的金额变动,不然要收取0.0001btc手续费,阻止大量微额dust交易冲击网络。
转账的最后,客户端会计算大小(字节单位):value=148x输入金额+34x输出金额+10
value>10000字节但优先级符合免费标准,仍然free,否则money.每1000字节默认0.0001btc,也可以在钱包软件里追加费用,了解这些尽量来规避手续费,比如在交易所买入小额btc尽量大于0.01btc。
交易地址和找零地址是两个吗?
网友评论