区块链
手动指定交易输出,掌握 BSV 应用设计的关键一步
理解比特币交易输出(output)的机制,从手动构造交易开始。本文介绍输出的类型、找零规则、索引顺序及常见误区,帮助你从“会发交易”进阶到“会设计 BSV 应用”。
林知衡
technical_editor
一句话理解
手动指定 output,就是明确决定这笔交易要创建哪些新 UTXO、每个 output 放多少 satoshis,以及用什么 locking script 锁住它。
如果说 input 是“花掉旧 UTXO”,那么 output 就是“创造新 UTXO”。比特币交易的本质就是这个循环:花掉旧 UTXO,创建新 UTXO。

output 决定交易的结果
一个 output 至少包含两个核心元素:
satoshis:这个 output 携带多少 BSV 最小单位。locking script:表示未来谁能花这个 output,或这个 output 是否只是承载数据。
一笔交易可以有多个 outputs。例如:
注意,手续费不是一个 output。手续费是 input 总额减 output 总额后的差额。
常见 output 类型
1. 普通支付 output
普通支付通常使用 P2PKH 或类似脚本。它表达的是:未来花费者必须提供对应公钥和有效签名。
2. 找零 output
当 input 金额大于目标 outputs 和手续费时,剩余金额通常要回到自己控制的地址。可以使用 change: true 标记找零输出,让 SDK 在计算费用后填充找零金额。
3. 数据 output
数据输出常见形式是 OP_RETURN。它不是为了未来花费,而是为了记录数据。
4. 应用协议 output
应用可以在 output 中放入符合某种协议的数据或脚本,例如 token 状态、凭证、订单、供应链事件。关键不是“能放进去”,而是要有可解析、可验证的协议格式。
output index 很重要
一个交易里的 output 有顺序。第一个是 index 0,第二个是 index 1。
未来要花某个 output 时,input 必须引用:
所以 output 的顺序会进入后续交易引用关系。
如果应用协议要求某个数据在第 0 个 output、某个 token 状态在第 1 个 output,就不能随意打乱顺序。钱包或 SDK 的 output randomization 功能在隐私场景有价值,但协议场景要谨慎使用。
手动 output 的完整流程
低层构造交易时,常见顺序是:
- 创建 Transaction
- 添加一个或多个 inputs
- 添加目标 outputs
- 添加找零 output
- 计算 fee
- 签名
- 序列化或广播
对应到 SDK 概念:
这比直接使用 createAction() 要繁琐,但它让交易结果的形成过程完全透明。
找零 output 不能漏
手动构造交易时,一个严重错误是忘记找零。
假设 input 是 10000 satoshis,你只创建一个 100 satoshis 的输出。如果没有找零,剩下 9900 satoshis 不会自动回到你账户里,而会变成手续费。
简化公式:
所以 outputs 写少了,手续费就会异常变高。
在 BSV 技术栈里的位置
BSV 应用的业务语义经常体现在 outputs 里。
- 付款应用:关注收款 output 和找零 output。
- 数据应用:关注
OP_RETURNoutput 的协议字段。 - Token 应用:关注代表资产状态的可花费 output。
- Overlay 服务:可能会根据 output 的脚本、数据格式和协议标识来索引应用数据。
因此,手动理解 outputs 是从“会发交易”进入“会设计 BSV 应用”的关键一步。
新手常见误解
- output 不是备注字段,它是交易的核心结果。
- 找零 output 不是可选细节,忘记找零会造成异常高额手续费。
OP_RETURN数据 output 和 P2PKH 支付 output 不是同一类东西。- output index 从 0 开始,未来引用 output 时必须指定正确 index。
- 输出顺序可能影响应用协议解析,不是所有场景都适合随机排序。
参考来源
推荐文章
区块链2026年5月20日
WIF、助记词与 HD Wallet:BSV 钱包密钥管理入门
WIF、助记词和 HD Wallet 都与密钥保存、恢复和派生有关,但含义不同。本文解释它们的区别、xpub 的作用,以及在 BSV 钱包和应用开发中的安全实践。
区块链2026年6月18日
交易链:一笔交易怎样花掉刚刚生成的 UTXO
理解交易链,才能真正理解比特币白皮书中“coin 是一条数字签名链”的含义。本文从最小模型出发,介绍 UTXO 在交易之间如何转移,以及交易链在 BSV 应用状态管理中的关键作用。
区块链2026年6月18日
为什么比特币交易的每个输入都需要单独签名?
理解比特币交易中多输入签名的必要性,避免常见误解,并了解 P2PKH 签名的基本逻辑、SDK 使用方法以及签名保护的具体内容。