BTC-分叉-10

168 阅读1分钟
  • 比特币系统分叉分类:

    • 状态分叉state fork:由于对比特币区块链当前的状态有意见分歧而导致的分叉
      • forking attack (deliberate fork)
    • 协议分叉protocol fork:比特币系统需要软件升级,即对协议有意见分歧而导致分叉
      • 硬分叉hard fork:新区块认可旧区块,旧不认可新,永久性分叉
        • 例一:block size limit变大为2M
        • 攻击:在另一条链进行重放攻击,可添加chain ID解决
      • 软分叉soft fork:新区块不认可旧区块,旧认可新,临时性分叉
        • 例一:block size limit变小为0.5M
        • 例二:给某些目前协议中没有规定的域增加一些新的含义(如coinbase域),当前系统中的轻节点无法证明账户A中金额是多少(全节点可以通过查UTXO,看A在UTXO里对应的输出总共收到多少个币即可),有人提议把UTXO集合当中的内容也组织成一颗merkle tree,这个merkle tree有一个根哈希值,根哈希值写在coinbase域里面,这样就可以用merkle proof证出来了
        • 例三:P2SH (Pay to Script Hash)
  • 总结:

    • soft fork特点是什么?只要系统中拥有半数以上算力的节点更新了软件,那么系统就不会出现永久性的分叉,只可能有一些临时性的分叉
    • hard fork特点是什么?必须是所有的节点都要更新软件,系统才不会出现永久性的分叉,如果有小部分节点不愿意更新,那么系统就会分成两条链