为什么矿工费这么贵?
行情回暖以来,比特币网络转账消耗矿工费单日最高 1250 万人民币。
2019.4.27-2019.5.27 矿工费数据统计(价格换算以 5月28日计)
区块链网络转账的活跃,让矿工费问题日益凸显,受到了更多重视。如果近期你尝试比特币转账,面对高额矿工费,是否默默取消了转账念头?
矿工费约需¥106
我们不会接受买一件¥200 的衣服却得交¥100 的税,同样难以接受一笔高额矿工费的小额区块链转账。如何从技术层面优化是开发者的任务,这篇文章主要介绍:
比特币和以太坊的矿工费机制
如何合理设置矿工费
矿工费的作用
除了鼓励矿工打包交易,保证代币正常流动,矿工费同时还保护着区块网络的安全,使其免于被滥用。
矿工费机制
BTC
矿工费 = 转账交易体积(byte) * 矿工费率(sat/byte)
通过这个公式,可知有两个因素影响转账的矿工费:转账交易的体积和矿工费率。
转账交易体积
比特币交易的本质是一种数据结构,其基本单位是未经使用的一个交易输出,简称 UTXO(unspent transaction output)。我们在钱包中所看到的余额,就是由这些和钱包地址存在联系的数个 UTXO 累计的。
如下图,3Ee6x...ceNQE 地址上有 0.00376546 BTC,他可能由一个交易输出为 0.00376546 BTC 的独立 UTXO 组成;也可能由一个交易输出为 0.00276546 BTC 的 UTXO 和另一个输出为 0.001 BTC 的 UTXO 累加而来。但具体的组成是确定的,因为构成这些的交易全都记录在比特币区块中。
截图为 imToken 比特币资产页面
发起转账需要使用 UTXO,来组成新一笔转账的交易输入,同时创建新的 UTXO 作为交易输出。由此,比特币在不同所有者之间转移,并在区块中不断消耗和创建 UTXO。
UTXO 和交易体积是什么关系?一般来说,UTXO 是影响交易体积的主要因素。
以下两笔转账为例:
交易 A 中消耗 3 UTXO 并创建 13 UTXO,交易体积为 803 byte
交易 B 中消耗 2 UTXO 并创建 4 UTXO,交易体积为 379 byte
在矿工费率一致的前提下,交易 A 所需矿工费是交易 B 的 2.1 倍。
作为矿工,每天挖矿所得就是一个 UTXO。当挖矿收入积累到一定程度需要转账时,就会出现由于交易体积过大(UTXO 数量过多)造成的高额矿工费。
交易 A
交易 B
矿工费率(sat/byte)
聪(sat)是比特币的最小计量单位,1 sat= 10^(-8) btc。矿工费率即指每字节交易体积需消耗的 sat。
矿工费率取决于比特币网络的拥堵情况。网络拥堵时,我们可以设置更高费率以使交易更快打包,而当更多人这么做,矿工费率就被不断提升。此时(2019.5.28),如果要使交易尽快打包,矿工费率已升至 200 sat/byte。
ETH
矿工费 = gasUsed(gas) * gasPrice(gwei)
gasUsed(gas)
gasUsed:交易消耗的总 gas 数量。
以太坊是一个智能合约平台,每一笔交易都在执行命令。而每个命令都被设置了对应的消耗值,以 gas 计数。这也就意味着,矿工为这笔交易执行了多少命令,就收取对应数量的 gas,如果 gas 有余,则返还给交易发起者。
gasPrice(gwei)
gasPrice 类似于比特币矿工费中的矿工费率,单位为 gwei,1 gwei= 10^(-9) eth。gasPrice 设置得越高,交易处理优先级越高。
如何合理设置矿工费
以 imToken 为例,imToken 会实时调节适应于当前区块网络的最佳矿工费设置,只需按照默认设置进行转账,即可兼顾快捷和实惠。
如果对转账时间有更高要求,也可以手动调节来满足需求。
矿工费「三挡变速」
常用工具推荐
对高级玩家,推荐两个实用工具:
https://bitcoinfees.earn.com/比特币矿工费查询工具,可查看不同矿工费设置对应的未打包交易数和预计打包时间。
https://ethgasstation.info/以太坊矿工费查询工具,功能同上。
希望以上可以帮你更好地理解矿工费。虽然网络拥堵时,我们仍然无法改变高额矿工费的现状,但了解为什么总是好事。