介绍
区块链的去中心化特性允许不同的参与者(节点)安全透明地验证和验证网络上的交易。但是,此设置可能会导致参与者之间就应遵循哪些规则以就网络状态达成共识产生分歧。
一些参与者可以选择创建一个新版本的区块链,使用他们同意的规则。这就是所谓的分叉。
在本文中,您将了解什么是分叉、不同类型及其对网络状态的重要性。
什么是节点?
节点是连接到区块链网络的计算机或设备,负责验证、确认交易并将其广播给其他节点。节点具有特殊软件,其中包含用于验证区块链网络上交易的规则。最常见的节点类型是全节点。此类型包含区块链分类帐的完整副本,用于跟踪交易是如何从 2009 年的第一笔交易开始立即发生的。
块是如何创建的?
网络上的所有节点总是在竞相寻找下一个要添加到链中的有效块。当一个节点找到一个有效的块时,它会将其广播到整个网络以供其他节点验证。当竞争中的其他节点收到这个有效块时,他们确认它确实有效,停止他们一直在做的事情,并立即开始使用收到的块作为链上的参考来寻找下一个有效块。
所以整个过程是这样的:节点收到最新的区块,并根据规则进行测试。如果该块有效,则节点在引用最新块的同时开始创建新块的过程。
网络中的所有节点都具有相同的规则集,用于就哪个块有效或无效达成共识。当需要改进网络上已知的当前规则集以解决某些错误或甚至在网络上引入新功能时,就会出现这种情况。
节点现在必须更新他们用来达成共识的规则集。这个过程不是自动的。每个同意新规则的节点都必须手动下载并安装此更新。不同意新规则的节点不会下载和更新其软件。
一些节点更新他们的软件而其他节点选择不更新他们的软件的整个情况导致在使用哪组规则来达成共识方面存在分歧。运行旧软件的节点只能创建一个有效块,但它会被运行更新软件的节点拒绝
一些运行旧软件的节点可以确认一个有效的块,如果新软件包含使它无效的规则,则只能由运行更新软件的节点使其无效。这会导致网络分叉。
分叉的类型。
软分叉:这是一种旨在添加新功能或提高网络安全性的分叉,并且它是向后兼容的。节点可以选择是否升级到新规则。未升级到新规则的节点仍然可以与已升级的节点通信,反之亦然。然而,随着时间的推移,所有节点都必须升级到新规则,因为使用旧规则创建的块将被拒绝。
硬分叉:这种类型的分叉旨在向网络引入新规则并且不向后兼容。升级到新规则的节点无法与具有旧规则的节点进行通信。因此创建了两个区块链,一个网络由同意遵守旧规则的节点组成,另一个网络具有已升级到新规则的节点。
硬分叉的一个典型例子是 2017 年比特币 SegWit 硬分叉,它导致创建了一个名为比特币现金的新区块链。在这里[1]阅读更多相关信息。
使用哪种类型的分叉?
根据情况,一种分叉优于另一种分叉。2015 年,比特币实施了 BIP66,该提案将引入更严格的交易验证规则,软分叉优于硬分叉,因为比特币核心程序没有重大变化。
此外,以太坊网络在 2016 年实施了硬分叉,以帮助扭转对去中心化自治组织 (DAO) 的攻击,攻击者在该组织中损失了数百万美元。有了这次分叉,数百万美元免于被盗。
结论
分叉是区块链和网络技术的重要组成部分,它允许对协议进行创新、改进和网络协议的演进,以满足用户不断变化的需求。如果执行得当,它可以显着提高网络性能。但是,另一方面,如果没有达成共识,也会导致社区的分裂和碎片化。
原文:https://samthetutor.hashnode.dev/forking-in-blockchains-understanding-soft-and-hard-forks-for-successful-upgrades