Fork:软件更新导致新旧节点之间的差异
hard fork 硬分叉
block size limit 1M-->4M 大多数节点完成更新
大区块:新节点认可,旧节点不认可;小区快:新旧节点都不认可(1M<4M满足新节点要求)
旧节点(可以看成是保守党)则沿小节点的链继续计算,产生永久性分叉==>两条链平行发展,各挖各的,可能产生两种加密货币。
比如ETH由ETC演变而来,两者可能仅仅协议不同。而对于更新前存在的币在两条链中都有备份,易产生漏洞。在一条链中的tx可能会影响到另一条链中的tx,
产生耦合,因此需要给链加上chain ID以便区分货币。
soft fork 软分叉
block size limit 1M-->0.5M
大区快:新节点不认同,旧节点认同;小区快:新旧节点都认同。
不更新的旧节点一直产生大区块,只能成为orphan block,不会被写入区块链中,成为临时性分叉,一旦旧节点更新为新节点,软分叉就会消失。
Bitcoin软分叉:P2SH pay to script hash
一般软分叉为积极因素更新,硬分叉为消极因素更新。(可能)
soft:只要系统中拥有半数以上算力的节点更新软件,就不会出现永久性分叉。
hard:只有全部节点都更新,才不会出现永久性分叉。