人们宣传比特币的时候常常会讲:“可以向各种张三李四免费转账。”其实不一定,有时还是需要手续费的。2013年,一个比特币的价格为20美元。2017年,转一个比特币要花20美元。
欧易OKX 全球顶级加密货币交易所,下载并注册欧易,免费领取高达60,000元数字货币盲盒奖励! 苹果版下载app需要去百度搜索美国ID买一个就可以下载注册填邀请码62342543
手续费的目的一来为激励矿工不辍挖矿,二来以维护比特币网络安全(维稳费?)。早期矿工的挖矿底薪比较高,每个区块50枚BTC,但是创世块之后每出21万个块(每四年),底薪减半。所有2100万枚比特币都被挖出后,由交易费充当挖矿奖励。关于减半算法的代码,长这样。CAmount GetBlockSubsidy(int nHeight, const Consensus:arams& consensusParams) { int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; // Force block reward to zero when right shift is undefined. if (halvings >= 64) return 0; CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy; }奖励金在2012年当时候从50比特[color=var(--theme-color)]币减半为25比特币,2016年从25比特币减半为12.5b比特币。大概2020年就会再减半为6.25比特币。那么,怎么确定什么时候需要掏交易费、掏多少合适?比特币网络规则内置交易费用结构,取决于系统推荐的(标准)客户端。 我们拿比特币核心(bitcoin core)打个比方,看看转帐时,需要过哪几道:1.花哪些币?客户端首先确定用哪些币来完成支付。好比, Bob给Alice转了2枚比特币;Rose又给Alice转了3枚比特币,那么两次转账金额会单独地趴在Alice的钱包中,直到被花出去。(注意:两笔转账不会“自动合并”为5BTC)。那么,经过一阵子,钱包中会积累不同金额的比特币,所以才说,得考虑下用哪些做支付。可用金额叫做交易的“输入”,最终发送金额(包括退回到钱包的找零)称为“输出”。2.避免过于零碎的支付若交易“输出”(包括找零)小于0.01BTC,则收取0.0001BTC的手续费。 “选币”时,算法会尽量避开那些找零金额低于0.01BTC的币。3.老币、大额交易优先若发送的比特币金额过小,或币龄过低,则很有可能被收取费用。 每笔交易都有优先级,由“输入”的年龄、金额和交易输入数量决定。具体而言就是, 客户端将每一笔输入的金额与该输入在区块中存在的时间相乘,将所有乘法结果相加再除以交易字节大小。若结果小于0.576,则收取交易费。所以,有一堆零碎且/或很新的“输入”,又不想掏手续费可以这么干,交易里加上一个大额且较老的输入即可。这里边,比较关键的就是这个金额x年龄的平均值。如果在第3步中某交易本来是收费的,但随着时间流逝,又有新的区块不断产生,那么原先交易中“输入”年龄也随之增长,进一步提升了交易的优先级,因此第3步中产生的费用可能会被免除。4.“称重”收费(按每千字节收费)最后,客户端检查交易的字节长度。长度取决于输入和输出的数量,大致可用下列公式计算:148 * 输入数量 + 34 * 输出数量 + 10若长度小于10000字节且在第3步中有足够高的优先级,那么这笔交易最终被确认为免费,反之需收费, 费用默认为0.0001BTC/千字节(不足1k的按1k计算)。
|