主页 > 怎么看出来imtoken真伪 > 白话区块链介绍系列066 |如果两个矿工同时挖出新区块,区块奖励应该给谁?

白话区块链介绍系列066 |如果两个矿工同时挖出新区块,区块奖励应该给谁?

怎么看出来imtoken真伪 2023-01-18 17:49:48

我们知道,比特币挖矿是一个矿工竞争计算能力并不断试错随机数的过程,直到他们找到合适的随机数并挖出一个新区块。

01

“一鸟多石”可能吗?

挖矿是矿工在全网的集体行为。所有矿工都在挖矿。多个矿工可以同时挖出新区块吗?

这是可能的(概率很低)。如果多个矿工同时挖出新区块,区块奖励应该给谁?选择标准是什么?今天我们就来回答这些问题。

矿工挖出一个区块后,会尽快发布新区块。新区块被其他矿工验证合法(符合比特币系统规则)后,该区块将被接受并放置在基于此区块,开始挖掘下一个区块。

02

“鸟”的归属

我们假设两个矿工 A 和 B 同时挖出第 N 个区块比特币同时挖到一个区块,那么区块链会形成一个短期分叉,假设矿工 A 挖出的链称为链 A,而矿工 B 挖出的链称为链 B。矿工 A 和 B 都会广播他们挖出的区块。其他矿工节点可能首先收到矿工 A 发布的新区块或矿工 B 发布的区块。在新区块之后扩展区块链。

image.png

假设A链上的矿工先挖出第N+1个区块,那么挖出区块的人会向全网广播第N+1个区块的信息,其他矿工节点会停止挖出第N+1个区块他们检测到一个新的合法区块被挖出(不管他之前是在A链上挖还是在B链上挖),它会选择挖下一个区块(N+2)块,也就是说链A获胜,第N个区块的区块奖励属于矿工A(严格来说,矿工B也获得区块奖励,但由于矿工B挖出的区块不在最长链上比特币同时挖到一个区块,成为孤块,该区块奖励也无效)。

image.png@ >

反之,如果B链上第N+1个区块先被挖出,那么所有矿工都会继续挖B链上的下一个区块,第N个区块就会被挖出。区块奖励属于矿工 B。

这是为什么?因为比特币系统规定只认可最长的合法链,这也是所有矿工的共识,所以当挖到一个合法的新区块时,所有矿工都会在这个区块的基础上挖下一个区块,因为这是对所有矿工来说最经济和最有利可图的选择,而另一条链将被矿工抛弃,链上的块将被抛弃。块也称为孤立块。

image.png

如果在第N+1个区块,A链和B链再次同时出块(这种情况的概率极小),两条链会继续竞争,直到一条链先挖到一个新的区块,其他矿工会选择最长的合法链继续挖矿,放弃另一条链。

从弃链挖出的区块在胜负之前都是合法的,也有区块奖励。某条链被确定为最长合法链后,另一条链成为弃链,弃链上的奖励将不予认可。

03

总结

如果某个区块高度,有多个矿工同时挖该区块,此时挖出的区块都是合法的,区块链会暂时分叉。当新的合法区块产生时,所有矿工都将在更长的合法链上进行挖矿。这是比特币最长的合法链机制,区块奖励将给予在最长合法链上出块的矿工。另一条链将被废弃,在废弃链上获得的系统奖励将不被认可。因此,矿工挖出新区块后,越早出块对矿工越好。