美文网首页
关于UTXO的Fee计算

关于UTXO的Fee计算

作者: 雨影 | 来源:发表于2020-09-17 17:32 被阅读0次

    一:基础知识

    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 元

    无法转出

    结论2:

    BTC的 utxo 越小,个数越多,手续费花费将越高。转出全部的功能未必可能是用户最希望的结果。

    相关文章

      网友评论

          本文标题:关于UTXO的Fee计算

          本文链接:https://www.haomeiwen.com/subject/kaalyktx.html