看不懂区块链分叉,怎敢自称技术「老司机」

日期: 2018-11-28
撰稿人: 链闻看天下

本文试图从技术角度分析一下,在区块链节点软件升级的过程中会发生什么情况,为什么会     出现分叉,以及出现分叉之后区块链的走向。


作者:胡捷,上海高级金融学院教授、前美联储高级经济学家、长江商学院兼职教授


为什么会分叉?

节点软件承载着共识算法,当部分节点的软件升级到新版之后,由于互相之间的共识算法不完全一致,在面对新挖出的区块时,会按照各自共识算法的要求做出取舍,把自己认为合法的区块纳入主链。于是在区块链网路里就会出现不同的主链,各自被一部分矿工节点所拥护并在其上开挖新块,这就是分叉。


本文只讨论这种由于共识算法差异所产生的分叉,至于因网络传播速度差异等原因导致的分      叉则不在讨论范围内。

不一致的共识算法之间可能存在着一定的兼容性,不同的组合情况决定了分叉最后的归宿。


新旧版本软件之间兼容性的各种情况

以下内容可能会比较拗口,为了方便表达,先定义两个简称——

旧版块:旧版软件挖出的新区块

新版块:新版软件挖出的新区块

看不懂区块链分叉,怎敢自称技术「老司机」

YA:任何版本都会承认版本升级前的历史


YB:任何版本都会承认自己挖出的新区块


YC:旧版软件接受新版块(具有前向兼容性)


ND:旧版软件不接受新版块(不具有前向兼容性)


YE:新版软件接受旧版块NF:新版软件不接受旧版块

注:前向兼容性(forward compatibility)是指当一个软件推出新版本之后,以前的旧版软件仍然能够接受并处理新版软件输出的数据。比如用 Word 2013 保存的文件能够用 Word 2011 打开并继续编辑。


为什么有时候兼容有时候不兼容?

旧版软件对新版块的兼容性(YC/ND)往往是版本升级本身的内容决定的,比如扩容(区块尺寸从 8M 调整为 32M),这时候新版块在旧版软件看来就是非法的(ND);而像升级后禁用某个操作码,这时候新版块在旧版软件看来是合法的(YC)。


新版软件对旧版块的兼容性(YE/NF)有可能是版本升级本身的内容所决定,比如扩容,这时候旧版块在新版软件看来就是合法的(YE);而像升级后禁用某个操作码,这时候旧版块在新版软件看来是非法的(NF)。但 NF 也可能只是一种升级策略上的选择,比如希望强制升级,这一点后文会有论述。


4 种升级场景中不同软件版本所面临的局面

这 4 种场景对比着看,是有对称性的:


S1 和 S4 正好是相反的场景。S1 是两个版本互相接受,一起愉快地玩耍;S4 是两个版本互相不接受,各玩各的。


S2 和 S3 这一对,如果抛开新版 / 旧版之间的传承关系,就当作是甲、乙两个独立的版本来看待,其实是同


一种情形,一个版本单向地接受另一个版本。


设甲接受乙,而乙不接受甲,那么:


◉ 使用甲版本的矿工节点


两个分叉对于他来说都是合法的,他会接受最长链作为自己工作的新起点。


挖出的新区块只能被同类矿工节点(同样使用甲版本)接受。如果网络内同类节点数量(不是算力!)不占优势,则挖出来的新区块无法有效传播,就无效了。


◉ 使用乙版本的矿工节点


两个分叉中只能接受其中一个作为自己工作的起点。所有同类矿工节点只能顽固地坚守在这一个分叉上。


如果网络内同类矿工节点算力占优势,最终会替掉另一叉。


只要自己不放弃,无论如何自己这叉不会消失,已付出的工作量会保持有效。


硬分叉与软分叉的区别

S2 和 S3 同样是产生了分叉,为什么一个软一个硬呢?可以这么理解,正是因为有了「新 / 旧」的对比,才导致了这种区别,旧版软件的前向兼容性是两者的分水岭 [3]。当部分节点升级到新版之后,产生了分叉,分叉的软和硬是站在旧版节点的立场上来说的。


S2 场景下,旧版节点会认为两个分叉都是合法的,按照以往的逻辑同等看待两个分叉,哪个长就接受哪个,所以这个分叉是「软」的。

S3 场景下,有一个分叉是不合法的,旧版节点肯定不会接受它,所以这个分叉是「硬」的。

当使用旧版软件的矿工节点面临硬分叉的时候,他就不得不做一个艰难的决定:是坚守自己的版本还是更新到新版本。比如当初 BCH 与 BTC 分道扬镳的时候,一部分矿工选择了坚守在原来那条链上,继续运行 BTC;而另一部分则选择更新到新版本,转而接受另一条链,这意味着进入了一个新的分叉币世界。


当然,硬分叉之后,哪一条链能够继续享有原来的名字,这就不是技术问题了,而是社区的认可(交易所的认可)决定的。比如 BCH 从 BTC 分叉出来的时候,BTC 这个名字被原来的那条链继续享有,分叉出来的就是 BCH;而 BCH 历史上几次重要的硬分叉,都是分叉出来的链沿用 BCH 这个名字,原本的链则被弃用了;BCH 刚刚完成的这次硬分叉,目前看基本结论是吴忌寒阵营 ABC 版本产生的新链能够继续享有 BCH 这个名字,而 CSW 阵营的 BSV 版本则坚守在原链上,反倒沦为分叉币,那个分叉币发展如何还有待观察,但大概率是不会享有 BCH 这个名字了。


两种硬分叉的区别

S3 与 S4 两种场景,站在旧版节点的立场上来说,都是不接受新版块,所以都是硬分叉。但对于新版节点而言,是否能够接受旧版块,结果是不同的。

作为硬分叉的主导者,他的目的是推广新版软件,希望尽快结束过渡期。基于这种诉求,ND+NF (新版软件不接受旧版块)会比 ND+YE (新版软件接受旧版块)更有优势。

NF 还是 YE (新版软件是否接受旧版块)?前面提到,这个事情可能取决于软件升级本身所涉及的内容,但有时候升级所发生的改变并不排斥旧版块(比如扩容),那么是否接受旧版块就可以是一个策略选择。升级(硬分叉)的主导者往往与新版软件的提供者是一体的,他们可以在新版软件中设置对自己有利的安排。


设想一种极端情况,假定吴忌寒希望支持 ABC 团队完成一次硬分叉升级,吴控制的矿池调集了占 BCH 全网 50% 的算力启用了新版软件,其他所有矿工节点暂时停留在旧版软件上。


如果新版软件选择了 YE 方式,吴矿池虽然有 50% 的概率率先挖出新块,但没有人替他传播,只有他自己在这个叉上工作,而其他节点都在挖另一个叉,一旦那个叉长度占优,吴矿池会接受那个叉继续工作,实际上就是把自己前面的工作报废掉了。


为了保证不浪费,就要确保自己的独特叉永远长度占优(保持超过全网 50% 的算力),等待局势发生变化(更多的矿工节点升级到新版)。


而如果新版软件选择 NF 方式,就简单很多了,吴矿池不会接受另一个分叉,一心一意挖自己的叉,其算力占全网算力的比重低一些也不会导致自己这个叉被吃掉,可以更从容地等待变化来临。


所以,从主导者的角度来看,尤其是投入算力支持的主导者,选择 NF 会让升级过程更简单,更干脆,减少变数,避免经济损失。当然,这也是一条不归路,虽然自己在这个叉上投入的工作量会一直保持有效,但如果这个分叉最终被市场抛弃,那么一切投入都会归零。


BCH 在 2018 年 11 月 16 日实施的这次升级包含两项更新:


1)对区块内交易增加规范交易排序(CTOR);


2)增加两个操作码(OP_CHECKDATASIG 和 OP_CHECKDATASIGVERIFY)。


简单分析不难判断,第 1 条是 YC+NF 的,第 2 条是 ND+YE 的,综合下来就是 ND+NF 的,所以这是一次属于 S4 场景的硬分叉。


既然这样,分叉后两条链各行其道,谁也不会「吃掉」谁,为什么还要不惜血本调集大量算力进行这种隔空搏杀呢?我想这里面可能有两个原因:


一个是要争夺 BCH 的冠名权。分叉之后,哪条链才是正宗的 BCH,哪条是分叉币?一般惯例是「最长链」胜出。目前看吴阵营已经达到了预期的目的。(注:这里的最长链指的是最大累积难度,而不是单纯指区块链的高度)


另一个就是「护法」。这次硬分叉的反对方 CSW 来势汹汹,放言要对新链进行攻击。新链初生,江湖地位不稳,所以调集算力进行保护是有必要的。不过截至目前,据称在新链上并未发现明显的被攻击迹象。随着新 BCH 地位稳固,被社区广泛接受,CSW 再要实名发起攻击就要承担更多的社会压力了。


Hot News / 相关推荐
2019 - 04 - 10
点击次数: 0
哈希函数是区块链技术不可或缺的一部分,可用于多种用途。 它是一种数学函数,它接受任何给定长度的输入并产生固定长度的输出。 输出通常称为哈希值,(哈希)摘要或哈希。有很多哈希函数,就像多个在线的“计算器”。 计算器允许您同时使用不同种类的算法对您喜欢的任何输入进行哈希运算。 输入的大小可以从单个数字到整个文件,但输出的大小将始终相同。加密哈希函数必须满足以下一组标准才能在区块链中使用:单向性...
2019 - 04 - 09
点击次数: 0
链商梦想,再次起航。2018年03月25日全球链商节组委会成立,时至今日,链商节已经走过1年多的时间。在这1年里,全球链商节举办了2018年04月08日的全球首届链商节新闻发布会,随后在江西南昌、广东广州、广西南宁、湖北武汉、贵州贵阳等地举办了全球首届链商节,并于2018年06月06日圆满举办全球首届链商节,在区块链行业掀起公益区块链之风。今天,离2019年06月06日时间仅剩两个月,今年的全球第...
2019 - 04 - 09
点击次数: 0
诚信链商,财富梦想。2018年4月8日,全球首届链商节在中国深圳正式启动,后历经江西南昌、广东广州、广西南宁、湖北武汉、贵州贵阳等地的巡演,在全国范围内掀起公益区块链的热潮,因此在6月6日正处风口浪尖的区块链大环境下,全球链商节组委会圆满举办了全球首届链商节,并吸引不少全球政界、商界、互联网、区块链等行业的大咖参加全球首届链商节,并在全球链商节的规范、引领下,与区块链行业有志之士共同推动区块链行业...
2019 - 04 - 04
点击次数: 0
区块链除了应用于比特币等加密货币,还被认为拥有其他广泛的应用潜力,并有助于经济高效、安全地运行。美国政府近年来一直在密切观望区块链技术的发展,并在多个政府部门开展了试点项目和概念证明。2018年,美国联邦政府和各州政府出台了区块链相关立法,美国国会、商务部国家标准与技术研究院(NIST)等部门先后发布了《2018年联合经济报告》、《区块链:背景和政策问题》、《区块链和在政府应用中的适用性》、《区块...
小丽
地址:深圳市龙岗区南湾街道李朗路9号万国城C座6楼
全国服务电话:
400-687-9456  0755-28919456
Copyright ©2018- 2021 沃尔特控股(深圳)有限公司
犀牛云提供企业云服务
扫描浏览手机端