
先确定手算要回答什么问题
手算比特币挖矿的前提假设怎么核对,首先要明确计算目的。验证一个已知区块头是否满足目标,与不断改变输入寻找合格哈希,是两种任务。前者可以逐步复核,后者无法预先指定哪个 nonce 会成功。
适用范围也要写清:练习可以固定其他字段,仅改变 nonce,但这种设定只覆盖一个有限的搜索空间,不能代表完整挖矿流程。

检查输入是否为准确的区块头字节
Bitcoin 开发者参考说明,参与工作量证明哈希的区块头为80字节,包含版本、前一区块头哈希、Merkle 根、时间、nBits 和 nonce。哈希字段使用内部字节序,其余字段按小端序序列化。

核对时应记录字段值、字段长度和最终字节串。十六进制展示文本需要先还原成字节;直接对字符文本计算,会得到另一份输入的结果。显示用哈希与内部字节序也不能混用。
确认使用双重 SHA-256
区块头的计算形式是 SHA256(SHA256(区块头字节))。第二次计算接收第一次得到的32字节摘要,不能把摘要的十六进制文本直接作为输入。
NIST 的 FIPS 180-4 标准页面将哈希算法描述为生成消息摘要的算法,可用于检测消息变化。该原理帮助理解输入与摘要的关系;比特币采用双重哈希的具体方式,则来自其区块头规则。
纸笔演算应区分完整计算与教学简化。若省略填充步骤、压缩轮次或以短哈希替代,结果只能说明示意模型,不能据此认定真实区块头满足条件。
核对目标解码和比较方式
nBits 保存的是目标阈值的紧凑编码,不是直接用于比较的完整目标。哈希必须按约定解释成无符号整数,并满足小于或等于目标的条件。
可以把核对拆成两项:先检查 nBits 的字段字节是否还原正确,再检查目标解码是否正确。只数显示哈希开头有多少个零,不能替代完整整数比较;仅自行调高目标,也不能证明满足相应网络的规则。
常见问题与结论边界
试完 nonce 是否一定成功?不一定。参考说明允许在耗尽其取值后更新时间,或改变 coinbase 交易并更新 Merkle 根。只要区块头发生变化,原来的哈希结果就不能继续沿用。
哈希达标是否就说明区块有效?还不能。工作量证明只是区块验证的一部分,交易、时间等仍有相应约束。手算记录应说明验证了哪些条件,不把一次阈值比较扩大成完整有效性结论。
历史参数能否直接用于今天?只有明确复现相应历史情境时才适用。带有历史时间限定的奖励或版本描述,不应成为当前练习默认成立的前提。