【区块链探索笔记十二】:比特币分叉

为什么比特币要分叉

我们知道,比特币每10分钟更新一个区块,这个区块上记录了10分钟内发生的所有交易记录及见证数据,但是这个区块目前的最大容量只有1M,1M的区块每秒最多能容许5-7笔交易,也就是说这个1M区块大小决定了比特币目前可处理交易上限是5-7笔,而信用卡的交易是每秒2000笔……

随着比特币的用户数和比特币区块链上的交易原来越多,目前的1M区块大小成为比特币发展的瓶颈,这也是目前比特币网络拥堵问题越来越严重、费用越来越高的原因,毕竟在交易量太大的情况下,矿工会优先给费用高的交易先打包完成交易确认,导致小额交易因支付费用低确认时间大大拉长。所以为了比特币的长远发展,比特币分叉扩容迫在眉睫。

什么是分叉

比特币的分叉就是对整个比特币网络的升级,就和苹果IOS系统需要不断更新升级一样,原来的比特币网络比较拥挤、满足不了目前用户快速增长的需求,自然就需要扩容升级。升级修改的主要是比特币交易的数据结构、生成区块链的格式以及某些新特性等等方面。这一过程中涉及到两个概念,软分叉与硬分叉。

比特币中的软分叉和硬分叉主要指因比特币协议的突发改变而导致的兼容性的问题。比特币协议发生改变,会有两个不同版本的比特币协议在同时使,他们对其他区块的接受规则不同会导致区块链长期分叉,这两个不同的链都会被不同的网络认为是有效的。链分叉也导致网络分叉。

1.软分叉是向前兼容的

软分叉是指旧节点并不会意识到代码的变化,并继续接受或者说验证新节点生成的区块。如上图软分叉的新的规则是以前旧规则的子集,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。旧版本会接受新版本创建的区块。新版本和旧版本是兼容的。

如果有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本创建的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。因为在旧版本上的算力是小于新版本的。

但是如果小于51%的矿工算力转向新版本,那么软分叉将不会出现,因为旧版本比新版本有更多的算力支持,同时旧版本不兼容新版本。

2.硬分叉不向前兼容:

未进行升级的旧节点不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。为此不符合原规则的区块会被忽略,使用旧节点的矿工按照原规则继续挖矿,区块链发生永久性的分歧。也就是说,如果新规则部署后部分节点未进行升级,区块链将分裂为两条链。就如2016年以太坊为追回The DAO被盗资金而发生的分裂事件。

总 结

软分叉向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。

硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。

你可能感兴趣的:(【区块链探索笔记十二】:比特币分叉)