比特币挖矿本质是基于工作量证明PoW的全网记账竞赛,矿工依靠算力争夺区块打包记账权,完成交易校验、账本更新,同时获取区块奖励与交易手续费,并不是传统意义上挖掘实物矿产。整个机制承担两大核心作用,一是完成全网转账交易的确认上链,二是按既定规则发行新的比特币,比特币所有新增流通的币都来源于挖矿产出,没有中心化机构可以随意增发代币。很多新手容易把挖矿理解成破解密码,实际上不存在解密过程,全部是暴力重复哈希运算比拼速度。

挖矿完整流程从收集待确认交易开始,全网用户发起转账之后,交易先进入内存池等待处理,矿工会优先挑选手续费更高的交易,校验交易签名是否合法、防止重复花费,把上千笔交易整理组装成候选区块,同时生成一笔特殊的coinbase交易,这笔交易专门用来给矿工发放挖矿收益,只能写在区块最开头位置。候选区块内部分为区块头和交易集合两大部分,区块头保存上一个区块的哈希指纹、默克尔根、时间戳、难度目标以及可不断变动的随机数Nonce,默克尔根可以压缩汇总区块内全部交易信息,方便全网快速校验交易有没有被篡改。

真正的挖矿竞赛,就是不断修改随机数Nonce,对区块头执行双重SHA‑256哈希运算,算出的哈希字符串必须小于网络设定的难度目标才算解题成功。这个数学题目没有捷径算法,只能依靠设备海量重复试错,谁的算力越高,试错速度越快,抢先算出合格结果的概率就越大。当一名矿工算出符合条件的哈希值,立刻把完整新区块向整个比特币网络广播,网络上所有全节点会独立校验区块的全部条件,一旦验证全部通过,这个区块就正式链接到原有区块链末尾,账本完成更新,获胜矿工拿到对应的区块奖励加上区块内全部交易手续费;如果校验失败,区块直接被网络丢弃,矿工不会得到任何收益。

为了维持网络平均十分钟出一个区块的节奏,比特币自带动态难度调节机制,每挖出2016个区块之后,系统会统计实际出块耗时,自动调高或者降低哈希运算的难度目标。全网算力暴涨的时候,难度就会上升,需要算出开头拥有更多零的哈希结果;全网算力下降,难度随之降低,以此保证无论参与挖矿设备多少,区块产出节奏基本保持稳定。也正是这套机制奠定账本安全基础,想要篡改历史区块,必须重新完成该区块以及之后所有区块的全部工作量证明计算,需要掌握绝大多数全网算力,现实当中实现成本极高,以此实现账本难以篡改的特性。随着难度持续走高,早期CPU、显卡挖矿早已被淘汰,现在基本依靠专用ASIC矿机参与竞争,普通个人单独挖矿成功概率极低,大部分矿工选择加入矿池,按算力贡献份额瓜分挖矿收益。
