
怎样理解“挖的是数据”
“比特币挖矿挖的是数据的适用条件有哪些”包含两个问题:挖矿计算什么,以及计算结果何时有效。“挖的是数据”适用于解释挖矿处理数字信息这一层含义,更准确的表述是:矿工改变候选区块头中的可变内容,反复计算哈希,寻找满足目标要求的结果。
Bitcoin Developer Guides 的挖矿说明将这一过程概括为构建候选区块、计算区块头哈希,以及提交满足条件的区块。这里的数据是计算输入,找到合格结果也不意味着发现了一份原本隐藏的文件。

条件一:数据必须按区块规则组织
挖矿直接计算的对象是区块头。它包含前一区块的哈希、交易对应的默克尔根以及其他必要字段。交易内容通过默克尔根与区块头关联,因此,交易集合改变后,相应的计算输入也可能改变。

任意文档或随意拼接的字符串都能用于某些哈希运算,但要参与比特币挖矿,输入必须按协议构成候选区块头,并与相应区块内容一致。
条件二:哈希结果必须满足网络目标
哈希算法把输入映射为摘要。NIST 的安全哈希标准说明,摘要可以用于检测消息在摘要生成后是否发生变化。这有助于理解数据与摘要的关联;比特币挖矿还规定了额外的目标条件。
矿工需要不断改变可变字段并重新计算,使所得哈希数值满足网络目标要求。数据有意义、交易数量多或已经完成一次哈希计算,都不能单独证明挖矿成功。
条件三:完整区块仍须通过验证
哈希达标只是必要条件。候选区块的结构和交易也必须符合网络规则,随后才涉及网络接收及其在链上的位置。工作量证明无法使不合规则的交易自动变得有效。
挖矿任务也需要随链状态更新。如果新区块已经出现,继续针对旧任务计算,所得结果就可能无法成为当前链的后续区块。
常见问题:矿池份额就是有效区块吗
矿池可以设置比网络要求更容易满足的份额目标,用份额衡量参与者提交的计算工作。达到矿池目标的结果,只有同时满足网络目标及区块规则,才可能作为新区块提交。因此,提交份额与产出有效区块是不同的判断。
哈希能直接还原交易吗?哈希摘要不承担保存和解码完整交易的功能。理解挖矿时,应分别看待交易内容、关联这些内容的摘要,以及证明计算工作满足要求的结果。