
先区分挖矿、验证与共识
挖矿是通过反复计算区块头哈希,寻找满足目标阈值的结果,并尝试把有效区块加入区块链的过程。共识则是网络中的节点依据相同规则判断哪些区块和交易有效,并逐步形成一致的账本状态。全节点会独立保存和验证区块链,矿工生成的区块也必须先满足节点执行的共识规则,算力本身不能使无效交易变得有效。
比特币中的交易并不是从一个钱包直接移动到另一个钱包,而是消耗此前交易产生的未花费交易输出,也就是UTXO。交易输入必须引用仍未被使用的UTXO;同一个输出被再次使用,就构成双重支付。交易输出总额不能超过输入总额,输入与输出之间的差额通常可作为交易费,由打包该交易的矿工获得。

工作量证明如何支撑区块链
比特币区块头包含前一区块头的哈希,区块中的交易还通过默克尔树汇总为默克尔根。修改某笔交易会改变相关哈希,并进一步影响区块头以及后续区块的连接关系。因此,试图修改历史记录时,攻击者需要重新完成受影响区块及后续区块的工作量证明。

工作量证明的核心是寻找一个哈希值,使其低于网络规定的目标。哈希结果难以预测,矿工只能通过改变随机数等区块头字段反复尝试;找到结果后,其他节点却可以较快验证。目标越低,平均需要的尝试次数越多。比特币会根据一段区块区间的生成速度调整难度,使出块节奏大体维持在协议设定的目标附近。
这里需要避免一个常见误解:最长链并不是简单指区块高度最高的链,而是通常指累计工作量最大的有效链。两个矿工可能在相近时间产生同一高度的不同区块,节点会暂时看到分叉;随后某一分支获得新的有效区块后,网络通常会转向工作量更大的分支,另一块则成为陈旧区块。
学习挖矿时需要重点检查的边界
第一,要把有效性与确认程度分开。一个区块即使通过哈希验证,也仍需检查交易、区块结构、共识规则和前置区块是否正确。交易进入区块后,随着后续区块增加,重组它所需的工作量通常上升,但工作量证明提供的是概率意义上的安全性,不能把某个固定区块数理解成绝对不可逆。
第二,区块奖励存在特殊的可花费条件。比特币的coinbase交易用于收取区块补贴和区块内交易费,其产生的输出需要经过规定数量的后续区块后才能花费。这一规则降低了矿工在临时分叉中提前使用可能失效奖励的风险。分析矿工收益或区块模板时,不能只看交易费,还要区分补贴、交易费和成熟条件。
第三,算力集中会带来治理与安全风险。掌握多数算力的参与者可能更有能力重组近期交易或阻止部分交易确认,但这不等于可以随意创造超过规则允许的货币或花费他人没有授权的资金,因为节点仍会拒绝违反共识规则的区块。少于多数算力也可能造成局部攻击机会,实际风险取决于网络传播、目标交易和攻击持续时间等因素。
与以太坊历史上的工作量证明对照
以太坊早期也曾使用工作量证明,让矿工通过试错寻找满足难度目标的结果,并以累计工作量较大的链作为主要分支。其资料同时说明,以太坊后来已改用权益证明,因此不能把历史上的以太坊挖矿机制直接套用到现行以太坊网络,也不能把以太坊的区块奖励、确认方式或设备要求当作比特币规则。
这个对比适合用来理解共识机制的适用范围:工作量证明依靠计算资源和能源成本提高攻击门槛,权益证明则以质押和验证者责任构成约束。两者都要解决交易排序、状态一致和分叉处理问题,但参与角色、惩罚方式与最终性表达不同。研究具体网络时,应先确认它当前采用的协议,再使用对应术语。
常见问题与适用条件
如果只运行矿工软件而不理解全节点验证,能否算掌握共识?不能。矿工负责寻找候选区块,但共识还包括交易合法性、区块连接、难度、奖励成熟和分叉选择等规则。学习时应同时阅读区块结构、交易输入输出和节点验证逻辑。
区块高度能否唯一标识一个区块?不能。分叉期间,不同区块可能拥有相同高度。更可靠的区块标识通常是区块头哈希,实际展示时还要注意哈希字节序和编码方式。
为什么确认越多通常越可靠?因为攻击者若要替换较早区块,通常需要重做该区块之后的工作量,并追赶诚实网络新增的工作量。这个结论适用于采用类似工作量证明和链选择规则的网络;它描述的是风险下降趋势,不是无条件的绝对保证。
本文的解释适用于理解比特币工作量证明、区块链分叉和一般的共识基础。涉及具体软件版本、网络参数、设备配置或其他区块链时,应以相应项目当前的协议规则和实现文档为准。