区块链2026年5月26日15 分钟阅读

Transaction Input 是什么:理解 BSV 交易输入与 UTXO 引用

Transaction input 是 BSV 交易的资金来源,它引用上一笔交易中的某个未花费 output,并提供解锁数据。理解 input 有助于掌握 UTXO 模型、outpoint、双花冲突、手续费计算和交易调试。

林知衡

林知衡

technical_editor

分享

在 BSV 的 UTXO 模型中,transaction input(交易输入)是当前交易的资金来源。它不会表示“从某个账户扣款”,而是明确引用上一笔交易中某个尚未被花费的 output,并提供解锁该 output 所需的数据。

理解 input,是理解 BSV 交易结构、手续费、UTXO 选择、双花冲突和交易调试的基础。

Transaction input 是什么

一句话概括:

Transaction input 是当前交易对上一笔未花费交易输出(UTXO)的引用。

BSV 不是账户余额模型。一笔交易不能简单写成:

  • 从 Alice 扣 10
  • 给 Bob 加 10

在 UTXO 模型中,资金存在于一组未花费交易输出里。要发起一笔新交易,就必须说明:这笔交易要花掉哪一笔旧 output。

这个“引用旧 output”的部分,就是 input。

除特殊的 coinbase 交易外,普通交易都必须通过 input 引用已有 UTXO。没有 input,交易就没有资金来源。

Transaction Input 是什么:理解 BSV 交易输入与 UTXO 引用 文章封面

交易为什么需要 input

在 UTXO 模型里,钱不是记录在账户余额字段中,而是分散在多个未花费交易输出中。

当你要花钱时,需要做两件事:

  1. 指出要花哪一个旧 output;
  2. 证明你有权花它。

因此,一个 input 通常包含以下信息:

  • 上一笔交易的 TXID;
  • 上一笔交易中的 output index;
  • 解锁该 output 所需的脚本或签名数据;
  • 一些序列号等控制字段。

组合起来看,input 的含义就是:

我要花掉某笔旧交易里的第 N 个 output,并提供对应的解锁材料。

outpoint:input 最关键的引用

input 中最核心的部分是 outpoint

outpoint 由两部分组成:

TEXT
1previous transaction id + output index

假设上一笔交易的 TXID 是 abc...123,其中有两个 output:

TEXT
1output 0: 给 Alice 100 satoshis
2output 1: 给 Bob 50 satoshis

如果当前交易想花 Alice 的 100 satoshis,就必须引用:

TEXT
1TXID: abc...123
2index: 0

只写 TXID 不够。因为一笔交易可以包含多个 output,必须通过 output index 指定具体要花哪一个 output。

input 不等于付款人

新手常把 input 理解成“付款人”。这个理解并不准确。

input 是资金来源,不是付款人身份。

它引用的是旧 UTXO。谁能花这个 UTXO,取决于旧 output 的 locking script,以及当前 input 提供的 unlocking data 是否匹配。

例如,在常见的 P2PKH 场景中,旧 output 可能锁定到某个公钥哈希。当前 input 要花它,就需要提供:

  • 对应的公钥;
  • 有效签名。

网络验证时会检查:

  • 公钥哈希是否与旧 output 的锁定条件匹配;
  • 签名是否有效。

只有验证通过,这个旧 UTXO 才会被承认为已被合法花费。

一个交易可以有多个 input

一笔交易不一定只引用一个 UTXO。很多交易会有多个 input,这通常意味着它们在合并多个旧 UTXO。

假设钱包里有三个 UTXO:

TEXT
1UTXO A: 30 satoshis
2UTXO B: 40 satoshis
3UTXO C: 50 satoshis

现在要支付 100 satoshis,单个 UTXO 不够。钱包可以选择多个 UTXO 作为 inputs:

TEXT
1input 1: UTXO A
2input 2: UTXO B
3input 3: UTXO C

input 总额为 120 satoshis。交易可以再创建 outputs,例如:

TEXT
1给收款人: 100 satoshis
2找零: 18 satoshis
3手续费: 2 satoshis

因此,多 input 交易不是异常。它只是说明这笔交易花费了多个 UTXO。

input 的解锁数据

input 不只是引用旧 output,还要提供“我有权花它”的证据。

在常见 P2PKH 场景里,input 会提供:

  • 签名;
  • 公钥。

而旧 output 的 locking script 会检查:

  • 公钥哈希是否匹配;
  • 签名是否有效。

这就是 input 与 Script 的关系:

input 提供解锁材料,旧 output 提供锁定条件。

只有两者匹配,交易验证才能通过。

input 与双花

同一个 UTXO 只能被花一次。

如果两笔交易都引用同一个 outpoint,它们就是冲突交易。例如:

TEXT
1交易 A input -> 引用 UTXO X
2交易 B input -> 也引用 UTXO X

这两笔交易不能同时有效。网络最终只能接受其中一笔进入有效链。

这就是双花问题在交易结构层面的表现:多个交易试图花费同一个 UTXO。

在 BSV 开发中的意义

开发 BSV 应用时,input 会影响许多工程问题,包括:

  • 钱包如何选择 UTXO;
  • 手续费如何计算;
  • 交易体积有多大;
  • 是否需要合并小额 UTXO;
  • 是否会暴露地址关联;
  • 交易是否依赖未确认祖先交易;
  • 签名是否匹配旧 output。

SDK 和钱包通常可以自动选择 input,但开发者不能永远把 input 当作黑盒。

当交易构造或广播失败时,常见原因包括:

  • input 引用的 outpoint 错误;
  • UTXO 已经被花费;
  • output index 写错;
  • 签名与旧 output 的锁定条件不匹配;
  • 交易依赖的未确认祖先交易存在问题。

理解 input 的结构,有助于定位这些问题。

新手常见误解

关于 transaction input,以下几点尤其容易混淆:

  • input 不是付款人账户,而是旧 UTXO 的引用;
  • 只写上一笔 TXID 不够,还必须指定 output index;
  • input 本身不是简单填写金额,验证时需要知道上一笔 output 的金额和脚本;
  • 多 input 交易不是异常,它只是花费了多个 UTXO;
  • 同一个 UTXO 被两笔交易引用,会形成冲突;
  • input 提供的签名必须匹配旧 output 的锁定条件。

小结

Transaction input 的本质,是当前交易对旧 UTXO 的引用和解锁。

它回答了两个关键问题:

  1. 这笔交易的钱从哪里来?
  2. 当前交易是否有权花这笔钱?

在 BSV 中,理解 input 不只是理解交易格式的一部分,也直接关系到钱包设计、交易构造、手续费估算、UTXO 管理和故障排查。

参考链接

专题

BSV基础知识

第12篇 / 共43篇文章

系统整理 BSV、区块链基础概念、协议能力和生态知识的专题文章。

查看专题

阅读路径

进度 12/43

  1. 01
    第 1 篇

    为什么 BSV 仍然值得关注

    阅读文章

    关于结算设计、数据持久性,以及为什么建设者仍在关注 BSV。

    2026年4月30日5 分钟阅读
  2. 02
    第 2 篇

    P2P Electronic Cash:什么是点对点电子现金?

    阅读文章

    点对点电子现金是理解 Bitcoin 和 BSV 的入口。它强调通过交易、签名和公开账本直接转移数字价值,而不是依赖中心平台账户。本文解释 peer-to-peer、cash、双花、UTXO 以及 BSV 为什么重视低费用、高频交易和链上数据。

    2026年5月19日15 分钟阅读
  3. 03
    第 3 篇

    时间戳服务器:区块链为什么是时间顺序记录?

    阅读文章

    区块链不只是账本,更是一台公开的时间排序机器。本文解释 Bitcoin/BSV 中 timestamp server 的含义、区块高度与确认数的作用,以及时间戳在防双花和数据存证场景中的价值。

    2026年5月20日15 分钟阅读
  4. 04
    第 4 篇

    Proof of Work:矿工为什么能排序交易?

    阅读文章

    Proof of Work 通过“计算昂贵、验证便宜”的机制,让矿工在开放网络中竞争新区块,并用累积工作量决定交易历史排序。本文解释 PoW 的工作原理、矿工为何能排序交易、其安全意义,以及 BSV 在大区块、低费用和高交易量方向下的矿工经济逻辑。

    2026年5月20日5 分钟阅读
  5. 05
    第 5 篇

    BSV 网络如何运转:交易、区块、手续费与矿工激励

    阅读文章

    本文用最基础的视角解释 BSV 网络的运行机制:交易如何构成、区块如何组织、矿工如何获得激励,以及为什么 BSV 特别强调低手续费、大区块和高吞吐链上交易。

    2026年5月20日15 分钟阅读
  6. 06
    第 6 篇

    SPV 入门:轻客户端为什么不需要下载全链

    阅读文章

    SPV(简化支付验证)让轻客户端无需下载完整区块链,也能验证某笔交易是否被包含在区块中。本文解释 SPV 的工作原理、Merkle proof 的作用、它能证明什么、不能证明什么,以及为什么 SPV 是 BSV 架构中的核心能力。

    2026年5月20日15 分钟阅读
  7. 07
    第 7 篇

    BSV 与 BTC/BCH 的路线差异:为什么强调链上扩容、低费和企业数据

    阅读文章

    BTC、BCH、BSV 都源自 Bitcoin,但技术路线明显不同。本文从链上扩容、低费用、稳定协议、SPV、企业数据和现实挑战出发,系统解释 BSV 为什么选择低费高量和大规模链上扩展路线。

    2026年5月20日15 分钟阅读
  8. 08
    第 8 篇

    WIF、助记词与 HD Wallet:BSV 钱包密钥管理入门

    阅读文章

    WIF、助记词和 HD Wallet 都与密钥保存、恢复和派生有关,但含义不同。本文解释它们的区别、xpub 的作用,以及在 BSV 钱包和应用开发中的安全实践。

    2026年5月20日25 分钟阅读
  9. 09
    第 9 篇

    BSV 主网 mainnet 与测试环境有什么区别

    阅读文章

    主网承载真实价值,测试环境用于学习和开发。本文梳理 BSV mainnet 与测试环境的区别、常见风险、SDK 使用中的注意事项,以及项目配置中的分环境建议。

    2026年5月24日5 分钟阅读
  10. 10
    第 10 篇

    钱包不是账户系统:BSV 钱包管理的是密钥和 UTXO

    阅读文章

    BSV 钱包不是传统账户系统。链上没有单一余额字段,钱包通过管理私钥、UTXO、交易构造和签名来计算余额并发起交易。理解这一点,有助于正确认识找零、多输入、非托管钱包和应用授权等关键概念。

    2026年5月24日15 分钟阅读
  11. 11
    第 11 篇

    BRC-100:钱包与应用之间的标准接口

    阅读文章

    BRC-100 是 BSV 生态中描述应用与钱包如何通信的接口标准。它强调应用表达业务意图,钱包保留密钥控制权,帮助非托管应用以更安全、统一的方式请求创建交易、签名和返回结果。

    2026年5月24日8 分钟阅读
  12. 12
    第 12 篇当前

    Transaction Input 是什么:理解 BSV 交易输入与 UTXO 引用

    阅读文章

    Transaction input 是 BSV 交易的资金来源,它引用上一笔交易中的某个未花费 output,并提供解锁数据。理解 input 有助于掌握 UTXO 模型、outpoint、双花冲突、手续费计算和交易调试。

    2026年5月26日15 分钟阅读
  13. 13
    第 13 篇

    理解 BSV Transaction Output:金额、Locking Script 与 UTXO

    阅读文章

    Transaction output 是 BSV 交易创建的新价值单元,通常由金额和 locking script 组成。它既可以表示付款和找零,也可以承载 OP_RETURN 数据、token 状态或业务记录。理解 output、UTXO 和 output index,是理解 BSV 交易与应用协议设计的基础。

    2026年5月26日15 分钟阅读
  14. 14
    第 14 篇

    TXID 是什么:BSV 交易唯一标识的作用、误区与设计建议

    阅读文章

    TXID 是 BSV 中最常见的交易标识,可用于查询交易、引用 output、保存业务记录和构建 SPV 证明。但 TXID 标识的是整笔交易,不等于 output,也不代表交易已最终完成。实际应用中应结合 output index、状态、raw transaction 和证明材料一起保存。

    2026年5月26日15 分钟阅读
  15. 15
    第 15 篇

    理解 BSV 交易中的找零 output:为什么它必须显式写入交易

    阅读文章

    找零 output 是 BSV UTXO 模型中的关键概念:旧 UTXO 必须整体花费,未用完的金额需要通过新的 output 退回给付款方。本文解释找零的工作方式、手续费关系、找零地址、隐私影响以及 UTXO 管理中的实践问题。

    2026年5月26日15 分钟阅读
  16. 16
    第 16 篇

    BSV 交易手续费如何计算:输入总额减去输出总额

    阅读文章

    BSV 交易手续费不是独立字段,而是输入总额减去输出总额。理解这个规则有助于正确处理找零、估算费用、管理 UTXO,并避免把余额误作为手续费。

    2026年5月26日15 分钟阅读
  17. 17
    第 17 篇

    什么是 raw transaction:BSV 交易序列化、TXID 与签名的基础

    阅读文章

    raw transaction 是交易按协议规则序列化后的原始字节表示,通常以十六进制字符串展示。它关系到 TXID、签名、广播和调试,是理解 BSV 交易底层机制的关键概念。

    2026年5月26日10 分钟阅读
  18. 18
    第 18 篇

    BSV 交易调试中的 Endian 问题:为什么 TXID 看起来会反过来

    阅读文章

    Endian 是 BSV 交易调试中常见的字节序问题,尤其容易出现在 raw transaction、TXID、outpoint、数字字段和 Merkle proof 中。理解显示格式与底层序列化字节的区别,可以避免很多“TXID 不匹配”或“proof 算错”的误判。

    2026年5月26日12 分钟阅读
  19. 19
    第 19 篇

    什么是 UTXO:理解 BSV 交易模型的基础

    阅读文章

    UTXO 是“未花费交易输出”,是 BSV 交易模型的基本单位。钱包余额并不是链上的账户字段,而是一组可控制 UTXO 的金额总和。理解 UTXO,有助于理解 BSV 的 input、output、找零、手续费、双花、Script 以及并行处理。

    2026年5月27日15 分钟阅读
  20. 20
    第 20 篇

    在 BSV 中,花钱就是消耗旧 UTXO、创造新 UTXO

    阅读文章

    在 BSV 中,花钱不是修改余额,而是消耗旧 UTXO、创建新 UTXO。理解这一点,有助于掌握付款、找零、交易链以及 token 和应用状态转移的基本逻辑。

    2026年5月27日12 分钟阅读
  21. 21
    第 21 篇

    一个地址可以有很多 UTXO:理解 BSV 中的地址、余额与交易构造

    阅读文章

    在 BSV 的 UTXO 模型中,一个地址不是账户,也不是单一余额槽。同一个地址可以关联多个 UTXO,钱包余额只是这些 UTXO 的汇总。理解这一点,有助于正确处理交易构造、手续费、UTXO 碎片化和隐私问题。

    2026年5月27日5 分钟阅读
  22. 22
    第 22 篇

    UTXO 模型为什么适合并行处理?——BSV 扩容的技术基础

    阅读文章

    UTXO 模型将状态拆分为独立输出,使得交易验证可以并行进行,为 BSV 的链上扩容和高吞吐提供了关键数据结构基础。本文对比账户模型与 UTXO 模型,解释并行性原理、实际限制以及与 Teranode 和应用设计的关系。

    2026年6月2日3 分钟阅读
  23. 23
    第 23 篇

    理解比特币双花问题:为什么同一个 UTXO 不能被花两次

    阅读文章

    双花是数字现金系统的核心问题。本文用通俗语言解释双花的原理、交易结构、矿工作用、0-conf 风险、签名与双花的关系,以及工程实践中的注意事项。

    2026年6月2日3 分钟阅读
  24. 24
    第 24 篇

    理解 BSV 中的 Locking Script:花费条件的核心机制

    阅读文章

    Locking script 是 BSV 交易中不可或缺的部分,它定义了 UTXO 的花费条件。本文从基础概念出发,逐步解析 locking script 的位置、与地址的关系、表达方式及其在应用中的重要性。

    2026年6月2日3 分钟阅读
  25. 25
    第 25 篇

    深入理解 Unlocking Script:区块链交易的“开锁证据”

    阅读文章

    Unlocking Script 是交易输入中的解锁材料,用于满足上一笔输出的锁定条件。本文从概念、位置、工作原理到常见误解,全面解析这一关键机制。

    2026年6月2日3 分钟阅读
  26. 26
    第 26 篇

    P2PKH:BSV 中最常见的支付脚本模板详解

    阅读文章

    P2PKH(Pay to Public Key Hash)是 Bitcoin/BSV 中最基础的普通支付脚本。本文拆解其核心逻辑、工作流程、与地址的关系、解锁条件,并解释为什么 BSV 开发者需要理解它。

    2026年6月2日2 分钟阅读
  27. 27
    第 27 篇

    OP_RETURN:BSV链上数据写入入门

    阅读文章

    了解OP_RETURN的基本概念、与普通支付的区别、数据格式要求、隐私注意事项以及应用场景。

    2026年6月2日2 分钟阅读
  28. 28
    第 28 篇

    解读Bitcoin Script:基于栈的脚本语言及其执行模型

    阅读文章

    Bitcoin Script是一种基于栈执行的脚本语言,用于验证交易花费条件。本文从栈的概念出发,通过例子说明其执行过程,并探讨P2PKH、受限设计、BSV应用等关键点,帮助理解这一链上验证语言的核心机制。

    2026年6月2日2 分钟阅读
  29. 29
    第 29 篇

    标准脚本 vs 非标准脚本:BSV 开发中容易被忽略的边界

    阅读文章

    共识上有效的交易,网络不一定处理。理解标准脚本与矿工策略,避免交易广播失败。

    2026年6月2日3 分钟阅读
  30. 30
    第 30 篇

    从零开始使用 @bsv/sdk:安装、验证与第一步

    阅读文章

    介绍 @bsv/sdk 的安装、项目搭建与验证过程,帮助开发者快速进入 BSV 开发环境,理解 SDK 在技术栈中的角色。

    2026年6月15日3 分钟阅读
  31. 31
    第 31 篇

    WalletClient:应用与钱包之间的通信入口

    阅读文章

    WalletClient 是 BSV 应用中连接钱包的标准化客户端,它让应用描述交易意图,钱包负责授权、签名和 UTXO 管理,从而隔离私钥、UTXO 和签名等复杂度。

    2026年6月15日3 分钟阅读
  32. 32
    第 32 篇

    使用 createAction() 创建你的第一笔 BSV 交易:入门指南

    阅读文章

    createAction() 是 BSV SDK 的核心方法,让应用通过高级接口描述交易动作,钱包自动处理签名、费用和广播。本文带你理解其原理、参数和实际用法。

    2026年6月15日3 分钟阅读
  33. 33
    第 33 篇

    自动选择 inputs、找零和手续费:钱包如何为你构建完整交易

    阅读文章

    使用高级SDK时,钱包可以自动选择可花费的UTXO、生成找零output并计算手续费。本文解释这一过程的工作原理、益处和潜在风险。

    2026年6月15日3 分钟阅读
  34. 34
    第 34 篇

    将数据写入 BSV 区块链:从 OP_RETURN 到应用协议

    阅读文章

    BSV 交易不仅能转移 satoshis,还能通过数据输出将文本、哈希或业务事件写入链上。本文从第一笔 Hello BSV 交易讲起,介绍数据输出与支付输出的区别、如何使用 SDK 构造 OP_RETURN、十六进制转换原因,以及如何走向结构化协议设计。

    2026年6月16日2 分钟阅读
  35. 35
    第 35 篇

    用 WhatsOnChain 查看 BSV 交易:从 txid 到链上结构的完整指南

    阅读文章

    本文教你如何使用区块浏览器 WhatsOnChain 查看交易详情,理解 inputs、outputs、脚本、手续费等核心概念,并借助浏览器反向理解 SDK 的底层逻辑。

    2026年6月16日3 分钟阅读
  36. 36
    第 36 篇

    BSV 交易入门:手动指定输入(Inputs)的正确姿势

    阅读文章

    在 BSV 的 UTXO 模型中,手动指定交易输入是进阶开发的必备技能。本文深入解析输入的本质、所需信息、代码示例和常见误区,帮你避开“地址扣款”的思维陷阱。

    2026年6月18日3 分钟阅读
  37. 37
    第 37 篇

    手动指定交易输出,掌握 BSV 应用设计的关键一步

    阅读文章

    理解比特币交易输出(output)的机制,从手动构造交易开始。本文介绍输出的类型、找零规则、索引顺序及常见误区,帮助你从“会发交易”进阶到“会设计 BSV 应用”。

    2026年6月18日2 分钟阅读
  38. 38
    第 38 篇

    比特币交易手续费:计算方式、影响因子与BSV实践指南

    阅读文章

    交易手续费并非显式字段,而是输入总额与输出总额的差额。理解手续费计算逻辑、交易大小的影响因素以及BSV网络策略,是构建链上应用的基础。

    2026年6月18日3 分钟阅读
  39. 39
    第 39 篇

    为什么比特币交易的每个输入都需要单独签名?

    阅读文章

    理解比特币交易中多输入签名的必要性,避免常见误解,并了解 P2PKH 签名的基本逻辑、SDK 使用方法以及签名保护的具体内容。

    2026年6月18日3 分钟阅读
  40. 40
    第 40 篇

    BSV 交易序列化:从对象到广播的必经之路

    阅读文章

    理解交易序列化是连接应用开发与区块链网络的关键。本文介绍为何需要序列化、标准交易结构、hex 的作用、SDK 中的序列化与反序列化、txid 关系以及常见误区,帮助你从调 SDK 进阶到调试链上数据。

    2026年6月18日3 分钟阅读
  41. 41
    第 41 篇

    BSV 交易广播:从构造到提交的完整指南

    阅读文章

    在 BSV 开发中,构造交易只是第一步。本文详细讲解广播交易的意义、常见误区、广播前检查、返回值处理及失败原因,帮助开发者正确将交易提交至网络。

    2026年6月18日2 分钟阅读
  42. 42
    第 42 篇

    交易链:一笔交易怎样花掉刚刚生成的 UTXO

    阅读文章

    理解交易链,才能真正理解比特币白皮书中“coin 是一条数字签名链”的含义。本文从最小模型出发,介绍 UTXO 在交易之间如何转移,以及交易链在 BSV 应用状态管理中的关键作用。

    2026年6月18日3 分钟阅读
  43. 43
    第 43 篇

    比特币区块头:SPV和轻客户端的80字节基石

    阅读文章

    区块头是比特币区块的80字节摘要,虽不包含完整交易,却是连接工作量证明链和承诺交易集的关键结构。本文解释区块头字段、Merkle root和SPV原理,帮助理解BSV大规模扩展的实现基础。

    2026年6月20日4 分钟阅读

推荐文章