本文来源OKEX学院
概述:本文梳理了比特币“分叉”的原因及其脉络,和未来可能会发生的技术分叉和已经发生的最主要的分叉事件,便于专业读者从技术层面重新认识比特币。
什么是比特币分叉?
比特币的分叉不是字面意思,它的“分叉”是指分成了两个完全不同的东西。
代码库分叉(Codebase Fork)
在比特币的代码库中,fork是软件实现代码的副本。 代码库分支通常会对原始代码库进行调整。 在比特币的上下文中,代码库forks可以完全与比特币协议兼容,它们可能导致无意的区块链分支,或者它们可以建立一个全新的加密货币。
区块链分叉
当区块链分支到两个版本的交易历史时,会发生区块链分叉。从单个孤立块到全新的加密货币,可能是由于多种原因而发生的,也可能是预期的或人为意外的,并且可能根据具体情况导致许多结果。
硬分叉
硬分叉是一种放宽或删除规则的协议升级。 如果所有用户都升级,则硬分叉不会导致区块链分叉。 特别是在比特币的背景下,一些人认为,除非所有用户都升级,否则“升级”协议根本不应被称为硬分叉,而应该是新的加密货币或“分叉币”。
软分叉
软分叉是一种可以收紧或添加规则的协议升级。 软分叉升级可能会导致区块链分叉,但是需要大多数的哈希算力对同一个交易历史达成一致后才可执行。 软分叉分为两种,一种是由矿工引发的软分叉(MASF),和由用户引发的软分叉(UASF)。
灰色地带
虽然不同的术语听起来足够清晰,但比特币的现实却很复杂。 硬叉和软叉之间的区别并不总是很明显,有时甚至不清楚什么应该被视为协议升级。 直到今天,有些专家不同意某些事件应该如何归类,而出于政治动机的重写历史的尝试使得其中一些事件更加混乱。
比特币创世核心
比特币于2009年推出,当时Satoshi Nakamoto(中本聪)发布了第一个比特币代码库。 然后,它被简称为“比特币”(或更具体地说,第一个版本的“比特币0.1.0”)。 后代的相同代码库被重新命名为“Bitcoin Core”,有时也被称为“Satoshi客户端”。
常规区块链分叉
当两个或多个矿工同时找到有效区块时,比特币区块链会分叉成两个分支。 按照既定设计理念,较长的那个分支会胜出,而较短的分支会被放弃(孤立)。 这是一种常见的区块连分叉现象。
第一个软分叉
比特币的第一个软分叉协议升级禁用了协议功能OP_RETURN。 这在技术上是一个UASF,但在这些早期,它实际上只是Satoshi Nakamoto决定协议规则。 升级没有导致区块链分叉。
第一个硬分叉
可以说,比特币的第一个硬分叉协。议升级增加了一个新功能OP_NOP,并且也由Satoshi Nakamoto指示。 然而,不是每个人都同意这种升级实际上是一个硬分叉。 无论哪种说辞,它都没有引起区块链分叉。
无意的区块链分叉
当比特币网络的不同部分看到不同的交易历史并且情况不能自动解决时,会发生无意的区块链分叉。 这些类型的区块链叉通常是由软件缺陷或其他技术问题引起的,并且是比特币经历的最大的短期故障。 幸运的是,它在比特币的历史上只发生过两三次,每次通过社区协调解决而没有太大的损害。
比特币结
比特币结是Bitcoin Core的代码库分支的一个例子。 代码库fork是代码的副本,不需要导致区块链分叉。 事实上,比特币结被 设计为与Bitcoin Core保持兼容 – 它只提供不同的功能。
Libbitcoin
Libbitcoin是在不同代码库中完全重新实现比特币协议的一个例子。 它不是 Bitcoin Core的代码库分支,但它仍然与Bitcoin Core保持兼容。
第一个矿工引发的软分叉(MASF)
P2SH升级可以说是第一个MASF,虽然后来的MASF使用了基于哈希算力的升级机制。 它没有引起区块链分叉。
BIP148客户端
BIP148客户端是Bitcoin Core的代码库分支的另一个例子。 BIP148客户端经过调整以强制执行UASF,以激活隔离见证协议升级。 它可能与Bitcoin Core和其他比特币客户端不兼容。
比特币ABC
比特币ABC是Bitcoin Core代码库的另一个例子。 然而,比特币ABC被调整以确保它在某个时间点与Bitcoin Core和其他比特币客户端不兼容。
比特币ABC从比特币链分叉,创造“比特币现金(Bitcoin Cash)”
2017年8月1日,比特币ABC变得与Bitcoin Core和其他比特币客户不兼容。 在这样做的过程中,它创建了一种新的加密货币,称为“比特币现金”。(虽然未在此信息图中显示,但比特币现金现在也包括几个客户 – 而不仅仅是比特币ABC。)
BTC1
BTC1也是Bitcoin Core的代码库分支,以确保它与Bitcoin Core和其他比特币客户端不兼容。 但是,BTC1的特定目的是为新的比特币协议“Segwit2x”部署硬叉升级。(换句话说,目标是让所有比特币用户切换到Segwit2x协议并将此协议视为“比特币”。)
第一次用户引发的软分叉(UASF)
如果BIP148客户端没有获得足够的支持,它将从比特币中分离出来以创建一个新的加密货币。 但是,由于有足够的矿工升级他们的系统,BIP148客户端仍然与其他比特币客户端兼容。 许多人认为这个协议升级是第一次真正的用户引发的软分叉(UASF):不是由开发人员决定的,而是由草根用户运动产生的。
比特币Clashic
一个新的比特币ABC版本被设计为硬分叉到升级的比特币现金协议。 大多数比特币现金用户确实升级并声称这个新协议的名称为“比特币现金”。 然而,少数用户选择继续使用第一个比特币现金协议(主要是作为一个笑话),并采用了这个加密货币的新名称:“比特币Clashic”。
Bitcoin Core(没有实现)
在2018年初,大多数比特币Clashic社区采用了比特币Clashic客户端的代码库分支,称为Bitcoin Core Sq。 与现有的比特币Clashic客户不兼容,这再次创造了一种新的加密货币,故意混淆名称“Bitcoin Core”。Bitcoin CoreSq 和/或Bitcoin Core加密货币与Bitcoin Core软件客户端和/或比特币协议不兼容。 虽然比特币Clashic也存在了一段时间,但它现在已被完全抛弃(主要是支持Bitcoin Core)。
Segwit2x的失败
出于多种原因,几乎没有人采用BTC1。 它不仅没有“升级”比特币协议,它甚至没有继续作为一种新的加密货币。
比特币黄金(Bitcoin Gold,),比特币钻石(Bitcoin Diamond )和数十个分叉币
Bitcoin ABC从比特币现金(Bitcoin Cash)链成功分叉出来的先例之后,又推出了许多所谓的“分叉币”。 比特币现金产生于比特币社区长期存在的分歧,其他的分叉币通常被认为是区块链分支,只是一种推出新硬币的好方法。
比特币SV
Bitcoin Satoshi的愿景(比特币SV)是比特币ABC的代码库,但经过调整以确保它 在某个时间点与比特币现金协议不兼容。
比特币ABC和比特币SV拆分
在2018年,比特币现金社区内的分歧有比特币ABC和比特币SV 都 从现有的比特币现金(Bitcoin Cash)协议中分离出来。 Bitcoin ABC在各方面的表现都更加强大,因此他们自称为Bitcoin Cash,虽然它现在也被称为“Bitcoin Cash ABC”。分拆的比特币SV方面声称“比特币SV”。(新的加密货币及其主要实现现在共享名称“Bitcoin SV”)截止今天BSV似乎已经失去了社区的支持。
比特币黑暗(Bitcoin Dark)
比特币黑暗(Bitcoin Dark)是Bitcoin Core的代码库分支,产生了一种新的加密货币,取名为比特币黑暗(Bitcoin Dark)。 像Litecoin和许多其他山寨币一样,代码库从一开始就被调整为与比特币协议完全不兼容。 Bitcoin Dark是一种全新的数字货币,但不是区块链分叉,只是名字里有“Bitcoin”。 Bitcoin Dark如今已经不存在了。
撰文:Sasha Ivanov
编译投稿:Van
点击领取OKEX学院专属送币福利
https://www.okex.me/academy/zh/zhihu-jianshu-cn?channelFlag=ACECK1501349