硬分叉与软分叉
Last updated
Last updated
硬分叉:增加new feature,扩展新功能。旧节点不兼容升级后的新节点产生的区块。
软分叉:对协议加一些限制,旧节点兼容升级后的新节点产生的区块。
硬分叉是区块链发生永久性分歧,在新规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。规则改变,产生一条不同的链(升级block size,从1M更新到4M)
THE DAO攻击:攻击者从THE DAO的智能合约中盗走了价值超过千万美元的以太币,通过硬分叉使得以太坊产生一条新链。ETH vs ETC
软分叉:当新的共识规则发布后,没有升级的节点会因为不知道新规则,而生产不合法的区块,就会产生临时性分叉。老版本节点可能做无用功:
挖到无效块,因为这些块中包含了在新规则下无法被验证的交易
转发给其他新节点,新块不会接受
这会强迫老节点更新协议/规则
老节点转而扩展最长的链:分叉消失
比如没升级的节点:P2PKH(一阶段验证),升级的节点:P2PSH(两阶段验证,需要验证赎回脚本)
分叉攻击——最长链机制带来的副作用
自私的矿工会隐藏自己刚刚开采的新区块,并继续开采这个隐藏区块之后的下一个区块。只有他自己知道刚刚挖出了一个新区块,其他人 都在跟进旧的前一个区块进行挖矿。