本页面由英文自动翻译而成。自动翻译。

Switch to EnglishView in English报告翻译问题提出修改建议

返回课程

第 6 章-已通过 0/10 道测验

交易、找零与手续费

比特币(Bitcoin)交易不是从余额中扣除金额,而是消耗旧输出并创建新输出。

  • 追踪一笔交易的输入、输出、找零和矿工手续费
  • 根据交易重量和费率计算手续费,并解释交易卡住时会发生什么

快速解答

比特币交易如何运作?

它将未花费的输出(UTXO)作为输入消耗,并创建新的输出,通常一个给收款人,另一个用于给你找零。

比特币交易手续费如何计算?

手续费等于输入总价值减去输出总价值,费率则按每单位交易重量计算。

比特币交易卡住时会发生什么?

交易会在内存池(mempool)中等待;你可以使用手续费替换(RBF)提高其手续费,也可以从收款方使用子交易为父交易付费(CPFP)加快确认。

UTXO 模型

比特币不记录账户余额。它记录未花费的交易输出,即 UTXO:带有锁定条件的比特币。

  • UTXO 是受某个花费条件锁定的特定金额。
  • 钱包的“余额”是它能够花费的所有 UTXO 的总和。
  • 全节点保存所有 UTXO 的集合,因此无需重新处理每个区块就能检查新交易。

输入与输出

一笔交易会消耗旧输出并创建新输出。

  • 输入指向之前的输出并将其解锁,通常使用签名和公钥。
  • 输出创建新的锁定条件,每个输出都有一个金额。
  • 输入必须全额花费,不能只花费一部分。从一个 5 BTC 的输出中发送 1 BTC 时,钱包会添加一个找零输出,将剩余金额退还给你。
  • 输入总价值中未分配给输出的部分会成为矿工手续费。

交易包含什么

下面将逐字段解读后续实例中的支付。蓝色表示花费的部分,绿色表示收款人收到的部分,紫色表示你的找零,红色表示手续费。

解码后的交易(示意;标识符已缩短)
版本2交易使用的规则集。

输入(1):正在花费的币

前序输出7f3a…c91e : 0指向一个价值为 0.50000000 BTC 的先前输出。
见证签名+公钥证明密钥持有者批准了这笔花费。
序列号0xfffffffdBIP125 主动启用信号。自版本 28 起,Bitcoin Core 默认即使没有该信号也接受替换交易;版本 29 移除了退出替换的选项(RBF)。

输出(2):创建的新币

输出 00.10000000 BTC锁定到收款人的地址(bc1q…)。
输出 10.39998880 BTC找零,锁定到你自己的一个新地址。
锁定时间0在任何区块中均有效;没有时间延迟。

未写入任何地方

手续费1,120 sats输入减去输出。矿工获得其中的差额。
txid交易的哈希(hash)它在网络上的名称:对上述不含见证的数据进行两次 SHA-256 运算。

脚本就是锁定条件

每个输出都带有一个脚本,规定谁可以花费它。“发送到地址”是创建具有特定锁定条件的输出的简便说法;账本执行的是脚本,而不是姓名或账户。

  • P2WPKH:需要与指定公钥哈希匹配的密钥生成的一个签名。
  • 多签(multisig):需要 N 个密钥中的 M 个签名,例如 3 个密钥中的任意 2 个,或 5 个中的 3 个。
  • Taproot:一条密钥路径,以及一棵可选的脚本路径树。
  • 用于花费的输入提供满足脚本要求的见证数据。

手续费是一种费率,而不是固定金额

矿工获得报酬是因为提供了区块空间,而不是因为转移了多少比特币(Bitcoin)。

  • 大小以虚拟字节(vB)衡量。输入、输出和见证数据都会增加交易大小。
  • 费率以每虚拟字节的聪(satoshi)数表示(sat/vB)。
  • 手续费=大小×费率。一笔简单的 1 个输入、2 个输出的 SegWit 交易约为 140 vB;费率为 10 sat/vB 时,手续费为 1,400 聪。
  • 输入越多,交易越大;在相同费率下,手续费也越高。

内存池(mempool)与确认时间目标

有效但尚未确认的交易在各节点的内存池中等待:它们各自是一个等候区,并非共用同一条队列。

  • 矿工优先将费率最高的交易放入候选区块。
  • 当区块已满时,手续费较低的交易可能要等待很长时间。
  • 交易卡住了?可以用手续费更高的版本替换它(按手续费替换,即 RBF;自版本 28 起,full-RBF 是 Bitcoin Core 的默认策略),也可以在一笔支付额外手续费的子交易中花费它的一个输出(CPFP)。

内存池条目包含什么

每个节点都会自行记录每一笔等待中的交易。这里展示了 Bitcoin Core 为一条记录报告的字段,以及该交易在队列中的位置。

节点存储的一条内存池(mempool)记录
txid / wtxid7c2e…04ab分别是不含和包含见证数据的标识符。
虚拟大小140 vB权重为 560 WU;表示它需要的区块空间。
手续费1,120 sats输入减去输出。
手续费率8 sat/vB手续费 ÷ 虚拟大小。矿工按此排序。
时间首次发现该节点收到它的时间。
祖先 / 后代0 / 0它依赖的未确认父交易或子交易(CPFP 交易包)。
bip125-replaceable是携带主动启用信号。在 full-RBF 下无需信号,但替换交易仍须支付更多手续费并满足节点的替换规则。

等待位置:按手续费率排序

  1. 45 sat/vB交易所提现
  2. 22 sat/vB付款
  3. 12 sat/vB付款
  4. 下一个区块在此处排满(≈ 10 sat/vB)
  5. 8 sat/vB你的交易
  6. 3 sat/vB归集

手续费率为 8 sat/vB 时,你的交易要等待后续区块,除非手续费率下降,或者你使用 RBF 或 CPFP 提高手续费。

实际中的手续费估算

钱包根据最近的区块和当前的内存池估算费率。

  • “快速”目标使用的费率高于“经济”目标。
  • 多付的手续费不是小费,而是为有限的区块空间出价。
  • 当内存池清空时,同一笔交易本可以用更低的手续费获得确认。当区块已满时,出价过低的交易可能要等待数小时。
  • 好的钱包会展示时间上的取舍,而不只是显示聪的数量。

计算示例

你有一个价值 0.5 BTC 的 UTXO,并发送 0.1 BTC。你的钱包选择了 8 sat/vB 的费率,并估计交易大小为 140 vB。

逐步计算

1. 计算空间费用 140 vB × 8 sat/vB = 1,120 sats

2. 拆分输入

输入0.50000000 BTC
给收款人0.10000000 BTC
找零给你0.39998880 BTC
手续费(没有对应的输出;由矿工获得)0.00001120 BTC

3. 检查金额是否平衡 0.50000000 BTC − 0.10000000 BTC − 0.39998880 BTC = 0.00001120 BTC

除了创建新币的矿工 coinbase 交易,输出总额绝不能超过输入总额;凭空创造价值的交易无效。

隐私与常见故障

找零输出和地址复用会使交易之间的关联更容易被识别。币控功能让你选择要花费哪些 UTXO,这对保护隐私以及避免在小额支付中动用大额币都很重要。支付常见的故障包括:

  • 交易始终没有传播到其他节点。
  • 交易费率低于当前的最低费率门槛。
  • 交易被手续费更高的版本替换。
  • 内存池满时,交易被移除;或者约两周后,Bitcoin Core 将其从自己的内存池中移除。这并不意味着交易已取消:它仍可能被重新广播并获得确认。
  • “未确认”并不是一种承诺。更多确认通常会降低交易被撤销的风险,但没有固定的确认次数能保证交易最终不可逆;接收方会根据涉及的金额选择确认次数门槛。

你应该掌握的要点

一笔交易消耗 UTXO 并创建新的输出。手续费等于输入价值减去输出价值,其高低由交易权重和费率决定。内存池策略、RBF、CPFP 和找零管理会影响交易确认的速度,以及交易会透露哪些信息。

先回忆,再应用

一个输入为 200,000 聪,支付金额为 50,000 聪,交易大小为 150 vB,费率为 6 sat/vB。计算找零。

核对你的解释

手续费=150×6=900 聪。找零=200,000−50,000−900=149,100 聪。收款输出和找零输出合计为 199,100 聪。

检查点

第 1 题,共 3 题

一个输入为 500,000 聪。输出包括给收款人的 100,000 聪和 398,600 聪找零。手续费是多少?

第 2 题,共 3 题

一笔交易大小为 200 vB,费率为 5 sat/vB。它支付多少手续费?

第 3 题,共 3 题

你的交易因为费率过低而卡住了。你可以怎么做?

关键术语

来源

审阅于 2026年10月25日;不构成财务建议