主页 > 怎样下载imtoken > 解密区块链(十):hard fork

解密区块链(十):hard fork

怎样下载imtoken 2023-01-18 17:01:54

正如我们前面提到的,比特币扩容问题争论已久,至今尚未形成共识。有些人喜欢更保守的 2MB 解决方案,有些人倾向于立即提及 8MB。

俗话说:很难告诉大家,比特币区块链节点的数量非常多,而且还会越来越多区块链硬分叉机制,这么多节点之间几乎不可能形成相对一致的意见,但是区块扩容随着时间的推移变得越来越迫在眉睫。

这就导致了一个问题,一旦比特币基金会获得超过51%的节点同意,那就是分叉问题。

分叉分为硬分叉和软分叉。

今天我们将讨论硬分叉。什么是硬分叉?

比特币官网是这样解释的:

区块链有一个永久的分歧。新共识规则发布后,部分未升级节点无法验证升级节点的生产。块,通常会发生硬分叉。

进一步的解释是:比特币升级后,一些升级到新版本的节点产生了新的区块。比如新区块是扩容后的2MB区块,没有升级节点。 ,或者生成之前的 1MB 块,导致没有升级的节点,无法验证新的 2MB 块,出现分叉。

当然,作为新升级的节点,是可以验证非升级节点出块的。

这就像软件的新旧版本一样。新版本可以兼容旧版本,但旧版本一般不兼容新版本。

这是一个硬分叉。

那么,如果发生硬分叉会发生什么?

一旦发生硬分叉,除非所有节点都升级到新节点,迁移到新的区块链区块链硬分叉机制,或者每个人都回退到旧版本并使用旧的区块链,否则很难解决。

比特币历史上有两次意外的硬分叉。

2013年3月12日,比特币qt0.8.0版本软件发布,0.8版本采用了新的数据库级db。部分矿工节点升级了bitcoin qt0.8版本,部分矿工继续使用bitcoin qt0.7版本软件。双方分别出块,但比特币qt0.8采用的新数据库出块被qt0.7版本节点拒绝。具体原因是老数据库有时不接受大于800Kb的块。因此,在区块高度 225430 处,比特币区块链被分成两条链,导致比特币区块链中有两条链,一条是包含大于 800kb 区块的链,另一条是拒绝承认这些包含更大区块的链块,这发生在硬分叉上。

当时使用比特币qt0.8的矿工放弃了自己的矿链,回到比特币qt0.7继续挖矿。

这次硬分叉是个意外。比特币qt0.8版本软件存在bug,导致使用旧软件的节点拒绝验证新软件节点出块。但是,硬分叉是由于使用旧软件版本的节点拒绝验证使用新软件版本的节点产生的块,然后双方分别挖矿造成的。

2015 年 7 月 4 日,比特币区块链在区块高度 363731 发生硬分叉。当时,Bitcoin Core 开发人员在新版本的 Bitcoin Core 中添加了 BIP 66 0.10. 0。这最初是对软分叉的修改。当比特币网络上的所有主要矿池都使用0.10版本软件,但一个矿池BTC Nuggets没有升级,导致BTC Nuggets挖了两个矿池。其他矿工拒绝该区块,然后双方挖矿并继续他们认为正确的区块链,产生硬分叉,分为两条链。

随后bitcoin.org发布公告,号召矿工升级到比特币核心0.10.2版本消除分叉。

这也是一个意外。硬分叉是因为新软件版本的节点拒绝验证旧软件版本节点出块,然后双方独立挖矿。

发生硬分叉后,一般通过大家的道德观达成共识,比如回到旧版本继续挖矿,放弃新版本挖出来的分叉。

或者联合升级到一个版本来消除新的fork。

(待续)

=====================================