做大做强3星评价
2020-09-18 10:49:09
在中心化系统中升级非常简单,比如在手机上上有软件可以升级的话,我们可以直接在软件中心升级。但在区块链等去中心化系统中,“升级”并不简单,甚至可能一个不小心就造成区块链分叉。简单来说,“分叉”就是指区块链在升级过程中发生了意见分歧,导致了区块链分叉。因为没有中心化机构,比特币等数字化资产每次代码升级,都需要获得比特币社区的一致认可,如果比特币社区达不到一致,区块链就很有可能形成分叉。例如比特币在2017年7月,为了解决区块链拥堵问题,一些比特币爱好者提出了bitcoin cash分叉方案,导致比特币的区块链一分为二,根据分叉后的区块链是否能兼容旧的区块链,分叉就分为硬分叉和软分叉。
硬分叉是指当区块链代码发生改变后 旧节点拒绝接受由新节点创建的区块,不符合原规则的区块将会被忽略,矿工会按照原规则在他们最后验证的区块之后创建新的区块。俗的说,就相当于一条主路上堵车,我们直接弃用这条路,找个地方,做一个地上地下立体交通枢纽,新车都走这套交通系统,这套系统改变了比特币网络的区块大小,优化了网络的处理速度。硬分叉的缺点是不兼容原有的比特币系统,这就要求现在比特币网络所有的人都要支持硬分叉,若有部分人不支持硬分叉,比特币网络将会出现两个版本,也就产生了两个比特币,这两个比特币所存在的区块链形成竞争关系。区块链领域最有名的硬分叉案例,便是“以太坊”分叉,一句话说就是:旧区块不兼容新区块就是硬分叉。
软分叉是指区块链代码发生改变后,旧的节点并不会感知到区块链代码发生改变,并继续接受由新节点创建的区块,矿工们可能会在他们完全没有理解或验证过的区块上进行工作,软分叉新旧节点双方始终都工作在同一条链上。就相当于一条主路上堵车,开发团队就再建造一条辅路,帮助主路分流拥堵。这是一种温和的解决方式,能让原有的比特币网络和软分叉之后的网络进行兼容,比特币的主要交易还在主链上。当然,软分叉存在缺点,那就是治标不治本,只能解决暂时的拥堵问题,执行软分叉后,也仅能保持数年内网络的通畅,未来还需要不断扩容,对系统稳定性有影响。旧区块兼容新区块就是软分叉。
对用户而言: 软分叉不会产生新的比特币币种,只需要了解比特币该币种的交易方式和特点,只需要一种比特币主流钱包即可。硬分叉会产生新的币种,而且可能不止一种新的币种,可能会让有些用户感到混乱。但是,相应的,用户的选择权也变大了。可以选择自己喜欢、信任的开发团队开发的比特币代码。但是,相应的,用户的选择权也变大了。可以选择自己喜欢、信任的开发团队开发的比特币代码。
在比特币网络中,由于分散共识机制,硬分叉的存在不可避免。而且由于比特币软件去中心化的运行模式,任何一个矿工、用户或者网络节点,以及那些拥有网络节点和算力的交易所、矿池,都可以根据自己的需求选择支持分叉的任意一方。因此,避免过于激进的硬分叉,在分叉前充分做好预防网络攻击的准备,充分考虑各方的需要,就变成了必须要完成的功课。
Come2星评价
2020-09-18 14:10:25
在传统的中心化软件体系中,由于数据存储都是集中的,软件版本管理也是集中的,如果是重大的版本升级,完全可以设置为若不更新到最新版本软件就不能进行登录操作,从而确保用户使用的总是最新版本。
然而区块链就是去中心化的协同服务网络,一旦有新的软件版本发布后,并非每个人都会去升级到最新版本,假设发布的新版本增加了之前版本不能识别的数据结构,此时部分用户升级了新版,部分用户还没有升级,这些新旧版本的软件仍然在各自不停的挖矿、验证、打包区块,一段时间过后就会在新版系统和旧版系统上发展成两条链,这就是分叉。
“分叉”又分为“硬分叉”和“软分叉”:
硬分叉:新的版本定义了新的规则,并且与旧版本不兼容;
软分叉:兼容性更强,是对过去版本协议规则的一种补充,即向后也向前兼容。
当新版本发布后,并非所有节点都会选择升级,那些没有升级新版本协议的区块发布的交易将只能由运行旧版本软件的区块认证通过,而因此升级了新协议的区块发布的交易只能由运行新版本软件的区块认证通过;由于规则不兼容,因此矿工们工作在各自的最长链条上。于是产生了两条基于不同规则的、永远不会合并的区块链。
区别于硬分叉,软分叉兼容性强,是对过去版本协议规则的一种补充,即向后也向前兼容,新版本创建的区块可被新旧版本验证,而旧版本创建的区块只能被旧版本验证,新版本则会拒绝,根据最长链原则,在产生分叉链条后,老版本用户就不得不升级到新版本以迁移到最长链上来工作,这时临时分叉出来的链条就会消失,确保了区块和交易信息的唯一性。
例子:
历史上最大的硬分叉事件:TheDao被黑客攻击的事件。
2016年6月区块链最大ICO项目TheDao遭黑客攻击,导致300多万以太币资产被分离出TheDAO 资产池,当前相当于20亿美元。
当时以太坊创始人建议做软分叉重新算账:
从块高度1760000开始把任何与The DAO相关的交易认做无效交易。然而,还是有人提出反对。他们认为这违反了区块链的不可篡改性以及智能合约的契约精神,哪怕TheDAO的钱被偷走了,但是只要数据被写在了区块上,就是不可篡改的,因此他们并不配合V神的分叉,依然使用老版本。
就这样,软分叉最后生生搞成了一次硬分叉,新ETH依然获得了大多数矿工和开发者的认可,但是还是有少数人坚持使用老节点,这时挖出来的币被称为ETC(ethereum classic),即以太经典。