1分钟阐述什么是区块链分叉

  有不少朋友问,全球每个区块链节点都包含全部数据,都在最新的区块链数据上挖符合条件的区块,如何两个节点同时挖到新区块,出现数据不一致,该怎么办呢?

  今天,花1分钟和大家介绍什么是区块链分叉,来解答上面的问题。

  假设当前最新的区块链有三个区块:

  假设中国有一个节点,美国有一个节点,同时挖到了矿(即找到了符合哈希预期的区块,挖矿的过程详见《1分钟了解挖矿的本质》),这两个节点都会把自己挖到的矿,链到自己本地的区块链上,这就出现了区块链分叉。

  同时,这两个节点会将“我挖到矿啦”同步全球其他节点,以便于其他节点同步完最新的数据后,在最新的区块链上继续挖矿,此时:

  离中国节点较近的点,可能先同步到“中国链”,并在此链的基础上继续挖,链条会持续增长

  离美国节点较近的点,可能先同步到“美国链”,并在此链的基础上继续挖,链条也会持续增长

  节点收到两个冲突的区块链同步,会判断此时哪条链的长度更长,会以长度更长的区块链为准

  如此迭代,最终全球区块链终究会达成一致,以最长的区块链为准。

  除非,有人掌握了全球51%的计算力(额,这不是相当于中心化了吗),才能为所欲为。承载比特币应用的区块链,一般认为一个区块后面再链了6个区块后,就不肯能被“颠覆”了,故称为“六次确认”

  关于区块链分叉,“软分叉”和“硬分叉”这两个概念是不能不提的。

  什么是软分叉?

  :区块链系统升级后,在所有节点升级到最新的版本之前,由于程序版本的差异可能会产生分叉,只要升级到最新的版本,分叉就会消除,这就是“软分叉”,软分叉是临时的

  什么是硬分叉?

  :有些人头硬,不按照规则来,拉了一个分支,以“道德”或者“法律”的名义,号召大家认可自己的链,形成分叉,这就是“硬分叉”,硬分叉是永久的

  区块链领域最有名的硬分叉,是“以太坊”分叉,事情大概是这样的:

  黑客盗取了大概6kw美元的合约币

  以太坊开发团队修改源码,强行把第1920000个区块的资金转移到另一个地址,“夺回”黑客控制的合约币

  大部分矿工认同这个修改,一部分矿工不认同这个修改,于是形成了两条链,新链是以太坊(ETH),原链是以太经典(ETC)

  大家继续在自己认可的链路上继续挖矿