BUMP:BSV 统一梅克尔路径格式详解
BUMP 是 BSV 生态标准化梅克尔路径的格式,统一单证明与复合证明的编码,减少冗余数据,提升验证效率。本文从背景、数据结构、计算原理到应用定位,系统解读 BUMP 的核心设计与价值。
林知衡
technical_editor
一句话理解
BUMP(BSV Unified Merkle Path)是 BSV 生态用于统一表达梅克尔路径的标准格式,目标是用一种数据结构同时支持单个证明和多个相关证明,并尽可能减少不必要的数据。简单说,如果梅克尔证明是“提供从交易到梅克尔根的路径”这一概念,BUMP 就是“如何将这条路径标准化地编码和交换”的格式。

为什么需要 BUMP
早期系统中,梅克尔证明可能用不同格式表示,这带来几个典型问题:
- 单笔交易证明和多笔交易证明的格式不统一
- 同一区块中多笔交易的证明可能重复携带相同的分支哈希
- 解析方需要为不同格式编写转换逻辑
- 证明体积可能包含冗余数据
BRC-74 的设计动机正是将这些改进融合到一个新规格中。该规格说明,BUMP 支持用同一数据模型表达多个路径,并通过高度、偏移量和标志位等方式优化验证过程和数据体积。简言之,BUMP 让梅克尔证明在 BSV 生态中更标准、更高效、更适合应用间传输。
BUMP 包含什么
BUMP 的顶层编码包含以下关键字段:
block height:区块高度,帮助验证方快速定位对应区块头tree height:梅克尔树的整体高度levels:从第 0 层(叶子层)向上的各层证明数据leaves:每一层需要提供的节点,节点内可包含偏移量、哈希值、txid 标记或 duplicate 标记
相比“只给一串兄弟哈希”,BUMP 提供了更结构化的信息,使得验证过程可以精确、自动化地完成。
level 0 的重要性
梅克尔树的第 0 层即交易 ID 层(叶子层)。BUMP 的 level 0 既可以包含客户端关心的目标 txid,也可以包含计算梅克尔根所需的兄弟 txid。这一设计让 BUMP 能够表达多个交易的相关证明——例如,同一区块中的两笔交易如果路径有重叠,BUMP 可以共享部分节点,而不是重复编码两套完整的证明。这就是 BUMP 相对于简单单路径证明的核心优势之一。
关键字段:offset、hash、txid、duplicate
BUMP 的 JSON 表达中,leaf 通常涉及以下概念:
offset:节点在当前层从左起的索引位置,缺失则验证者无法确定哈希在树中的位置hash:该位置上的哈希值txid:布尔标记,指示该哈希是否为接收方关心的交易 ID,而非仅用于计算根的兄弟哈希duplicate:表示不提供额外哈希,而是按梅克尔树规则复制工作哈希,用于处理右侧节点缺失或奇数节点场景,减少编码数据
这些字段共同使验证者能够从 BUMP 中精确重建梅克尔根的计算过程。
BUMP 如何计算梅克尔根
验证的概念流程如下:
- 在 level 0 中找到目标 txid 的 offset
- 结合相邻节点计算上一层的哈希
- 逐层重复处理
- 最终得到梅克尔根
- 利用 block height 找到对应区块头
- 比对计算出的根与区块头中的梅克尔根
BSV TypeScript SDK 中,MerklePath 类可从 BUMP hex 或 binary 解析,并计算根。示意代码:
verify() 不仅计算根,还会通过链追踪服务检查该根是否对应于有效区块头。
BUMP 与普通梅克尔路径的关系
普通梅克尔路径是概念上的:
- 目标 txid + 相邻哈希 + 左右位置 → 梅克尔根
BUMP 则是标准化的数据格式:
- block height + tree height + levels + leaves + flags
因此,BUMP 不是新的哈希算法,也不是梅克尔树的替代,而是将梅克尔路径用更适合 BSV 生态的数据结构表达出来。
BUMP 为什么适合 BSV
BSV 的扩展路线意味着区块可能包含大量交易,应用和钱包不应为每笔交易都传输冗余证明。BUMP 通过以下特性契合这一需求:
- 支持多个路径合并,减少同一区块内多证明之间的重复
- 携带 block height,方便快速查找区块头
- 将单证明和复合证明统一为一种格式,降低不同系统间的转换成本
这对 SPV 钱包、Overlay 服务、交易处理器以及应用后端之间的证明交换都至关重要。
BUMP 不能解决什么
BUMP 只表达梅克尔路径,它不提供以下保证:
- 不能单独证明交易脚本有效
- 不能证明交易未被双花
- 不能证明业务数据真实
- 不能替代区块头链验证
BUMP 的价值在于标准化包含性证明,而非替代所有验证逻辑。
BUMP 在 BSV 技术栈中的位置
在 BSV 技术栈中,BUMP 可以这样定位:
- 交易:提供 txid 和交易内容
- BUMP:提供 txid 到梅克尔根的路径
- Block Headers Service:验证梅克尔根是否在有效区块头中
- BEEF:将交易和 BUMP 等证明材料打包传递
- SPV Wallet / 应用:保存和验证相关数据
BUMP 是 SPV 数据交换的基础格式之一,理解 BUMP 后,再看 BEEF 会更加容易。
新手常见误解
- BUMP 不是区块头,它只是梅克尔路径数据
- BUMP 通常不包含完整交易,交易需另行提供或通过 BEEF 携带
- BUMP 不是新的共识规则,而是证明数据格式
- BUMP 可以合并多个路径,但合并前必须确认 block height 和根匹配
- 拥有 BUMP 不代表交易业务可信,还需验证交易、签名、脚本、协议和区块头链
参考来源
推荐文章
区块链2026年6月30日
重新理解“广播”:BTC 交易不是写入中心数据库
广播是把交易交给网络,而非直接修改链上数据。本文将解释广播的真实含义、在 BSV 技术栈中的位置,以及开发者需要跟踪的交易生命周期。
区块链2026年6月30日
SPV 如何减少全节点依赖
SPV(简化支付验证)让用户和应用只需保存区块头和相关交易证明,无需下载完整区块链。本文从白皮书设计出发,解释 SPV 如何通过 Merkle proof 和区块头分离验证任务,降低存储与带宽要求,并说明这在 BSV 大区块扩展路线中的关键作用。
区块链2026年6月30日
SPV 验证流程:交易、Merkle 证明与区块头如何协同工作
本文从技术编辑视角,系统梳理 BSV 区块链中 SPV(简化支付验证)的完整流程:从交易本身验证、计算 txid,到利用 Merkle proof 推导 Merkle root,再结合区块头链确认交易所在区块的有效性,并对比 SPV 与区块浏览器查询的本质区别,帮助开发者理解在不下载完整区块的情况下如何验证交易上链。