关于UTXO的Fee计算
一:基础知识
sat 为btc最小单位1 btc = 100000000 sat
假设当前btc价格:¥73,578.16
当前时间矿工费的价格是: 61 sat/byte (不同时间会变化)
钱包的最小转账金额一般是 :
0.0000273 BTC = 2730 sat ≈ 2 元
手续费的计算公式
((148 * nIn) + (34 * nOut) + 10)
其中nIn是input的uxto的个数
其中nOut是output的uxto的个数 ,默认一般是 2
也就是最小的fee 是 花费 1个UTXO的情况:
148 *1 + 34 * 2 + 10 = 226 byte
那就相当于最小的手续费是:
61*226 = 13786 sat ≈ 0.00013 BTC ≈ 10元
结论1:
BTC不适合小额转账,如果转账小于10元的BTC,你转账的付出的矿工费会比你转账的金额高很多。
二:如果把账户中的所有BTC转到另一个账户
情况1:(正常情况)
》假如 uxto 总额为 0.1 btc ≈ 7357.8 元 , fee单价为: 61 sat/byte
》总共 uxto 数量 为 10 个
全部uxto需要的费用是
148 *10 + 34 * 2 + 10 = 1554 byte
1554*61 = 94794 sat = 0.00094794 btc ≈ 69.74 元
所以设置转账数量是 0.1 - 0.00094794 = 0.09905206 ≈ 69.74 就可以转出所有btc
实际到账 7,288.06 元
情况2:(uxto太小太多)
》假如 uxto 总额为 0.00273 btc ≈ 200.8 元, fee单价为: 61 sat/byte
》总共 uxto 数量 为 100 个 每个都是最小单位的数量 0.0000273 btc = 2740 sat
全部uxto需要的费用是
148 *100 + 34 * 2 + 10 = 14878 byte
14,878*61 = 907558 sat = 0.0907558 btc ≈ 6,677 元
此时 全部转出 btc的需要的fee 远大于 btc 的总金额,所以没办法转出。
例子比较极端,说明一个道理,小额的转账会让账户变得难用
情况3:(uxto 有多有少)
假设有uxto 101 个 分别为 总金额为0.02273 ≈ 1,672.4元
0.01 (2个)
0.0000273 (100个)
此时全部转出手续费为
148 *102 + 34 * 2 + 10 = 15,174 byte
15,174*61 = 925,61 sat = 0.0925,61 btc ≈ 6,810.46 元
无法转出