面向新手的完整指南:了解比特币手续费如何计算、费率为何变化、交易大小如何影响成本,以及如何加速未确认交易。
引言
发送比特币看似很简单:输入收款地址、选择金额、检查交易详情,然后点击发送。然而在这几个步骤背后,钱包需要构建一笔符合协议规则的交易,并选择一个合理的手续费,使交易有机会被网络传播并获得确认。
比特币交易手续费经常被误解。有人认为手续费按照转账金额的一定比例收取,也有人认为矿工为整个网络设定了固定价格。实际上,比特币采用的是有限区块空间的市场机制,钱包通常会根据交易的虚拟大小以及用户选择的费率来计算手续费。
因此,小额转账有时可能比大额转账更贵。如果一笔小额交易需要合并许多零散的 UTXO,它可能会占用更多区块空间;而一笔金额很大的交易如果只使用一个高效的输入,反而可能更加精简。
在 XTS,我们认为理解交易手续费是正确使用比特币的重要基础。它连接着 UTXO、Mempool、矿工、区块、节点、交易确认以及钱包设计等多个核心概念。
简短答案
比特币交易手续费等于交易输入总额减去交易输出总额。用户通过设置费率竞争有限的区块空间,费率通常以每虚拟字节多少聪(sat/vB)表示。
钱包通常会根据近期网络状况和用户期望的确认目标估算合适的费率。矿工或矿池随后从可用交易中选择交易构建区块,通常会优先考虑能够为所占区块空间带来更高收益的交易或相关交易组合。
什么是比特币交易手续费?
比特币交易手续费,是一笔交易的所有输入总额减去所有输出总额后所剩下的比特币。确认该交易的矿工可以收取这部分差额。
交易手续费 = 输入总额 – 输出总额
基础比特币交易中并不存在一个独立的“手续费字段”。节点会检查这笔交易引用的旧输出价值,再与新创建的输出价值进行比较,从而计算出准确手续费。
手续费通常以聪(satoshi)为单位。聪是比特币的最小单位,1 BTC 等于 1 亿聪。
为什么比特币需要交易手续费?
比特币以有限的速度产生区块,而每个区块可以容纳的交易数据也有限。当等待交易的需求超过近期区块容量时,用户会通过手续费竞争区块空间。
交易手续费主要发挥以下作用:
补偿矿工打包交易并维护区块链安全所付出的成本。
在需求较高时分配稀缺的区块空间。
提高大规模垃圾交易或滥用网络资源的成本。
让用户表达自己希望交易多快获得确认。
随着区块补贴逐步减少,手续费预计会继续成为矿工收入的一部分。
手续费无法保证交易在某个特定时间确认,但它会显著影响交易相对于其他待确认交易的竞争力。
比特币交易手续费如何计算?
比特币交易会使用一个或多个旧交易输出作为输入,并创建一个或多个新输出。发送方通常会创建收款人输出,并在需要时创建一个找零输出,将剩余价值退回自己的钱包。
假设一笔交易包含以下数值:
输入总额:100,000 聪
收款人输出:90,000 聪
找零输出:8,500 聪
交易手续费:1,500 聪
所有输出合计为 98,500 聪。输入的 100,000 聪减去输出的 98,500 聪,差额 1,500 聪就是这笔交易的手续费。
如果钱包忘记创建找零输出,所有未分配的余额都可能成为手续费。因此,设计良好的钱包会在签署交易之前仔细计算收款金额、找零和手续费。
比特币手续费不是按照转账金额收取
比特币通常不会按照转账价值收取百分比手续费。网络更关注交易占用了多少区块空间,以及交易是否符合协议规则。
一笔发送 0.001 BTC 的交易,如果需要使用许多输入,可能会非常庞大。另一笔发送 10 BTC 的交易,如果只使用一个输入并创建少量输出,则可能非常精简。因此,即使第二笔交易转移的价值更高,其绝对手续费也可能更低。
交易大小、权重与虚拟字节
在隔离见证(Segregated Witness)出现之前,人们主要使用字节来描述交易大小。现代比特币手续费计算通常会使用交易权重和虚拟大小。
交易权重会给予见证数据一定折扣。虚拟大小以虚拟字节(vbyte 或 vB)为单位,将交易权重转换为便于计算手续费的数值。钱包和手续费市场通常使用 sat/vB 表示费率。
预计手续费 = 交易虚拟大小 x 所选费率
交易的准确虚拟大小由最终签署后的完整交易决定。钱包可以在签署之前,根据预计使用的输入和输出类型进行估算。
什么是比特币费率?
费率表示交易每占用一个单位虚拟大小愿意支付多少手续费。最常见的用户单位是 sat/vB,也就是每个虚拟字节支付多少聪。
例如,一笔交易的大小为 140 vB,所选费率为 12 sat/vB,那么预计手续费为:
140 vB x 12 sat/vB = 1,680 聪
更高的费率通常能够提高交易在近期区块中被选择的机会,但如果明显高于当前市场需求,就可能造成不必要的多付。较低费率可以节省成本,但等待时间可能更长,也更难预测。
哪些因素会让比特币交易变大?
输入和输出的数量通常比转账金额更重要。以下因素会影响交易的虚拟大小:
作为交易输入使用的 UTXO 数量。
每个输入和输出的脚本或地址类型。
收款人和找零输出的数量。
所需签名或见证数据的数量。
其他脚本、花费条件或数据输出。
输入往往是交易大小的重要组成部分。这也是为什么持有许多小额 UTXO 的钱包,在合并这些输出进行支付时可能需要更高费用。
为什么比特币费率会变化?
比特币没有永久固定的交易价格。随着交易需求上升或下降,手续费市场也会不断变化。
区块空间需求
当大量用户同时广播交易时,更多交易会竞争近期有限的区块空间。矿工可能优先选择费率更高的交易,钱包也可能建议用户提高费率。
可用区块容量
每个区块能够包含的交易权重有限。需求旺盛时,等待确认的有效交易可能会排队进入多个未来区块。
Mempool 中的交易组成
如果 Mempool 中充满高费率交易,市场情况会与大多数交易费率较低时不同。达到某个确认目标所需的费率,取决于其他用户愿意支付多少,以及矿工可能选择哪些交易。
节点与矿工政策
节点会执行自己的转发和 Mempool 政策,矿工也会采用各自的区块构建策略。这些规则可能因软件版本和配置而异,因此无法保证每个有效交易都会以完全相同的方式被所有节点转发或被所有矿工选择。
矿工如何选择交易?
矿工和矿池会从自己能够看到的交易中构建候选区块。由于区块空间有限,他们通常会在确保区块有效的前提下,尽量提高每单位区块空间获得的手续费收入。
交易选择并不只是把每一笔交易单独按照费率排序。未确认交易之间可能存在父子依赖,因此矿工可能会评估一组相关交易。如果一个高费率子交易能够提高整个组合的综合费率,原本费率较低的父交易也可能一同被确认。
矿工是否选择一笔交易属于自愿行为。手续费能够提高竞争力,但没有任何单个矿工必须打包某笔交易。
Mempool 与手续费有什么关系?
Mempool 是节点本地保存的有效未确认交易集合。每个节点都维护自己的 Mempool,因此并不存在一个内容完全一致的全球统一等待区。
当需求增加时,高费率交易进入 Mempool 的速度可能超过区块确认速度。低费率交易可能继续等待,在符合政策时被冲突交易替换,或在节点达到空间限制后被部分节点移除。
一笔交易从某个节点的 Mempool 中消失,并不一定意味着它已经失效或在整个网络中被取消。它可能仍存在于其他节点中,只要交易仍然有效,也可能被重新广播。
钱包如何估算比特币手续费?
大多数用户不需要手动计算费率。钱包会观察近期交易与区块情况,估算交易的虚拟大小,并根据用户选择的确认目标建议费率。
钱包可能提供快速、普通、经济,或者按目标区块数量选择的选项。这些都只是估算,而不是承诺。交易广播后,网络需求可能发生变化;不同钱包拥有的数据和估算方法也可能不同。
例如,当有足够历史数据时,Bitcoin Core 的手续费估算器会估算一笔交易在指定目标区块数内开始获得确认所需的大致费率。不同估算模式会在短期响应速度与保守程度之间进行权衡。
手续费如何影响确认时间?
当矿工把交易写入一个被网络接受的有效区块后,交易便获得确认。特别是在网络拥堵期间,更高费率通常能够提高交易更早被打包的概率。
不过,确认时间具有概率性。区块不会严格按照固定间隔出现,交易需求可能迅速变化,不同矿工看到的 Mempool 也不完全相同,交易之间的依赖关系同样会影响选择。
对于紧急付款,用户应选择合理的确认目标,并在签署前检查费用。对于不紧急的转账,如果钱包支持后续调整费用,而且用户能够接受等待,较低费率可能更加合适。
如果手续费过低会发生什么?
低费率交易可能长时间保持未确认状态,而竞争力更强的交易会优先被打包。可能出现以下情况:
网络需求下降后,交易在较晚时间获得确认。
发送方通过可用的加速方式提高有效手续费。
交易因节点的空间限制或定期清理而从部分 Mempool 中被移除。
如果交易仍然有效,钱包可能重新广播。
符合相关政策的冲突替代交易被节点接受。
用户不应把未确认直接理解为交易失败。应先在钱包中检查交易状态,并了解钱包支持哪些恢复或提高手续费的方式。
什么是手续费替换(RBF)?
Replace-by-Fee(RBF)允许使用一笔手续费更高、同时符合节点替换规则的新交易,替换原来的未确认交易。钱包通常会通过减少找零、增加输入或调整输出等方式提高费用,同时保持原定付款目的。
当原始费率失去竞争力时,RBF 非常有用。具体替换方式取决于钱包支持和当前节点政策,用户应按照钱包提供的操作步骤进行,而不是自行随意构造替代交易。
什么是子交易为父交易付费(CPFP)?
Child Pays for Parent(CPFP)是一种加速方式:创建一笔新的子交易,花费低费率未确认父交易的某个输出,并为子交易支付足够高的手续费。矿工可能因为整个交易组合的综合费率具有吸引力,而把父子交易一起确认。
控制父交易输出的收款人可以使用 CPFP,控制未确认找零输出的发送方有时也可以使用。其支持程度和实际效果取决于钱包行为、交易关系以及矿工政策。
UTXO 如何影响比特币手续费?
钱包余额通常由多个 UTXO 组成。当一个 UTXO 不足以支付转账金额和手续费时,钱包可能会合并多个输出作为输入。输入数量越多,交易通常越大。
因此,Coin Selection(币选择)非常重要。钱包需要在付款金额、手续费、找零、确认状态、隐私以及未来花费效率之间取得平衡。
UTXO 合并
UTXO 合并通常是在费率相对较低时,把多个小额输出整合为较少的大额输出。这样可能减少未来交易需要使用的输入数量。
合并并不是免费的,而且可能因为连接原本分离的交易历史而降低隐私。因此,它既是一项手续费管理决策,也是一项隐私决策。
比特币交易会不会多付手续费?
会。由于手续费等于输入减去输出,如果钱包或用户错误计算输出和找零,就可能产生异常高的手续费。用户也可能主动选择远高于当前需求的费率。
钱包应在签署前清楚显示绝对手续费、费率、收款金额和找零。尤其在手动构建交易或使用高级 Coin Control 工具时,用户必须逐项检查。
比特币交易可以不支付手续费吗?
一笔交易即使不支付手续费,也可能符合比特币共识规则。但这不代表节点会转发它,也不代表矿工会打包它。节点的转发、Mempool 和矿工政策可能会把零手续费交易视为缺乏经济吸引力,或低于本地接受标准。
实际使用中,大多数普通用户都会添加手续费,因为他们希望交易能够顺利传播并在合理时间内获得确认。
谁会收到比特币交易手续费?
创建确认区块的矿工或矿池,会收取区块内所有交易的手续费。该区块的 Coinbase Transaction 会按照协议规则分配区块补贴和所收取的交易手续费。
钱包服务商、交易所或支付平台可能另外收取服务费或提现费用。这些费用并不一定等同于链上比特币交易实际支付的矿工手续费。
随着区块补贴下降,手续费会发生什么?
比特币的区块补贴会通过预定的减半机制逐步减少。因此,从长期来看,交易手续费预计会在矿工收入中占据更高比例,但未来手续费需求和挖矿经济状况无法被确定预测。
比特币协议目前已经把两类收入结合在 Coinbase Transaction 中:来自区块补贴的新发行比特币,以及来自区块内确认交易的手续费。
隐私注意事项
手续费决策会影响隐私,因为它会影响 Coin Selection 和找零输出。合并多个 UTXO 可能让观察者推测这些输出由同一个钱包或实体控制,UTXO 合并也可能连接原本分离的交易历史。
尽量避免不必要的地址重复使用。
了解钱包的 Coin Control 和标签功能如何运作。
把 UTXO 合并同时视为手续费决策与隐私决策。
手动构建交易时仔细检查找零处理。
不要为了降低少量费用而无意中暴露更多交易关系。
关于比特币手续费的常见误区
“比特币手续费按照转账金额的百分比收取。”
错误。手续费主要取决于交易虚拟大小和所选费率,而不是所转移的 BTC 价值。
“矿工为比特币设定统一固定手续费。”
不存在统一价格。用户和钱包选择手续费,节点执行本地政策,矿工决定打包哪些交易。
“支付更高手续费就能保证进入下一个区块。”
不能保证。具有竞争力的费率可以提高概率,但出块时间、需求和 Mempool 状况仍然会变化。
“转账金额越大,手续费一定越高。”
高价值付款可能非常精简,而小额付款可能需要许多输入并占用更多区块空间。
“未确认交易已经丢失。”
未确认交易可能仍在 Mempool 中等待,也可能稍后确认,或者可以通过支持的方式提高费用或重新广播。
“交易所提现费就是比特币网络手续费。”
服务商可以自行设定提现费用。该费用可能高于或低于服务商实际链上交易支付的手续费。
XTS 观点
在 XTS 看来,交易手续费不仅仅是支付给矿工的费用。它是连接用户、钱包、UTXO、Mempool、有限区块空间以及比特币去中心化安全模型的重要机制。
理解手续费能够帮助用户正确解读钱包估算,避免把付款金额与交易大小混为一谈,并理解交易为什么会保持未确认状态。Coin Selection、RBF、CPFP、UTXO 合并和矿工激励等进阶概念也会因此变得更容易理解。
我们的目标不是给出一个永远正确的固定费率,而是清楚解释决策依据。合适的手续费取决于最终交易结构、当前网络状况、期望确认目标、钱包功能以及用户对等待时间的接受程度。
常见问题(FAQ)
什么是比特币交易手续费?
简单来说,它是一笔交易输入总额减去输出总额后的差额。确认该交易的矿工可以收取这部分差额。
比特币手续费如何计算?
钱包通常会估算交易虚拟大小,再乘以所选费率。从协议角度看,准确手续费等于输入总额减去输出总额。
sat/vB 是什么意思?
sat/vB 表示每虚拟字节多少聪,用于描述交易为每单位虚拟大小支付的手续费。
为什么比特币手续费有时很高?
通常是因为大量交易正在竞争有限的近期区块空间。交易如果包含许多输入,也会因为体积更大而提高成本。
发送更多比特币会增加手续费吗?
不一定。输入和输出的数量与类型,通常比转账的比特币金额更重要。
谁决定比特币手续费?
发送者或钱包选择手续费;节点根据本地政策决定是否转发或保存交易;矿工决定是否将其写入区块。
发送后还可以提高比特币手续费吗?
有时可以。兼容的钱包可能支持 RBF 或 CPFP,具体取决于交易结构和当前政策。
手续费太低会怎样?
交易可能等待更久、从部分 Mempool 中被移除,或者需要使用钱包支持的加速方式。如果需求下降,它也可能稍后自然确认。
比特币手续费会支付给节点吗?
普通 Full Node 不会因为验证和转发交易而获得手续费。手续费由创建确认区块的矿工或矿池收取。
钱包或交易所收费等同于网络手续费吗?
不一定。企业可以另外收取服务费或提现费,与链上交易实际支付的手续费分开计算。
总结
比特币交易手续费由输入与输出之间的差额产生,而用户实际需要支付多少,主要受到交易虚拟大小以及有限区块空间手续费市场的影响。
手续费不是转账金额的百分比。它取决于交易如何构建、使用多少 UTXO、采用什么脚本、占用多少空间,以及用户在当前需求下希望多快获得确认。
钱包的手续费估算可以简化整个过程,但它仍然只是估算,无法保证确认时间。理解 Mempool、费率、RBF、CPFP、Coin Selection 和 UTXO 合并,可以帮助用户在网络状况变化时做出更好的决定。
在 XTS,我们相信这些知识是继续理解比特币钱包、交易确认、矿工激励以及更广泛数字资产生态系统的重要基础。
重点整理
- 比特币交易手续费等于输入总额减去输出总额。
- 手续费通常取决于虚拟大小和费率,而不是付款金额。
- 费率常用 sat/vB,也就是每虚拟字节多少聪表示。
- 输入和输出越多,交易通常越大。
- 网络需求会改变及时确认所需的费率。
- 钱包估算很有帮助,但不能保证具体确认时间。
- RBF 和 CPFP 有时可以提高未确认交易的有效手续费。
- UTXO 选择会影响手续费、找零与隐私。
- 链上手续费由矿工收取,服务商可能另外收费。
- 节点、钱包和矿工政策可能因软件与配置而异。
发表回复