主页 > imtoken钱包正版 > 比特币深度意味着当你听到分叉时不要害怕 - 深入解释比特币中“分叉”的含义

比特币深度意味着当你听到分叉时不要害怕 - 深入解释比特币中“分叉”的含义

imtoken钱包正版 2023-05-06 07:24:09

第0章介绍

在比特币行业,一直有“分叉”的概念。 不懂的人特别害怕这个东西,常常把这个词等同于“分裂”。 其实这个词还有很多更深层的含义,我会详细分析的。

Chapter 1 代码层面的“fork”称为“fork”

“fork”这个词最常出现的地方是 GitHub,这是一个代码托管平台,是多个程序员共同管理和共同开发项目的一种方式。

为了便于理解,我先打个比方。

你在公司的某个部门,比如研发部门。 部门有5位同事,其中一位是部门经理。 现在部门要向公司提交下个月的办公用品采购计划。 部门经理先用wrod文件写一份采购申请表,将自己打算采购的东西填写在申请表上。 然后经理将文件上传到部门的共享文档。

同事A复制文档,然后添加自己要购买的内容,上传到共享文档中,供经理审批。 同事B、C、D也复印了一份,加上自己想买的东西,申请审批。

部门经理认可了A的采购方案,认为合理,将A的需求纳入了自己的申请表。 同意B的方案后,他认为不合理,拒绝了B的要求,直接放弃了B的方案。 然后继续批准C和D。合并或丢弃。

然后B很生气,觉得不合理,绕过部门经理,直接向公司递交了采购申请。

如果将上例中的“采购申请”换成“程序开发项目”,则上述过程就是一个典型的“立项”、“分支”、“请示”、“合并”、“分叉”的过程。

部门经理设置了一个项目来编写采购申请。 写好自己的部分后,将文档上传到共享云端,形成主要代码库。

然后ABCD的四个同事“branch”(中文翻译成branch)把自己想要的features添加到branch,然后向主代码提交一个申请,叫做“pull request”,中文也叫“pull request” . 请求将您的更改合并到主存储库中。

然后经理,首席开发人员,将批准“拉取请求”。 如果合格,他会将这部分代码合并到主代码库中。 这个过程称为“合并”,中文翻译为“合并”。

如果主开发者认为这个“pull request”不合理,就会拒绝,英文叫做“Close”。 但如果提出这个“pull request”的人认为他是对的,他就可以自己出去了,别再和经理玩了,自己创建一个项目,选择一个不同的名字,自己合并代码。 这样就形成了一个“叉子”,中文翻译为fork。

以上是一个所有参与者都拥有开发权限的过程,但是如果项目组之外的人看到这个项目,想要提交一个“pull request”特性代码,那么他必须先“fork”主仓库”,再提交一个”拉取请求”。 这种没有开发权限的人叫not having permission to submit code,有权限提交代码的人英文叫commit permission。

这就是开源软件管理的过程。 开源软件的代码更新和错误修复使用此过程。

比特币是一套开源软件。 一开始,只有一个由中本聪构建的代码库,称为比特币。 后来,很多人“分叉”了比特币,提交了“pull requests”。 有些人干脆自己“分叉”,独立出去,形成新的分叉。

现在比特币的开源软件有很多分叉,最著名的有bitcoin core、bitcoinunlimited、bitcoin classic、bitcoin XT、Bcoin……

第二章 软件版本上的“分叉”也叫“去中心化开发”

比特币有很多版本,也有很多分叉。 在比特币网络的实际运行中,所有这些不同的版本都是相互兼容的,同时运行这些软件不会导致比特币网络分裂。 我们将这些不同的相互兼容的版本称为竞争实现。

多个版本的软件实现相同的功能,每个版本都有自己的用户。 这是软件版本之间的竞争。

这些多个版本还可以有一些额外的独特功能,只要它们不影响与其他版本的兼容性即可。

在同一网络上运行多个版本有很多好处。 最重要的软件特性变更和协议,由于需要多版本兼容开发,所有竞争的开发者必须相互审查和测试所有实现代码,代码质量会更高。 并且由于全网多个版本的存在,单个版本的漏洞不会导致全网崩溃。

比特币网络是多版本同时存在,开发者之间相互竞争。 这就是去中心化的发展。

第三章 比特币区块链“协议升级”常被误称为“分叉”

比特币网络将部署一项称为“协议升级”的新功能。

我们更新手机和电脑上的软件。 这是一个非常简单的过程。 只需下载新版本的软件并安装即可。

由于比特币网络的目标是实现全网众多节点的共识,因此需要采取特殊措施实现比特币网络新的大版本升级,激活全网新的主要功能。

所有影响共识的新特性在升级过程中必须采取特殊措施防止共识失败。 其中,比特币区块链最重要的共识是矿工广播区块和交易格式必须是共识的,即所有矿工节点可以相互认可和接受区块和交易的格式。

最重要的措施是确保全网绝大多数节点准备就绪,然后同时激活新的功能。 这要求每个节点使用的软件都具有向整个网络发送和从整个网络接收特定信号的能力。

但这个过程并不简单,大多数重大升级都存在共识失败的风险。 即使各方利益不同,也会有人在升级过程中恶意宣传共识失败。

如果共识失败,比特币区块链可能有两条或更多条链。 此为“分叉”,亦称“分叉”。

比特币的主要协议升级有两种思路,一种叫“硬分叉”,一种叫“软分叉”。

硬分叉和软分叉都是升级比特币协议的方式比特币的分叉币,并不一定会导致比特币分裂成两条链。 分裂只是升级失败的结果。

人们常说的“比特币分叉”在大多数意义上并不意味着“比特币分裂”,而是“比特币协议升级”。

第四章 比特币区块链“协议升级”失败或导致“分裂”

再次重申,硬分叉和软分叉都是比特币协议升级的方式,不一定会导致比特币分裂成两条链。 分裂只是升级失败的结果。

硬分叉和软分叉都可能失败,都可能导致分裂。 不过只要管理好,大家统一升级比特币的分叉币,就没有问题。

如果升级失败,导致两条链,在大多数情况下,它可以通过社区的努力来修复。 小算力往往无法挖出区块,往往返回到大算力链上进行挖矿、分裂和统一。

如果这两条链永远持续下去会发生什么? 那么对于用户来说有两种币种,对于矿工来说,需要考虑哪条链适合挖矿。 事实上,以太坊在拆分成两条链之后,做得非常好。

第五章结论

这个叉子和那个叉子不一样。

币圈新闻,版权所有丨如未注明,均为原创丨本站受BY-NC-SA协议授权

转载请注明原文链接:比特币深度是什么意思? 当你听到分叉时不要害怕——深入解释比特币中“分叉”的含义