第 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 为一条记录报告的字段,以及该交易在队列中的位置。
txid / wtxid7c2e…04ab分别是不含和包含见证数据的标识符。虚拟大小140 vB权重为 560 WU;表示它需要的区块空间。手续费1,120 sats输入减去输出。手续费率8 sat/vB手续费 ÷ 虚拟大小。矿工按此排序。时间首次发现该节点收到它的时间。祖先 / 后代0 / 0它依赖的未确认父交易或子交易(CPFP 交易包)。bip125-replaceable是携带主动启用信号。在 full-RBF 下无需信号,但替换交易仍须支付更多手续费并满足节点的替换规则。等待位置:按手续费率排序
- 45 sat/vB交易所提现
- 22 sat/vB付款
- 12 sat/vB付款
- 下一个区块在此处排满(≈ 10 sat/vB)
- 8 sat/vB你的交易
- 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. 拆分输入
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 聪。
检查点
关键术语
来源
审阅于 2026年10月25日;不构成财务建议