三台电脑打架,最后只有一台能拿到钱
比特币挖矿不是一个人在战斗,是一场全球范围的算力大逃杀。
之前玩单机挖矿的时候,我觉得自己像个孤独的矿工:一台电脑,一个哈希值,一个难度要求,埋头苦干,算出来就算成功。
但朋友说:"那只是教程。真实的比特币网络,是几千台、几万台电脑同时在算。"
他发来一个链接:https://demochain.org/pow/distribution/
一、三台电脑,三个对手
打开页面,我看到了三台电脑:电脑A、电脑B、电脑C。
每台电脑都有自己的"算力"配置——可以从 1x、2x、3x 三档中选择。算力越高,计算速度越快,但能耗也越大。
页面下方还有一个输入框,可以输入"交易数据"——比如"alice->bob:10",表示 alice 给 bob 转 10 个币。
朋友说:"来,给每台电脑分配不同的算力,然后点那个绿色的按钮。"
我把电脑A设为 1x,电脑B设为 2x,电脑C设为 3x——让它们不公平一点,看看会发生什么。
输入了"alice->bob:10",点了"开始竞赛"。
二、比赛开始
三台电脑同时开始工作。
页面上的进度条开始往前走,每台电脑都有一个"当前 Nonce"在疯狂跳动。它们在同时计算同一个哈希值,但用的是不同的随机数。
就像三个人同时在开密码锁,密码是 4 位数,从 0000 开始试。谁能先试到正确的密码,谁就赢了。
几秒钟后——
电脑C 胜出了。
因为它算力是 3x,速度最快,最先算出了满足难度要求的哈希值。页面上跳出来一个绿色的徽章:"🏆 电脑C 胜出",旁边显示 "+50"——这是它挖到这个区块的奖励。
电脑A和电脑B的进度条停住了,显示"挖矿失败"。因为电脑C已经先算出来了,它们再算也没用了。
三、但比赛还没结束
电脑C胜出后,它做的事情不是"把钱揣进兜里",而是"广播"。
它把刚挖到的区块广播给电脑A和电脑B。页面上的"广播区块"步骤亮了,电脑C把自己的账本同步给了另外两台电脑。
然后,电脑A和电脑B开始"同步区块"——它们验证电脑C的区块是否合法(哈希值是否满足难度要求),如果合法,就更新自己的本地账本。
几秒钟后,三台电脑的账本都一致了。页面上显示"6/6 确认"——表示这个区块已经得到了足够的确认,被整个网络接受了。
这就是比特币网络的核心:不是谁算得快谁就能随便改账本,而是谁先算出来谁就广播,其他人验证后同步。
四、算力弱的也有机会
我又试了一次。这次把三台电脑都设为 1x 算力,让它们公平竞争。
点击开始。
三台电脑的进度条走得差不多快,Nonce 数字也在疯狂跳动。几秒钟后——
电脑A 胜出了。
为什么?因为哈希碰撞是随机的。即使算力相同,也有可能一台电脑"运气好",早几毫秒碰到了正确的 Nonce。
这就是比特币网络的神奇之处:即使你算力弱,也有机会挖到区块——只是概率小一点而已。
在真实的比特币网络里,小矿工偶尔也能挖到区块,只是大部分时候被大矿场抢走了。
五、改了数据,账本就乱了
我试着在比赛进行到一半的时候,偷偷改了输入框里的交易数据。
结果——
三台电脑的进度条全停了,显示"挖矿失败"。
因为它们在算的是"旧的数据",我改了之后,它们算出来的哈希值就无效了。
这再次印证了区块链的特点:你不能在比赛进行中改规则,改了就全得重新开始。
六、最长链共识
页面底部有三条"本地账本",分别属于电脑A、电脑B、电脑C。
当电脑C胜出并广播后,三条账本都同步了最新的区块。无论你打开哪一条,它们都是一样的。
这就是"最长链共识":整个网络最终会维持一致的共享账本。
如果有人想篡改历史,他不仅要比所有人算得快,还要让所有人接受他的篡改——这在算力庞大的比特币网络里几乎是不可能的。
写在最后
如果说单机挖矿让我理解了"什么是工作量证明",那么分布式挖矿让我理解了"什么是去中心化竞争"。
比特币网络不是由一个中心控制的,而是由成千上万的节点共同维护的。它们同时监听新交易,竞争打包,先算出来的广播,其他人验证后同步。
没有皇帝,没有裁判,只有规则。
如果你想亲眼看到这场全球范围的算力大逃杀,去 demochain.org/pow/distribution/。
看着三台电脑同时疯狂计算,最终只有一台胜出的那一刻,你会真正明白:
比特币不是技术,是经济学。
它设计了一套规则,让"诚实"成为最理性的选择。篡改的成本太高了,高到不如老老实实挖矿。