NFT:软分叉,硬分叉,默认性和强制性_WEB

作者:VitalikButerin

原标题:《HardForks,SoftForks,DefaultsandCoercion》

发表时间:2017年3月14日

在区块链的相关话题讨论中,有一个非常重要的讨论是关于:在协议升级机制中,是首选软分叉好还是硬分叉好。软分叉和硬分叉的一个基本区别在于,软分叉通过严格地减少有效的交易数目来改变协议的规则,所以遵循旧协议规则的节点们依然可以保留在新的链条上,而硬分叉则是说允许先前无效的交易和区块使他们变得有效,所以用户们必须升级他们的客户端,这样他们才可以留在硬分叉后的新的链条上。在硬分叉中,有两种子类型的硬分叉:1.完全扩展硬分叉,其完全地拓展有效的交易集,并且因此旧规则能够有效地兼容新规则,2.双向硬分叉,并且其中的两个规则集均不兼容。

这里用一张维恩图来说明分叉的类型:

通常引用的两个优点如下所示:

硬分叉会使得开发人员在进行协议升级时会更具有灵活性,因为他们不需要额外考虑这个新的规则是否适合旧的规则。

新加坡金管局和BIS等探索使用DeFi批发型CBDC跨境交易和结算:金色财经报道,瑞士国家银行、法兰西银行、新加坡金融管理局和国际清算银行创新中心探索使用DeFi(去中心化金融)协议的批发型央行数字货币的跨境交易和结算。[2022/11/2 12:09:36]

软分叉对用户而言更加方便,因为用户们不需要额外的升级就可以继续保持在新的链条上。

软分叉不太可能会导致链条分裂。

软分叉在真正意义上来说,只需要得到矿工们/验证器们的同意。而硬分叉则需要用户选择同意。

除此之外,硬分叉的主要批评点在于,硬分叉都是“强制性”的。这里所指的强制性不是指得物理的力量,相反,她是网络效应的一种强制性。也就是说,如果网络将规则从A改到了B,那么即便你个人更偏向于A,如果大多数用户都喜欢B并且切换成了B,那么即便你个人不喜欢B,也不赞同切换成B,但是为了能够和其他人同步留在同一个网络上,你也必须切换成B。

硬分叉的支持者们通常被嘲笑为:试图对网络产生“恶意接管”的影响,并且“强迫”用户们与他们一起并行。此外,链条分裂的风险通常在于硬分叉是不安全的。

声音 | 最高法副院长:探索利用区块链提高案件事实查明精准度的方法:今日最高人民法院召开新闻发布会,对外通报《最高人民法院关于修改的决定》,对原《民事证据规定》的内容进行修改、完善和补充。最高法有关负责人表示,近年来,随着信息化的推进,人们的行为方式逐步从“线下”向“线上”转变,诉讼中的证据越来越多地以电子数据的形式呈现。特别是大数据、云计算、区块链等新技术的迅猛发展,给民事证据规则的适用提供了新的视野,也带来了新的挑战。最高人民法院副院长江必新表示,各级人民法院要密切关注新的信息技术对民事审判工作的影响,加强对电子数据规则适用的研究,积极探索利用区块链技术提高案件事实查明精准度的方式、方法,以新的技术进步为契机,不断提高民事审判的能力和水平。(央视新闻客户端)[2019/12/26]

我个人观点是,这些批评指正是错误的。并且在许多情境下,这些情况往往是背道而驰的。这个观点并不是特定针对以太坊,或者是比特币,或者是其他的区块链;它源于这些系统的一般特性,并且适用于它们中的任何一个。此外,下面的论点只适用于有争议的改变,其中至少有一个选区有大部分不赞成;如果改变这件事情不是非常有争议性的话,那么它可以非常安全地完成,不管这个分叉的形式是怎么样。

声音 | 阿里云总裁:阿里云在探索区块链技术应用场景:新浪科技消息,在第五届世界互联网大会上,阿里云宣布将设立合作伙伴成长计划,用于支持supET平台的生态建设。阿里云总裁胡晓明表示,在合作伙伴的共同努力下,supET平台的开放生态一定会越来越繁荣,supET平台一定会成为助力制造业转型升级的重要引擎。他还透露,阿里云还在探索区块链技术在工业设备认证、产品质量追溯和供应链管理服务三大类场景上的应用。[2018/11/9]

首先,让我们讨论强制性的问题。无论是软分叉还是硬分叉,都多多少少改变了协议的方式,使得部分用户不喜欢。尤其是当这个协议得不到100%支持的时候,改变这个协议会让一部分的用户不喜欢。此外,几乎不可避免的是,在任何情况下,异议者们更加重视与大部分人群保持同步的网络效应,这超过了他们对于协议上自己的偏好。因此,在网络效应这个意义上来说,两种分叉都是强制性的。

然而,软分叉和硬分叉之间存在着本质性的区别:硬分叉是选择性加入,而软分叉则让用户无路可选。为了方便一个用户来加入一个硬分叉的链条,他们必须亲自安装软件包来实现分叉规则,并且不同意规则改变的用户群体们的反应,比他们重视的网络效应还要强烈,理论上他们可以停留在旧的链条上-而且,实际上,这样的事情已经发生了。

青岛市北区将试点探索区块链政务应用:5月15日,青岛链湾双清区块链应用论坛在青岛中联自由港湾区块链大厦召开。据清华大学互联网产业研究院副院长王晓辉介绍,市北区将试点探索区块链政务应用。业务“上链”后,市民可“零跑腿”和“无纸化”办理,政府可实现各职能部门的数据互享互用。另外,系统将自动为当事人建立信用和资料档案,为信用社会提供依据。[2018/5/16]

这在完全扩展硬分叉和双向硬分叉的情况下都是适用的。然而,在软分叉的情况下,如果分叉成功,那么没有分叉的链条就不存在了。因此,软分叉显然在体制上更偏向于强制而非分离,而硬分叉则有相反的倾向。我个人的道德观念使得我更支持分离而不是强制,虽然其他人可能不这么认为。

如果我不得不猜测原因的话,尽管我刚刚说了这些依据,软分叉与硬分叉相比,依旧被列为“更少强制性”的选择,我会认为说,可能硬分叉给用户的感觉是,硬分叉“强制”用户们安装软件更新,而在软分叉的情况下,用户们什么都可以不用干。然而,我不得不说,这种直觉是错误的。重要的并不是个体用户是否必须执行简单的官僚步骤点击“下载”按钮,而在于用户们是否被强制要求接受一个协议的变化,即使他们根本是不想接受的。并且通过这个指标,如上所示,这两种类型的分叉最终都是强制性的,并且硬分叉在给予用户自由的这一方便还是稍微比软分叉要好的。

对话李东荣:区块链是好技术,在金融领域应用仍需探索:博鳌亚洲论坛2018年年会”于4月8-11日在海南博鳌举行,在分论坛“金融的未来:改变,还是被改变 ”上,中国互联网协会会长李东荣针他表示区块链是一个很好的技术,在金融领域肯定有它应用的场景,而且也在做这个尝试。但毕竟一个新东西出来,如何选择跟它适用的场景,目前还在研究、探索和逐步推广的阶段。也有一些实践证明在一些小的场景下做得还是不错的。[2018/4/11]

现在,让我们来看看极具争议的分叉,特别是那些矿工们/验证器喜好和用户喜好相冲突的分叉。这里有三种情况:(i)双向硬分叉(ii)完全扩展硬分叉,(iii)所谓的“用户激活软叉”,第四类是矿工在没有用户同意的情况下激活软分叉。晚一点我们会在后文提到它。

首先,我来讲讲双向硬分叉。在最为理想的情况下,这个情景就非常简单了。两个币在市场上进行交易,交易者决定两个币的相对价值。从ETH/ETC的案例中,我们有着绝大多数的证据表明,矿工们绝大多数都喜欢根据价格的比率来分配他们的算力给到币,以最大化他们的利润和收益,而不会考虑他们的历史形态观点来决定他们的算力分配问题。

即使一些矿工将意识形态偏好倾向于一方或另一方,那么极有可能会有足够的矿工愿意在价格比率和哈希算力之间的不匹配来套利,并且使价格比率和哈希算力形成一致。如果一系列矿工想要联合起来在这个链条上不进行挖矿,那么这个激励就会存在过度缺陷的问题。

这里有两个边缘位置的情况。第一个可能性是:由于低效的难度调整算法,挖矿的价值下降因为币的价值下降,但是挖矿的难度却并不会因此下降。这就会使得挖矿非常的不赚钱也不划算。没有一个矿工会在亏算不盈利的情况下继续推动链条往前走,直到它的困难恢复平衡。这不是以太坊的情况,但这及其可能是比特币的情况。因此,少数算力链很可能永远不会离开地面,因而它会死亡。请注意,这是不是一件好事,答案取决于你对强制和分裂的看法。从我上面写的个人观点来看,我认为这样的少数算力链敌对难度调整算法不是一件好事。

第二种边缘情况是,如果差异非常巨大,大算力的链条可以对小算力的链条发动51%的攻击。但即使是ETH/ETC分流比例在10:1,这种攻击情况也没有发生。所以这肯定不是一个确定的答案。然而,如果矿工在主导的链条上更喜欢强制性并且允许偏离分裂,那么这些矿工们总会有办法达到的。

接下来,我们来看看完全扩展硬分叉。在SEHF中,存在非分叉链条在分叉规则下有效的属性,因此如果分叉链具有比非分叉链更低的价格,那么分叉链的算力值会比非分叉链的算力值要更低,正因如此,非分叉链条最终会被原始客户端和分叉客户端所接受成为最长链。那么渐渐的,分叉链会被“淹没”。

有一个论点是这样认为的,这样的分叉成功是有强烈的故有偏见的,因为分叉链会被淹没被抛在价格中,使得币的价格更低,这使得分叉链被淹没的可能性更大。这个论点对我来说还是非常有道理的,所以这是一个很好的理由来进行双向硬分叉而不是一味地扩展。

比特币非常多的开发者们建议,在硬分叉发生后来手动进行双向硬分叉来解决这个问题。但是更好的选择是,使用内置的双向硬分叉。例如,在比特币的情况下来举例,你可以添加一些规则来禁止一些未使用的操作码,然后在没有分叉的链上进行包含了这个操作码的交易,所以在分叉的规则下,没有分叉的链在这个时候起,会永远的无效。在以太坊的案例中,关于计算状态如何工作的各种细节来看,几乎所有双向硬分叉都是自动的。根据不同基础架构,其他链条也会有不同的属性。

上面提到的最后一种类型的分叉是用户激活软分叉。在UASF中,用户可直接激活软分叉规则,而无需考虑是不是得到矿工们的共识;矿工们可能会被排挤在经济利益之外。如果有非常多的用户不跟随这个UASF,那么这个币就会被分割开,这将导致一个与完全扩展硬分叉情景相同的情况。即使UASF是选择性的,它也使用了经济的不对称性来使自己更偏向于成功。

然而,用户激活软分叉是一个危险的游戏。例如,我们来假设一个项目的开发人员想要创建一个UASF补丁,该补丁将以前接受所有交易的未使用操作码转换为只接受符合一些新功能的规则的交易操作码,这无论在上还是技术上都会有所争议,矿工都不太会会喜欢这个功能。矿工们有一个聪明又狡猾的方式来对抗这种情况:他们可以单方面地实施一个矿工激活软分叉,能够让使用了软分叉创建的功能总是会失败。

现在,我们有三种规则:

操作码X始终有效的原始规则。

操作码X只有在其他交易符合新规则时才有效。

操作码X始终无效的规则。

请注意,第2点是关于第1点的软分叉,第3点是关于第2点的软分叉。现在,第3点上有强烈的经济压力,因此软分叉并不能实现它的目标。

因此,我的结论是这样的:软分叉是一个危险的游戏,尤其是在它们是有争议的情况下,矿工们开始进行反击,这个游戏将会越来越危险。完全扩展硬分叉也是一个危险的游戏。矿工激活软分叉是强制性的,用户激活软分叉就没有那么的强制性了,但是由于经济上的压力的形成,用户自己选择激活软分叉多多少少还是有强制性在里面,这也具有一定的危险性。如果你真的想进行一个具有争议性的改变,并且坚持认为自己这样做付出的社会代价是值得的,那么你就做一个干净纯粹的双向硬分叉吧,花些时间添加一些重放攻击保护,然后让市场这个无形的手帮助你理清楚。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-3:718ms