Utxo全称未花费交易输出,是比特币底层记账的核心单元,也是一类区块链账本模型的统称,很多人在交易所转账、钱包收发资产时,看到的余额并不是链上直接存储的数字,而是钱包程序汇总所有归属于自身私钥的Utxo计算得出的结果。不同于银行账户直接记录账户余额,Utxo把资产拆分成一笔笔离散的交易输出,每一份Utxo带有对应资产数额、锁定脚本、所属交易标识,只有持有匹配私钥才能解锁动用这份资产。每一笔转账不会修改原有数据,而是消耗已有的Utxo作为交易输入,再生成全新的Utxo作为交易输出,被消耗过的Utxo会永久失效,不会重复参与后续交易,从底层机制上规避双花问题。
Utxo完整的交易流转逻辑,可以用现金找零的逻辑来理解。当用户发起转账,钱包会自动挑选若干份可用Utxo作为输入,输入的总金额需要覆盖转账金额加上网络手续费,转账金额生成指向接收地址的新Utxo,多余的差额会生成一份属于发送方的找零Utxo,旧的Utxo随即被销毁退出全局Utxo集合。比如持有两份分别为0.5BTC、0.3BTC的Utxo,需要转出0.6BTC,钱包就会把两份Utxo全部消耗,生成接收方0.6BTC的Utxo,扣除手续费后,剩余部分以找零Utxo回到自己地址。全局Utxo集合保存全网所有可花费输出,全节点依靠这份集合快速校验交易合法性,不用回溯整条区块链完整历史,降低节点验证负担。
对比主流账户模型,Utxo模型的技术特性直接影响链上使用体验。账户模型以地址为主体,直接改写地址余额,适合复杂智能合约开发;Utxo的每一份输出相互独立,互不干涉,互不依赖,没有状态冲突,不共用账户状态,不同Utxo的交易可以并行校验,提升节点处理效率。合理使用Utxo还能优化链上隐私,每一次找零都可以生成全新地址接收输出,切断不同交易之间的地址关联,降低链上行为被溯源的概率。但Utxo也会产生碎片化问题,多次小额转账会堆积大量小额Utxo,也就是行业所说的尘埃输出,这类小额Utxo消耗时的手续费甚至会高于资产本身价值,长期堆积会增加节点存储压力,也会拉高后续转账的手续费成本。
Utxo的技术特性延伸出丰富的链上实际应用场景,不止局限于普通转账支付。多重签名托管方案依托Utxo脚本实现,多把私钥共同锁定一份Utxo,需要达到指定签名数量才能解锁资产,经常用于机构资金托管、多方联合钱包场景。时间锁脚本可以给Utxo设置解锁时间,资产在到达指定区块高度之前无法花费,适用于资产分期释放、链上遗赠类需求。部分公链还推出扩展Utxo架构,在保留原有输入输出机制的基础上增加数据字段,补齐智能合约能力,兼顾Utxo安全优势和可编程需求。交易所的冷热钱包管理内部,也会大量做Utxo合并整理,定期聚合零散小额Utxo,减少碎片化,优化提币转账的手续费与确认速度。
普通币圈用户在使用钱包、交易所提币时,也需要理解Utxo带来的现实影响。钱包余额波动不只是资产盈亏,Utxo的拆分合并也会改变链上输出结构,一次大额转账可能会消耗多份历史Utxo,同时产生多份新输出。钱包自动选Utxo的策略,会直接决定本次转账手续费高低,碎片化严重的钱包,提币时容易出现手续费偏高的情况,很多工具提供Utxo合并功能,在网络手续费低廉的时候整合零散输出,改善后续转账体验。Utxo作为比特币开创的记账范式,历经多次网络升级,像隔离见证、Taproot等升级都在优化Utxo数据体积与脚本能力,这套账本设计依旧是加密资产底层技术里值得研究的基础模块。

