我最近在重新学区块链,巩固一下细节,也收集一个“区块链100问”,供小白们使用(大佬可以另找教程),每天更新1-2个。
推特:0x00pluto
当你从一个比特币地址向另一个比特币地址转账时,通常需要附加一笔额外的手续费给矿工。在比特币的底层协议中,并没有规定这笔手续费具体的数额是多少,只是要求地址中总输入不小于总输出,即你钱包中比特币的总量必须大于你要转账的数额加上手续费数额。
手续费的高低是由交易数据的大小和交易次数等因素决定的。在之前的区块链课堂中介绍过,比特币遵循的是UTXO模型,每笔交易都包含了若干笔交易输入和交易输出。而实际上,每笔未花费交易输出的组成方式都取决于你的交易输入,当你需要向其他地址转1个BTC的时候,它可能是由你交易输入中的5个0.2BTC组成,也可能是10个0.1BTC组成。
通常,一笔普通比特币交易是由一个输入两个输出(交易输出和找零输出)构成,大小在200字节左右,按每1000字节默认收费0.0001BTC计算,普通的比特币转账费用大概在0.001-0.002BTC之间;但是当单笔输入不足以支付输出时,就会出现上述的多个交易输入构成未花费输出的问题,此时其数据量就会变大。而未花费交易输出的构成越复杂,需要处理的字节就越多,手续费也就相应越高。
由于区块容纳交易记录的容量有限,矿工一般会优先打包手续费高的交易。当然,目前在使用比特币钱包进行转账时,大部分钱包可以根据网络数据,自动将手续费调整为最佳状态;但如果你的交易需要紧急确认,那么也可以选择自定义费用。