比特币挖矿的本质,不是把某种数字挖出电脑,而是矿工使用专用设备反复计算区块哈希值,争夺新区块的记账权。谁先找到符合网络目标值的结果,谁就有机会把一批待确认交易写入区块链,并获得区块补贴与交易手续费。这个过程同时完成交易确认、发行新币和维护网络安全,是比特币在没有中央清算机构的情况下保持运行的核心机制。

用户发起转账后,交易会在点对点网络中广播,矿工从待处理交易中挑选内容,验证签名、余额和输入是否存在重复花费,再把交易组织成候选区块。区块并不是简单的数据打包,而是包含版本号、前一区块哈希、默克尔根、时间戳、难度目标和随机数等字段的结构。前一区块哈希把新旧区块连接起来,默克尔根则代表区块内全部交易,任何交易发生改动,最终都会反映到区块头哈希上。
真正的挖矿发生在区块头计算阶段。矿机不断改变Nonce,对80字节区块头进行哈希运算,直到结果小于或等于网络设定的目标值。Nonce只有32位,遍历完仍未成功时,矿池软件会修改Coinbase交易里的ExtraNonce,进而改变默克尔根,继续生成新的计算空间。这个过程没有捷径,算力越高,单位时间内尝试的次数越多,找到有效结果的概率越大。比特币网络每2016个区块调整一次难度,目标是让全网平均约每10分钟产生一个新区块。

早期普通电脑的CPU也能参与挖矿,后来GPU、FPGA逐步退出主流,如今比特币网络主要依赖ASIC专用矿机。个人矿工通常不会单独单挖,因为单台设备独立找到区块的等待时间可能非常漫长,更常见的方式是接入矿池。矿池给矿机分发任务,矿机提交大量难度较低的Share作为工作量证明;矿池一旦挖出符合全网难度的区块,再按照矿工贡献的算力或Share数量分配收益。当前每个区块的固定补贴为3.125枚BTC,矿工还可获得区块内交易支付的手续费。

如何挖比特币在操作上并不神秘:准备ASIC矿机、稳定电力、网络连接、收款钱包,选择矿池并配置账户即可启动,但能否盈利完全是另一回事。电价、矿机能效、设备价格、运行温度、矿池费率、比特币价格和全网难度,都会直接影响回本周期。挖矿收益不是固定工资,难度上升或币价下跌都可能让现金流迅速恶化。更深一层看,工作量证明让修改历史交易变得极其昂贵,攻击者不仅要重做目标区块,还要追赶其后的全部区块,这正是比特币用算力建立共识的关键所在。
