在全网中就出现了两个长度相同、区块里的交易信息相同、但矿工签名不同或者交易排序不同的区块链。这样的情况,叫做区块链分叉。
在区块链中,有旷工外出区块,并将其连接到主链上。而挖矿就好像解题,需要完成工作量的证明。假设几乎在同意时间,有两位旷工解除了题(证明了自己的工作量),并同时将其广播到全网中。由于距离有远近,不同的节点看到这两个区块是有先后顺序的。离矿工A 近的节点先拿到矿工A 的区块,就将区块复制过来,以延长区块链,当矿工B的广播消息到达是,则被忽略。同样,离矿工B近点的节点以矿工B 的区块为基准延长。从而在全网中就出现了两个长度相同、区块里的交易信息相同、但矿工签名不同或者交易排序不同的区块链。这样的情况,叫做区块链分叉。
出现分叉后,区块链本身是如何处理的呢?
现在在全网中已经有了两个阵营,同时 全网的算力被瓜分,一部分算力专注在以矿工A 的区块未父区快的链上,另一部分算力专注在以矿工B的区块为父区块的链上。这是,总有一个阵营中先出现完成解题的矿工,那么他将进行广播,这时会出现一个更长的链,无论是哪个阵营的节点,都会将这条更长的链设置为主链,从而实现分叉后再统一。
以上分叉情况比较简单,即当所有矿工都遵从统一的机制时出现的分叉。那么当矿工不遵从统一的机制时,则会有另外两种分叉情况出现--软分叉和硬分叉。
领取专属 10元无门槛券
私享最新 技术干货