OP_RETURN:BSV链上数据写入入门

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

林知衡

林知衡

technical_editor

发布于 2026年6月1日2 分钟阅读

一句话理解

OP_RETURN 常用于在交易 output 中写入数据,并让该 output 不再作为普通资金被花费。BSV 不只用于转账,也可以承载数据,OP_RETURN 是新手最容易接触到的链上数据写入方式。

OP_RETURN 是什么

OP_RETURN 是 Bitcoin Script 的一个操作码。当脚本遇到 OP_RETURN 时,通常会让该 output 被视为不可花费的数据输出。开发者可以在 OP_RETURN 后面放入数据,例如:

  • 文本
  • 文件哈希
  • 协议标识
  • JSON 或二进制字段
  • 签名
  • 应用事件

这类 output 的重点不是未来被花,而是把数据记录进交易。

OP_RETURN 和普通支付 output 的区别

普通支付 output 通常是:金额 + locking script,未来可以被某个签名解锁。OP_RETURN 数据 output 通常是:少量金额或特定金额 + OP_RETURN + 数据,未来不作为普通资金花费。所以 OP_RETURN output 不是“给某个人转账”,它更像交易中的数据记录。

为什么 BSV 重视 OP_RETURN

BSV 强调低费、大区块和链上数据。OP_RETURN 让应用可以把数据直接放进交易。常见场景包括:

  • 文件哈希存证
  • 证书记录
  • 供应链事件
  • 应用消息
  • token 协议字段
  • 身份声明
  • 审计日志

但必须明确:把数据写上链,不等于数据自动真实。链上只能证明这段数据或哈希在某个时间被记录,真实性还需要签名、身份和业务流程支持。

数据格式很重要

新手常会写第一笔 OP_RETURN:Hello BSV,这适合学习,但不适合生产协议。真实应用需要定义数据格式:

  • protocol identifier
  • version
  • record type
  • payload
  • signature

如果没有协议标识和版本,未来别人很难解析你的数据。如果没有签名,别人不知道数据来自谁。如果没有 schema,应用无法稳定升级。

OP_RETURN 与 Overlay

数据写上链后,还需要被读取和索引。如果 BSV 网络交易量很大,应用不应该扫描全链找自己的数据。更合理的方式是使用 Overlay Services,按协议标识或 topic 收集、验证和索引相关交易。所以 OP_RETURN 只是数据应用的写入层。完整应用还需要:

  • 数据协议
  • 签名规则
  • SPV 证明
  • Overlay 索引
  • 查询 API

OP_RETURN 与隐私

链上数据通常是公开且长期可见的。不要把以下内容直接写进 OP_RETURN:

  • 私钥
  • 助记词
  • 身份证件
  • 真实手机号
  • 商业秘密
  • 未加密的个人隐私

即使写的是哈希,也要注意小范围数据可能被字典攻击。例如“是/否”“手机号”“短编号”等低熵数据,单独哈希并不一定安全。

SDK 中的 OP_RETURN

使用 BSV TypeScript SDK 或钱包接口时,可以创建包含 OP_RETURN 的 output。SDK 会帮助处理脚本构造、交易创建、找零和签名。但开发者仍要负责数据内容和协议设计。也就是说,SDK 能帮你“写上去”,但不能替你判断“写什么才合理”。

新手常见误解

  • OP_RETURN output 通常不是可花费资金输出。
  • 写数据上链不等于数据真实。
  • OP_RETURN 不是数据库表。
  • 生产应用需要协议标识、版本和 schema。
  • 不要把隐私明文写到公开链上。
  • OP_RETURN 只是数据写入方式,查询和验证还需要 Overlay/SPV 等配套。

参考来源

推荐文章