比特币交易的核心结构就是两部分:交易输入(input)与交易输出(output)。输入负责说明要花掉哪一笔已经存在的比特币,输出负责说明这笔价值接下来交给谁、以什么条件才能使用。它并不是传统账户模型里的余额划转,而是围绕utxo(未花费交易输出)不断进行消耗与生成。上一笔交易产生的输出,可能在下一笔交易中成为输入,资金由此像链条一样持续传递。

交易输入可以理解为一份花费凭证。普通输入会指向此前某笔交易中的具体输出,记录交易哈希,也就是TXID,以及输出序号vout,用来精准锁定要使用的UTXO。输入还会携带签名脚本、序列号等字段,用于证明发起者拥有动用这笔资金的权限。采用隔离见证格式的交易,签名等见证数据还会放入Witness区域,但功能仍然是满足前一笔输出设置的解锁条件。节点验证交易时,会检查被引用的UTXO是否真实存在、是否已经被花费,以及数字签名是否有效。

交易输出则是新的资金安排。每个输出包含两项关键内容:数量和锁定脚本。数量以聪为最小单位记录,1枚比特币等于1亿聪;锁定脚本规定了未来什么样的签名或条件可以花费这笔资金。钱包界面通常展示的是地址,但在区块链底层,真正写入交易的是金额与脚本条件。输出一旦被确认且尚未花费,就会成为新的UTXO,等待下一次比特币交易引用。一个交易可以包含多个输入,也可以包含多个输出,数量并不固定。

大多数用户最容易忽略的是找零输出。比如钱包需要支付0.3 BTC,但选中的UTXO总额为0.5 BTC,交易通常会设置一个0.3 BTC的收款输出,再设置一个返还给自己的找零输出,剩余部分扣除交易手续费。若输入总额为0.5 BTC,输出合计为0.3001 BTC,那么0.1999 BTC就是找零与手续费共同作用后的结果,具体还要看钱包如何构造输出。找零并不是系统自动退回的余额,而是交易中专门创建的一笔新UTXO,钱包会为它生成新的控制条件。
比特币交易遵循一个清晰的关系:所有输入金额之和,不能低于所有输出金额之和,二者之间的差额就是交易手续费。手续费不会像收款金额那样写入某个普通地址,而是由打包交易的矿工获得。输入越多、输出越多,交易数据通常越大,所需支付的费用也可能越高,这也是钱包需要进行UTXO选择的原因。理解输入、输出、找零和手续费四个环节,就能看懂区块浏览器中的大多数比特币交易记录,也能判断一笔转账究竟是单纯付款、批量支付,还是内部整理资金。