Skip to content
全部期权指南
比特币钱包机制8 分钟阅读

比特币 UTXO 详解:输入、找零与合并

了解比特币钱包余额如何由未花费输出组成、交易输入与找零如何运作,以及合并小额 UTXO 对手续费和隐私的影响。

本指南内容比特币钱包余额是多个输出的总和

简短摘要

比特币钱包余额通常是多个未花费交易输出(UTXO)的总和。付款会把选中的输出作为输入花费,再为收款人和必要时的找零创建新输出。合并可以减少未来付款的输入数量,但现在要支付手续费,也可能把公开交易记录关联起来。

比特币钱包余额是多个输出的总和

钱包界面可能只显示一个余额,但比特币账本并不像银行账户那样保存一条账户余额记录。钱包可以控制多笔先前交易创建、尚未花费的输出,也就是 UTXO。简单理解,链上余额是钱包能够花费的输出金额之和。每个输出还附有花费条件,因此它不是脱离交易记录、单独存在的一枚币。

一笔交易可以为多个收款人创建多个输出,所以付款笔数不一定等于 UTXO 数量。钱包也可能分别显示已确认、未确认、已锁定或仅供查看的金额。因此,界面显示的余额未必都能立即花费。UTXO 模型适用于比特币及其他采用类似结构的系统,并非所有加密资产都如此。

每个输入都指向一个具体的旧输出

比特币交易输入通过交易 ID 和输出索引标识某个先前输出,有时写成 txid:vout。输入还包含满足该输出花费条件所需的数据。之后,交易会创建一个或多个新输出。比特币开发者交易指南介绍了这套结构;区块链指南说明每个输出只能花费一次。

输出会被整体花费。比特币不会只花掉旧输出的一部分,再把剩余金额留在原输出里。如果输入金额高于付款金额,交易会为收款人和找零创建新输出。每个新输出都是独立的 UTXO,之后可按钱包规则再次花费。

一笔付款可以产生收款输出和找零输出

输入总额必须覆盖输出总额,两者的差额就是交易手续费。钱包可以选择金额超过付款需求的输入,再把余额返还到自己控制的新输出。这部分叫找零。找零是普通的新交易输出,不是链下退款,也不是撤销付款。

假设钱包选择了两个 UTXO,金额分别为 300,000 和 200,000 sat,总输入为 500,000 sat。如果收款人收到 420,000 sat,手续费为 2,000 sat,找零就是 78,000 sat:300,000 + 200,000 = 420,000 + 78,000 + 2,000。这只是解释机制的假设计算,不是当前手续费报价。找零会成为钱包控制的新输出,之后也可能被用作输入。

并非每笔交易都会产生找零输出。输入金额可能刚好接近付款和手续费,也可能一笔交易支付给多个收款人。签名前应查看交易预览。

输入越多,交易可能越大

每个被选中的 UTXO 都会成为一个输入,而网络需要相应数据来验证其花费。因此,输入较多时交易往往更大,但具体大小取决于输出类型和签名数据。手续费通常按虚拟大小和费率计算。BIP 141定义了 SegWit 交易的权重和虚拟大小。发送的 BTC 数量本身并不能决定交易大小。

在相同费率下,输入更多或更大的交易可能需要支付更高的总手续费。找零输出也会增加交易数据。关于大小、sat/vB 和手续费之间的关系,可参阅比特币交易手续费指南。

合并 UTXO 会花费多个输出并创建一个新输出

合并 UTXO 是创建一笔交易,把多个输出作为输入花费,再将扣除手续费后的总额发回同一钱包控制的一个新输出。之后付款时,钱包可能只需把这个合并后的输出作为一个输入,而不必逐个花费原来的输出。合并改变了未来花费的结构和潜在成本,但不会创造比特币,也不会抹去交易历史。

关键在于成本发生的时间。合并交易包含所有输入,可能较大,因此现在就要支付手续费。之后的交易仍要为自己的输入和输出付费,只是可能需要更少的输入。如果当前费率低于未来花费这些输出时的费率,把一部分输入成本提前支付可能有帮助;如果当前费率较高,现在合并反而可能更贵。未来费率未知,因此不能保证省钱。

不同钱包的输出选择方式不同

多数钱包会自动选择 UTXO。选择算法可能考虑付款金额、预计交易大小、手续费、找零和其他限制。目标并不总是单纯减少输入数量;钱包也可能权衡当前手续费、未来花费找零的成本,以及安全和隐私规则。具体方式和功能名称会因钱包及版本而异。

部分钱包提供 coin control,让用户查看或排除特定输出。这样可以把不同用途的资金分开,但选错输出也可能扩大交易,或把原本不想关联的输出放在一起。Bitcoin Core 的 listunspent RPC是供开发者查询 UTXO 的接口;普通用户不需要调用 RPC 才能理解钱包余额。

一起使用多个输入可能暴露隐私关联

比特币交易是公开的。一笔交易把多个输出作为输入花费时,观察者可以看到它们被一起使用。分析人员常把这种共同花费视为可能由同一方控制的线索,但这不能证明现实身份;协作交易也可能包含多个参与者。

把原本有意分开的输出合并,会让它们出现在同一笔公开交易里,从而削弱这种区隔。使用新的找零地址可以减少地址复用,却不能隐藏输入之间的关联或抹去历史。Bitcoin.org 隐私指南介绍了比特币交易公开且可追踪的特点,以及使用新地址的作用。

将当前手续费与未来用途一起比较

先查看钱包当前的手续费预览和它建议花费的输出。考虑你是否很快会一起使用多个小额输出、单独花费它们的成本相对金额是否偏高,以及当前费率是否适合合并。然后与未来付款可能需要的输入数量作比较。未来费率和交易结构都未知,因此预计节省并非确定结果。

也要考虑隐私和实际需求。分开的输出可能代表不同来源或交易对手的资金,而你未必想在公开记录中把它们关联起来。手动选择可以维持区隔,但需要更仔细检查收款人、找零和手续费。Lightning 使用与比特币链上交易不同的支付路径,可参阅Lightning 与链上支付的区别。向其他网络转账前,可参考加密货币网络与地址检查清单。

签名前检查交易详情

确认网络、收款地址、金额、钱包显示的输入、找零地址或金额,以及总手续费。确保找零返回到你控制的钱包。手续费较高可能是因为输入较多,而不是付款金额较大。

合并之前,确认你确实要一起花费所有选定的输出,并接受它们在公开记录中产生关联。合并不保证资金整个使用周期的手续费总额更低:现在要支付输入手续费,之后的新交易仍会产生手续费。关于备份和恢复,可参阅钱包助记词与备份指南。

常见问题

Q1一个 UTXO 就等于一个比特币吗?

不是。UTXO 是带有金额和花费条件的未花费输出。一个钱包可以控制多个 UTXO,并把它们的金额合计显示为余额。

Q2每笔比特币付款都会产生找零吗?

不一定。输入金额可能与付款和手续费相符,也可能一笔交易支付给多个收款人。请查看交易预览。

Q3合并 UTXO 一定会降低手续费吗?

不会。合并需要现在付费,也可能减少未来的输入。结果取决于费率、交易大小、钱包规则和时机。

Q4一起花费多个 UTXO 能证明它们属于同一个人吗?

它只公开显示这些输出被一起花费。共同控制是推断,不是身份的证明。

资料来源与延伸阅读

报告问题

我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈

快速检查

读完指南后,用 3 道题检查一下

问题 1 / 3

问题 01

一笔交易使用 300,000 和 200,000 sat 的输入,支付 420,000 sat,手续费为 2,000 sat。找零是多少?

选择答案即可查看解释

期权术语表