Open 2725457308 opened 3 years ago
简单说 分叉是指在区块链进行“升级”时,区块链社区成员间发生了意见分歧,从而导致区块链分叉,原有区块链被一分为二,根据分叉后的区块链是否兼容旧区块链,分叉又分为“软分叉”和“硬分叉”。因为没有中心化机构,比特币等数字资产每次代码升级都需要获得比特币社区的一致认可,如果比特币社区无法达成一致,区块链很可能形成分叉。分叉导致区块链被一分为二。 畅054
分叉主要可以分为软分叉,用户激活分叉和硬分叉。
所谓软分叉,是指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,在去中心化架构中,节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。
因此只有矿工节点需要激活软分叉,因为网络中老的节点即使不升级也可以接受新的区块。
矿工们往往倾向于升级到新版本,否则他们挖出的区块将有可能不被采用新规则的节点所接受。不过事实上很少有矿工会直接选择是否升级新规则,他们往往要根据大多数人的选择再决定是否升级。
要想软分叉成功,则必须要超过一半算力的矿工决定升级。
尽管如此,软分叉比硬分叉动静要小得多,后者需要网络中所有参与者的同意。
用户激活软分叉(UASF)是一种更加复杂的软分叉,一般来说由P2P网络中的经济的大多数(economic majority)提出,它需要大量的行业支持和协作才能实现。
去中心化体系中的节点,以及其余的economic majority(包括网络中的钱包和交易所等)往往是决定激活软分叉的主体。然而,事情也并非都是如此,Bitcoin Improvement Protocol (BIP)148就是一个例外。 琳043
由于区块链是一个由数据块组成的链式结构,所以当他要升级的时候,实际上会从某一个数据快开始连到两个不同的数据块上,从而分成了两条链,就好像树枝一样,大家共用同一个树干,共享未分开前的数据,但是又有很多条树枝属于多条链,而这个过程就叫做分叉。 寒059
区块链的分叉可以说是区块链网络中独有的一种版本升级方式,就像我们生活中使用的互联网软件一样,使用了一段时间以后自然而然就需要进行优化升级,从而去解决一些用户的使用问题,区块链也是这样,只不过它的升级比较特别,升级的时候会有参与的矿工共同来决定,甚至还能产生多种版本,不像互联网一样,一家独裁没有选择的余地。 礼004
假设在区块增长到 2 号的时候,此时软件升级了,增加了之前版本中不能识别的一些表结构,会怎么样?
在传统的中心化软件体系中,由于数据存储都是集中的,版本管理也是集中的,如果是重大的升级,完全可以设置为若不更新到最新版就不能进行登录操作,从而确保用户使用的总是正确的版本。
然而区块链先天是去中心的使用方式,一旦有新的软件版本发布后,并每个人都会去升级到新版本,这就可能导致如下图所示的问题:在 2 号区块生成的时候发布了新的版本,且新的版本增加了之前版本不能识别的数据结构,此时部分用户升级了新版,部分用户还没有升级,这些新旧版本的软件仍然在各自不停的挖矿、验证、打包区块,这个就叫分叉 君040
issue应该包含一个简单明了的issue标题和一段帮助其他人理解问题的问题详情,阐述你对问题的思考。