区块链
比特币区块头:SPV和轻客户端的80字节基石
区块头是比特币区块的80字节摘要,虽不包含完整交易,却是连接工作量证明链和承诺交易集的关键结构。本文解释区块头字段、Merkle root和SPV原理,帮助理解BSV大规模扩展的实现基础。
林知衡
technical_editor
先讲结论
区块头是比特币区块的一个轻量级、固定大小的摘要结构,仅有80字节。它不包含全部交易数据,但通过包含前一个区块的哈希来链接到工作量证明链,并通过Merkle root来承诺区块内的所有交易。理解区块头是掌握SPV(简化支付验证)的关键,因为SPV用户正是通过维护区块头链和接收Merkle proof来验证交易,而无需下载完整区块。在BSV的大区块路线下,这一特性使普通用户和应用能以极低的资源消耗参与网络。

区块与区块头的区别
一个比特币区块可以简化为两部分:
- transactions:区块内所有交易的完整数据,大区块时代这部分体量可能非常庞大。
- header:固定大小的80字节摘要结构,由若干固定字段组成(参考BSV Skills Center)。
SPV的核心思想正源于此:用户不必保存完整的交易历史,只需保存并验证区块头链即可。
区块头的六大字段
区块头通常包含以下六个字段:
- Version(版本):区块所遵循的规则版本。
- Previous Block Hash(前块哈希):前一个区块头的哈希值,用于将当前区块连接到前一个区块,形成链条。
- Merkle Root(默克尔根):由区块内所有交易ID经默克尔树计算得出的32字节根哈希,用于高效承诺交易集合。
- Timestamp(时间戳):区块的大致生成时间。
- Bits(难度目标):表示当前工作量证明难度目标的紧凑格式。
- Nonce(随机数):矿工在挖矿过程中不断调整的数值,以找到满足难度目标的区块头哈希。
这六个字段共同决定了区块头自身的哈希值,也就是常说的区块哈希或区块ID。
如何形成不可篡改的链
区块链并非简单地将区块罗列在一起。每个区块头都明确引用了前一个区块头的哈希:
若要修改历史区块,其哈希值就会改变,从而导致后续所有区块的链接失效。因此,一个区块头后面累积的区块越多,重写该区块所需付出的工作量就越大,这便是区块头链能代表累积工作量的原因。
Merkle Root:将交易承诺到区块头
区块头不直接包含交易列表,但包含Merkle root。只要区块内任意一笔交易发生变化,Merkle root通常会随之改变,进而使区块头哈希也发生变化。由此,区块头通过Merkle root以密码学方式承诺了其所包含的交易集合。
对SPV而言,这个链式关系至关重要:
如果这一链路成立,轻客户端就能确信某笔交易已被包含在一条经过工作量证明的链上。
Nonce与工作量证明
矿工在构造候选区块时,会计算区块头的双重SHA-256哈希。只有当哈希值小于当前难度目标时,该区块才被认为完成了工作量证明。Nonce是矿工可调整的字段之一,通过不断改变nonce(以及其他可变数据),矿工重复哈希运算直至找到有效解。
这不是某种中心化的盖章机制,而是全网可独立验证的哈希谜题。任何节点拿到区块头后,都能快速执行验证(更多细节):
80字节固定大小的重要意义
区块可以不断增大,但区块头始终保持80字节。白皮书强调,当用户仅保存区块头时,数据量的增长极为缓慢(见白皮书相关部分)。以平均10分钟一个区块计算,一年的区块头总量仅为数MB级别,与完整交易数据相比微不足道。
BSV的扩展路线正是依赖这种差异:矿工和专业基础设施负责处理大区块和海量交易,而普通用户、钱包和应用只需通过区块头和证明来验证与自己相关的交易。
区块头不能做什么
区块头本身不包含交易的具体内容,因此:
- 它不能直接告诉你某笔交易的详细信息(如金额、脚本等)。
- 它不能证明某个业务事件在现实世界中的真实性,只能提供链上包含性和工作量证明上下文。
要全面验证一笔交易,你还需要:
- 交易本身的完整数据。
- 包含该交易的Merkle proof或Merkle路径。
- 对应的区块头或可信的区块头服务。
- 对交易脚本、输入输出、金额等进行业务层验证。
可见,区块头是SPV的基础,但并非完整验证的全部。
在BSV技术栈中的位置
随着BSV向大区块方向发展,完整区块数据将不断增加。区块头始终保持固定大小,使得轻钱包和应用可以仅维护区块头链。诸如SPV Wallet、Block Headers Service、BEEF、BUMP和Overlay服务等组件,都围绕一个核心事实构建:应用无需保存全链数据,也能验证自己关心的交易。
架构上可以理解为:
这种分层比让每个应用都遍历全链更符合大规模应用场景。
常见误解澄清
- 区块头不是完整区块,它不包含任何交易细节。
- 80字节只是区块头的大小,并非区块大小限制。
- Merkle root是交易集合的根哈希,不是单笔交易的哈希。
- 仅保存区块头不等于保存了所有交易,SPV仍需获取具体的交易数据和Merkle proof。
- 区块头能验证工作量证明,但不能替代业务层面的验证。
理解区块头是迈向SPV和轻量级BSV应用的第一步,它为在庞大网络中实现高效、低成本的交易验证提供了基础。
推荐文章
区块链2026年5月20日
WIF、助记词与 HD Wallet:BSV 钱包密钥管理入门
WIF、助记词和 HD Wallet 都与密钥保存、恢复和派生有关,但含义不同。本文解释它们的区别、xpub 的作用,以及在 BSV 钱包和应用开发中的安全实践。
区块链2026年6月18日
交易链:一笔交易怎样花掉刚刚生成的 UTXO
理解交易链,才能真正理解比特币白皮书中“coin 是一条数字签名链”的含义。本文从最小模型出发,介绍 UTXO 在交易之间如何转移,以及交易链在 BSV 应用状态管理中的关键作用。
区块链2026年6月18日
为什么比特币交易的每个输入都需要单独签名?
理解比特币交易中多输入签名的必要性,避免常见误解,并了解 P2PKH 签名的基本逻辑、SDK 使用方法以及签名保护的具体内容。