一文读懂区块链的分叉

  对于链圈的朋友来说,区块链既熟悉又陌生,熟悉的是我们几乎每天都可以看到区块链的新闻、每天听到周围的人谈论区块链,陌生的是对于区块链的一些技术性的东西甚至术语,完全不知道或完全不懂,本文和大家分享的就是区块链常见术语至分叉。

  以比特币区块链为例,平均每10分钟可以产生一个新区块。

  但是要注意,这里有一个词“平均”,这个词就代表:有可能100分钟产生一个,也有可能同时产生好几个。

  我们用个简单的图来说明一下:

  图中ABC区块是顺序产生的,但是在C区块之后同时产生了D和E2个区块:

  D和E新区块会分别向自己临近的区块广播:“我是新生成的区块呀!快把我记录进去呀!”并且会分别在此基础上开始生成新的区块:


  很快,就会有一个区块N先后收到D和E的广播,发现D和E拥有同样的时间戳,那么区块N就会判断,选择其中一个为有效区块,另外一个为无效区块。

  那么判断的依据是什么呢?

  就是链的长度。

  此时D区块的基础上已经产生了3个新区块,但是E区块基础上只产生了1个新区块,此时区块N就会向其他节点广播:“D跟E虽然是同时生成的,但是D基础上的链更长,所以D有效E无效。”


  结果就是区块D和它基础上的3个新区块继续存在,E和它基础上的1个新区块被放弃。

       同时产生2个新区块的状况,就叫做“分叉”。

       在上面的例子中,区块链的节点都认可D而放弃E,E和它基础上的1个新区块存在了一段时间又消失。这种可以消除的临时分叉,就叫做“软分叉”。

       但是如果有一些节点即便是知道D基础上的新区块更多、链更长,依旧以“法律”或“道德”的各种名义号召大家认可E和它基础上的1个新区块,一旦得到响应,那么E区块所在的链就会发展壮大起来,不再消失。这种固定分叉,就叫做“硬分叉”。


       原文链接:https://www.kg.com/article/486194716954726400

你可能感兴趣的:(一文读懂区块链的分叉)