概述

  • 产生分叉的原因
  • Hard fork
  • Soft fork

产生分叉的原因

  • 比特币系统的协议的修改升级,因此产生的分叉称为 Protocd fork。
  • 攻击者的攻击。

Hard fork

即这个分叉是永远的。

如果对比特币协议增加新的特性,那些没有升级软件的节点不认可新特性,这个时候就会产生硬分叉,一个例子是比特币的区块大小限制。假如有人发布了软件更新,将区块大小限制从 1M→4M,假设大多数节点都更新了,少数节点没有更新,这里的大多数不是按账户数目来算,而是按算力来算,即系统中有大多数 hash 算力的节点都更新了软件。新节点能挖出最大是 4M 的区块,但是旧节点不认可大小超过1M的区块,所以旧节点会沿着小区块一直挖下去,新节点大小区块都接受,但旧节点不接受大区块,两者没有达成共识,这样就会出现一个永远的分叉。

图片加载失败

图片加载失败

Soft fork

即暂时性的分叉。

如果对比特币协议加一些限制,原来合法的交易或者区块在新的协议可能不合法就会引起软分叉。假如有人发布更新将区块大小变成 0.5M,大部分节点更新了软件,少部分没有更新。这时候新节点沿着一条链挖小区块,不认可大区块,旧节点沿着一条链挖大区块,同时旧节点也认可小区块,因为新节点算力更强,所以更快形成一条新旧节点都认可的最长合法链,但是新节点不会在旧节点产出的大区块后面继续挖,而是会继续分叉挖小区块,所以旧节点挖出的大区块最后都没用了,不得不更新软件。

图片加载失败

图片加载失败

参考资料