区块链
Merkle Root 入门:理解比特币区块交易承诺的核心机制
Merkle root 是区块内所有交易 ID 经 Merkle 树计算得到的根哈希,它写入区块头,作为交易集合的密码学承诺。本文以简明方式解释其原理、作用、与大区块和 SPV 验证的关系,及常见误区。
林知衡
technical_editor
一句话理解
Merkle root 是一个区块内所有交易 ID 经过 Merkle 树逐层哈希后得到的根哈希,它被写入区块头,用来承诺这个区块包含的交易集合。
如果说区块头是区块的摘要,那么 Merkle root 就是交易集合进入这个摘要的入口。

为什么需要 Merkle root
一个区块可能包含大量交易。如果区块头直接记录所有交易,其大小就不可能保持在 80 字节。
Merkle root 的作用是:将任意数量交易的集合压缩成一个固定长度的根哈希。
简化理解:
区块头只保存 Merkle root,完整交易数据保存在区块主体中。
Merkle 树如何计算
Merkle 树是一棵二叉哈希树。
假设一个区块有 4 笔交易:
先计算每笔交易的 txid(交易 ID):
然后两两组合:
最后计算根哈希:
树形结构可表示为:
真实实现中涉及字节序、双 SHA-256 和奇数叶子处理等细节。入门阶段先掌握基本结构:交易 ID 在叶子层,Merkle root 在根部。
任意交易变化都会影响 root
Merkle root 的安全性来自哈希函数的抗碰撞性。
如果 Tx B 发生哪怕微小的变化,它的 txid 就会改变:
这意味着,一旦区块头经过工作量证明并上链,攻击者就无法在保持区块头不变的情况下篡改区块内交易。
若修改 Merkle root,攻击者必须重新为当前区块及所有后续区块完成工作量证明,这在链深度增加后成本极高。
Merkle root 和 txid 的关系
- txid:单笔交易的哈希标识。
- Merkle root:一组交易通过 Merkle 树结构计算出的根哈希。
两者不可混淆:
在 SPV(简化支付验证)中,验证者从目标交易的 txid 出发,使用 Merkle proof 逐层计算到 Merkle root,再与区块头中的 Merkle root 比较,从而验证交易是否属于该区块。
Merkle root 为什么适合大区块
BSV 的扩展路线强调大区块和高吞吐。区块越大,要求普通应用下载完整区块来验证单笔交易就越不现实。
Merkle root 提供了一种关键能力:不下载所有交易,也能验证某笔交易属于该区块。
你只需要:
- 目标交易
- 一条 Merkle path(或其标准化格式 BUMP)
- 包含 Merkle root 的区块头
- 可信的区块头链或区块头服务
这比下载整个区块的数据量小得多。
Merkle root 不能单独证明交易存在
- 仅有 Merkle root 而无 Merkle proof,无法判断某个 txid 是否在树中。
- 仅有 Merkle proof 而无对应区块头,无法确认该 root 是否真的被矿工写入过区块。
- 仅有区块头而无区块头链或工作量证明上下文,无法判断它是否属于有效链。
因此,完整的 SPV 验证需要将这些组件串联起来:
Merkle root 是连接交易和区块头的桥梁。
在 BSV 技术栈里的位置
BSV 生态中的 SPV、BUMP、BEEF 以及区块头服务都围绕 Merkle root 工作。
- BUMP:更标准、更高效地表达 Merkle path 的格式。
- BEEF:可以将交易、依赖交易和 Merkle proofs 打包在一起。
- 区块头服务:验证某个 Merkle root 是否对应某个区块高度上的有效区块头。
- Overlay 服务:可在应用协议层索引数据,但底层证明仍需回到交易、Merkle root 和区块头。
新手常见误解
- Merkle root 不是“区块哈希”。区块哈希是区块头的哈希值,Merkle root 是区块头中的一个字段。
- Merkle root 不是交易的 ID。它承诺的是整个交易集合,而非单笔交易。
- 拥有 Merkle root 不代表知道所有交易。它只是一个固定长度的摘要。
- Merkle proof 不是 Merkle root。proof 是从 txid 计算到 root 所需的路径数据。
- Merkle root 只能证明包含关系的一部分,还必须结合区块头链进行验证。
参考来源
推荐文章
区块链2026年5月20日
WIF、助记词与 HD Wallet:BSV 钱包密钥管理入门
WIF、助记词和 HD Wallet 都与密钥保存、恢复和派生有关,但含义不同。本文解释它们的区别、xpub 的作用,以及在 BSV 钱包和应用开发中的安全实践。
区块链2026年6月21日
Merkle Proof 详解:如何不下载完整区块验证一笔交易
Merkle proof 是一种轻量级验证方法,让你无需下载整个区块,就能确认某笔交易是否包含在区块的交易集合中。本文深入讲解 Merkle proof 的原理、组成、验证过程、在 BSV 技术栈中的角色以及常见误区。
区块链2026年6月20日
比特币区块头:SPV和轻客户端的80字节基石
区块头是比特币区块的80字节摘要,虽不包含完整交易,却是连接工作量证明链和承诺交易集的关键结构。本文解释区块头字段、Merkle root和SPV原理,帮助理解BSV大规模扩展的实现基础。