比特币区块由矿工竞争产生。矿工从内存池挑交易,打包成候选块,填入上一块哈希、时间戳、难度目标、梅克尔根等信息,不停改nonce和coinbase数据去算哈希。谁先算出低于目标值的哈希,谁就拿到这个块的记账权并向全网广播。其他节点验证交易和PoW没问题后,把它接到最长链上,区块正式诞生。平均约10分钟一个,难度自动调整,矿工拿新币奖励加手续费,交易多的块手续费也更多。这就是挖矿,靠算力拼概率,不是投票。块被更多后续块确认后,就越难被改。

你发一笔比特币交易,它先到节点,验证签名和余额,合格就进内存池排队。矿工像打包快递,挑手续费高、确认急的交易塞进候选块。块不是无限大,比特币有块大小限制,所以矿工要取舍。每笔交易有输入输出,矿工检查有没有双花,输入是不是真的属于你。候选块里还有coinbase交易,这是矿工给自己的奖励和手续费,也是新币发行入口。块头记录上一块哈希,像链条扣住前一块。要是矿工打包了无效交易,其他节点直接拒绝,白忙。内存池里交易多时,手续费低的会等很久,甚至被清掉。这块逻辑不复杂。区块产生前,矿工就是在干这些脏活累活。

矿工要抢到出块权,核心是算哈希。块头数据固定后,矿工改一个叫nonce的数字,也可能改coinbase里的额外字段,算出来的哈希像彩票号码。目标值越小,哈希必须越小,难度越高。SHA-256算出来是256位随机样子,没法预测,只能硬试。矿机就是专门干这个,算力越大,试得越快,中奖概率越高。这不是解数学题,更像买彩票,只不过你可以疯狂买。全网难度每2016个块调整一次,大约两周,目标是让出块时间稳定在10分钟左右。算力涨难度涨,算力跌难度降。矿工找到合格哈希,会把块广播出去,别人一秒钟就能验证,但找它可能花很久。这个过程叫工作量证明,PoW。

矿工广播候选块后,节点不会无脑相信。它们检查PoW是否达标、上一块哈希是否对、交易签名和余额是否有效、有没有双花、coinbase奖励是否合规。全过,节点才把块加到自己的链上,并转给邻居。因为网络延迟,有时两个矿工差不多同时出块,链就分叉。大家先各接各的,继续挖。哪条分支累积的工作量最大,节点就切过去,这叫最长链规则。被抛弃的块叫孤块,奖励通常拿不到。普通用户看到一笔交易,一般等1个确认能用,等6个确认更稳。确认越多,想回滚就得重做更多PoW,成本高到不划算。区块就这样在竞争和验证里长出来。
每个区块产生时,矿工能拿到两部分钱:区块补贴和交易手续费。区块补贴是协议增发的新比特币,最开始50个,每21万个块减半,差不多四年一次,现在已经是3.125个。手续费来自块里每笔交易,网络堵时手续费飙升,矿工优先打包出价高的。矿工要付电费、矿机、场地、维护,币价和手续费决定他们赚不赚。不赚钱就关机,算力下降,难度也会跟着降,留下的人机会变大。这套机制让比特币不靠央行发币,靠全球矿工和节点共同维护。出块时间不会永远准,有时几分钟,有时一小时,但长期会拉回十分钟附近。你查区块浏览器,看到高度、哈希、交易数、奖励,就是这次区块产生的成绩单。