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

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

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

林知衡

林知衡

technical_editor

分享

在 BSV 开发中,**raw transaction(原始交易)**指交易按照协议规则序列化之后得到的原始字节表示,通常用十六进制字符串展示。

一句话理解:你在代码里看到的交易对象,最终必须被序列化成确定的字节数据,才能计算 TXID、生成签名,并广播到网络。

为什么需要 raw transaction

开发者在代码中通常更习惯处理结构化对象,例如:

TEXT
1inputs: [...]
2outputs: [...]
3fee: ...

这种形式适合人阅读和程序组织逻辑,但区块链网络并不会传输这类“带字段名”的对象。网络传输和节点处理的是按协议规则排列的字节。

raw transaction 就是这段字节序列的十六进制表示。

一笔交易的序列化数据通常包含:

  • 版本(version)
  • input 数量
  • 每个 input 的 outpoint
  • 每个 input 的解锁脚本(unlocking script)
  • 每个 input 的 sequence
  • output 数量
  • 每个 output 的金额
  • 每个 output 的锁定脚本(locking script)
  • locktime

不同交易格式和协议升级细节可能存在差异,但核心要求不变:交易必须有确定的序列化表示。只有这样,不同节点和工具才能对同一笔交易得到一致的解析、签名验证和交易标识。

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

raw transaction 与 TXID 的关系

TXID 通常由交易的序列化数据计算而来。可以粗略理解为:

TEXT
1交易字段 -> 序列化 -> raw transaction bytes -> double SHA-256 -> TXID

也就是说,TXID 依赖底层字节数据。如果序列化结果发生变化,TXID 也可能变化。

这就是为什么交易字段顺序、字节编码、script 内容和签名数据都很重要。即使从业务角度看像是“同一笔付款”,只要底层字节不同,它就可能是一笔不同的交易。

raw transaction 与签名的关系

交易签名同样依赖交易的序列化形式。

在签名时,钱包或 SDK 会按照协议规则构造待签名的数据摘要。这个摘要来自交易内容,以及被花费 output 的相关信息。

因此,如果你手动修改 raw transaction 中的 output 金额、脚本或 input 引用,原来的签名很可能失效。签名不是独立附着在交易之外的装饰性字段,而是与具体交易内容绑定。

所以,raw transaction 不是可以随意拼接或手改的字符串。构造和修改交易时,应使用 SDK 或钱包提供的序列化与签名逻辑。

如何查看 raw transaction

区块浏览器、钱包工具或 SDK 通常都可以查看一笔交易的 raw transaction。

在学习阶段,建议用两种方式观察同一笔交易:

  1. 人类可读视图:查看 inputs、outputs、fee、脚本等解析后的字段。
  2. raw transaction 十六进制:查看真实的网络编码形式。

这样可以逐渐建立一个重要认知:区块浏览器页面展示的是解析结果,而链上真正保存、传播和验证的是序列化后的交易数据。

raw transaction 不是 JSON

这是新手很容易混淆的地方。

JSON 是应用层常用的数据格式,字段名清楚,便于人阅读和调试。但 Bitcoin/BSV 交易序列化不是 JSON,而是一种紧凑的二进制协议格式。

因此,下面这种理解是错误的:

JavaScript
1const rawTx = JSON.stringify(transactionObject)

把交易对象做 JSON.stringify 并不会得到 raw transaction。正确做法是使用 BSV SDK、钱包或符合协议的序列化逻辑,把交易编码成协议规定的字节格式。

raw transaction 常见调试场景

日常开发中,你通常不需要手写 raw transaction。但当交易构造、签名或广播出现问题时,raw transaction 是非常关键的排查材料。

常见场景包括:

  • TXID 与预期不一致
  • 签名验证失败
  • input 引用错误
  • output 金额或脚本错误
  • 手续费异常
  • 交易广播被拒绝
  • endian 显示造成混淆
  • SDK 与服务返回结果不一致

在这些问题中,结构化对象或页面展示可能不足以定位原因。raw transaction 能让你回到字节层面确认:这笔交易到底是什么。

BSV 开发中的实践建议

对于新手开发者,建议优先使用官方 SDK 或成熟钱包来构造 raw transaction,不要手写序列化逻辑。

但你仍然需要理解 raw transaction 的存在,因为:

  • 广播接口通常提交的是 raw tx
  • ARC 等服务处理的是实际交易数据
  • 区块链保存的是交易字节
  • TXID 和签名都依赖序列化结果
  • SPV 证明最终也要绑定到具体交易

理解 raw transaction,可以帮助你从“会调用 SDK”进一步提升到“能解释 SDK 做了什么”。这对于排查签名、广播、脚本和交易结构问题尤其重要。

新手常见误解

可以用以下几点快速检查自己的理解:

  • raw transaction 不是 JSON
  • raw transaction 不是区块浏览器页面
  • 修改交易字段可能影响 TXID 和签名
  • 复制 raw tx 时要确认网络、状态和来源
  • 手写 raw tx 容易出错,应优先使用 SDK
  • 调试底层问题时,raw tx 是最重要的材料之一

参考资料

专题

BSV基础知识

第17篇 / 共43篇文章

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

查看专题

阅读路径

进度 17/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 分钟阅读

推荐文章