比特币转账的基础知识1

比特币没有账户概念。在 imToken 里你看到的 BTC 钱包余额是该助记词下所有地址的 UTXO 数量总额。

UTXO 有两种来源,一种是收到别人给你的转账,另一种是你转出时的找零。UTXO(unspent transaction output)中文名叫未花费输出。

假设你的 BTC 钱包分别收到了10笔 BTC 转入(合计3.3个 BTC),分别是:
5笔0.2 BTC金额的转入,3笔 0.1 BTC的转入,2笔 1 BTC的转入 。

如果你的 BTC 钱包没有进行过转出,那此时你的 BTC 钱包余额为3.3个 BTC。其中 UTXO 数量为 10 个。

当你看了这篇文章,希望打赏提莫 3 个 BTC 时。
你通过钱包授权签名,解锁 2个 1 BTC 的 UTXO ,5个 0.2 BTC 的 UTXO ,和1个 0.1 BTC的 UTXO 。其中7个 UTXO (价值3BTC)打包到区块里,这 3个 BTC 作为一个全新的 UTXO 发送给提莫,0.1 BTC 作为矿工费加入这个区块的Coinbase奖励中。(矿工费的支出不占用交易体积)

提莫得到一个金额为 3 BTC 的 UTXO。
你的 BTC 钱包剩余 2个 UTXO(0.1 BTC),合计 0.2 BTC。

关于比特币矿工费的计算:
交易体积( 148byte * input数量 + 34byte* output数量 + 10 (±40)) X 实时矿工费 (单位 sat/b 聪/每字节)
当你动用钱包里的 UTXO 时,它就变成了 input 这么一个状态, output 指向收款地址。在上面这笔转账中,你动用了 8 个 UTXO,所以 input 数量是 8 个。

所以得出结论:

BTC 转账时候需要动用的 UTXO 越多,转账所需要的矿工费也就越高。

如何降低矿工费:
1.减少 UTXO 数量,尽量避免频繁接收小额的 UTXO 。
以上面的3.3 BTC 为例,将你的 10个 UTXO 转到新地址,它在新的钱包地址里变成了 1 个新的 UTXO ,下次用新地址转账, input 也只有一个,所需要的矿工费自然就少了。
2.根据 https://bitcoinfees.earn.com/ 查看实时矿工费,在矿工费低的时候进行转账。

参考《精通比特币》与 Sun 总的分享。

6赞

对于矿工的钱包,UTXO 还有一个来源: Coinbase(挖出区块的奖励)

文章里没写实时矿工费是个什么东西

大饼每10分钟打包一个区块,每个区块1兆大小。
一笔最普通的转账算250字节,那10分钟(一个区块)只能放下4000笔交易,这也是为什么有人说比特币转账慢的原因了,4000除600(秒),就是比特币每秒种最多只能成交6笔交易。

矿工只认钱不认人,谁给的矿工费(sat/b)高就打包谁的 ,那大饼价格一上去,大家就疯狂转账,造成供不应求现象,大家只能疯狂当舔狗,给矿工更高的 sat/b 。

2赞

用以太比较多

阅读可涨知识

1赞

看不懂:pensive:

1赞