网赚论坛
标题:
以太创始人VitalikButerin谈 硬分叉 软分叉
[打印本页]
作者:
zbu66891mlk
时间:
2018-2-2 15:22
标题:
以太创始人VitalikButerin谈 硬分叉 软分叉
硬叉,软叉,默认值和强制
2017年3月14日
区块链空间中的一个重要论点是硬叉或软叉是否是首选协议升级机制。两者之间的基本区别是软叉通过严格地减少有效的事务集合来改变协议的规则,因此遵循旧规则的节点将仍然在新链上(假定大多数矿工/验证器实现fork),而硬分叉允许先前无效的事务和块变得有效,因此客户端必须升级它们的客户端以便停留在hard-forked链上。还有两种子类型的硬分叉:严格扩展硬分叉,这严格扩展有效的事务集合,因此有效地旧规则是相对于新规则的软分叉,
通常引用的两个优点如下。
硬分叉允许开发人员在进行协议升级时有更大的灵活性,因为他们不必注意确保新规则“适合”旧规则
软叉对用户更方便,因为用户不需要升级就可以停留在链上
软叉不太可能导致链条分裂
软叉只有真正需要矿工/验证器的同意(即使用户仍然使用旧的规则,如果节点使链使用新的规则,那么只有在新规则下有效的东西将进入链中); 硬叉需要用户选择同意
除此之外,硬叉的一个主要批评是硬叉是“强制的”。这里所指的强制不是物理力量; 相反,它是通过网络效应的强制。也就是说,如果网络将规则从A更改为B,则即使您个人喜欢A,如果大多数其他用户喜欢B并切换到B,那么您必须切换到B,尽管您个人不同意该更改才能启用与其他人一样的网络。
硬叉的支持者通常被嘲笑为试图实现对网络的“敌对接管”,并且“强迫”用户与它们一起。此外,链分裂的风险通常用于将硬叉子票据称为“不安全”。
我的个人观点是,这些批评是错误的,而且在许多情况下完全倒退。这个观点不是特定于以太坊,或比特币,或任何其他区块链; 它源于这些系统的一般性质,并且适用于它们中的任何一个。此外,下面的论点只适用于有争议的变化,其中至少有一个选区(矿工/验证者和用户)的大部分不赞成; 如果改变是非争用的,则它通常可以安全地完成,不管叉的格式如何。
首先,让我们讨论胁迫的问题。硬分叉和软分叉都以某些用户可能不喜欢的方式改变协议; 任何协议更改将做到这一点,如果它具有不到100%的支持。此外,几乎不可避免的是,在任何情况下,至少一些异议者重视保持与更大的组的网络效应,而不是他们重视其关于协议规则的自己的偏好。因此,两种类型的叉都是强制的,在网络效应意义上的词。
然而,硬叉和软叉之间存在本质区别:硬叉是可选的,而软叉允许用户根本不“选择”。为了使用户加入硬分叉链,他们必须亲自安装实现分支规则的软件包,并且不同意规则的用户集合比它们的价值网络效应更强烈地变化理论上可以简单地停留在旧链 - 而且,实际上,这样的事件已经发生。
这在严格扩大硬叉和双侧硬叉的情况下是正确的。然而,在软叉的情况下,如果叉成功,则不存在解开的链。因此,软叉显然在体制上偏向强制分离,而硬叉则有相反的偏见。我自己的道德观点导致我支持分裂对强制,虽然其他人可能不同(最常见的论据是,网络效应真的非常重要,它是必不可少的“ 一个硬币统治全部 ”,虽然更温和的版本这也存在)。
如果我不得不猜测为什么,尽管这些论据,软叉通常被称为“少强制”比硬叉,我会说,这是因为它感觉像一个硬叉“强制”用户安装软件更新,而与软叉用户不“有”做任何事情。然而,这种直觉是错误的:重要的不是个体用户是否必须执行简单的官僚步骤点击“下载”按钮,而是用户是否被强制接受协议规则的变化,他们将而不是接受。而且通过这个指标,如上所述,两种类型的叉子最终都是强制的,而且出现的硬叉子在保持用户自由方面稍微好一些。
现在,让我们来看看极具争议的叉子,特别是那些矿工/验证器偏好和用户偏好冲突的叉子。这里有三种情况:(i)双侧硬叉,(ii)严格扩大硬叉,和(iii)所谓的“用户激活的软叉”(UASF)。第四类是矿工在没有用户同意的情况下激活软叉; 我们将在后面讨论。
首先,双侧硬叉。在最好的情况下,情况很简单。两种硬币在市场上交易,交易者决定两者的相对价值。从ETC / ETH案例,我们有绝大多数证据表明,矿工绝对有可能根据价格比率将它们的哈希值简单地分配给硬币,以最大化他们的利润,而不考虑他们自己的意识形态观点。
即使一些矿工将意识形态偏好倾向于一方或另一方,那么极有可能会有足够的矿工愿意套用价格比和散热能力比之间的任何不匹配,并使两者一致。如果一个卡特尔的矿工试图形成一个链上不开采,有过度的激励缺陷。
这里有两个边缘情况。第一个是可能性,由于低效的难度调整算法,开采硬币的价值下降,因为价格下降,但困难不下降,以补偿,使采矿非常不赚钱,没有矿工愿意在一个损失继续推动链向前,直到它的困难恢复平衡。这不是以太坊的情况,但可能是比特币的情况。因此,少数群体链很可能永远不会离开地面,因此它会死亡。注意,这是否是好事的规范性问题取决于你对强制与分裂的看法;
第二种情况是,如果差异非常大,大链可以51%攻击较小的链。即使在ETH / ETC分流比为10:1的情况下,也没有发生; 所以它肯定不是一个给定。然而,如果矿业开发商更喜欢强制允许分离,并对这些价值采取行动,那么矿产商总是有可能的。
接下来,让我们看看严格扩大硬盘。在SEHF中,存在非分叉链在分叉规则下有效的属性,因此如果叉具有比非分叉链更低的价格,则它将具有比非分叉链更少的散列大小,以及因此非分叉链将最终被原始客户端和分叉客户端规则接受为最长链,因此分支链“ 将被湮没 ”。
有一个论点认为,这样的叉子成功是有强烈的固有偏见,因为分叉链将被湮没的可能性将被抛在价格中,推动价格降低,使得链更可能湮没...这个论点对我来说似乎很强,所以它是一个很好的理由,使任何有争议的硬叉双面,而不是严格扩大。
比特币无限制开发人员建议通过在发生硬盘叉之后手动双硬盘来处理这个问题,但更好的选择是使内置的双边; 例如,在比特币的情况下,可以添加规则以禁止一些未使用的操作码,然后在非分叉链上进行包含该操作码的事务,使得在分叉规则下,非分叉链将从那时起认为永远无效。在以太坊的情况下,由于关于状态计算如何工作的各种细节,几乎所有硬叉几乎是自动的。根据其结构,其他链可以具有不同的属性。
上面提到的最后一种类型的叉是用户激活的软叉。在UASF中,用户打开软叉规则而不打扰获得矿工的共识; 矿业公司预计只会落入经济利益之外。如果许多用户不随着UASF去,然后会有一个硬币分裂,而这将导致一个场景完全相同严格扩张硬叉,除了-这是概念的真正聪明和狡猾的一部分- 的在严格扩张的硬叉中强烈地不利于叉形链的相同的“湮灭风险”,而强烈地偏向UASF中的叉形链。即使UASF是选择加入,它使用经济不对称,以便偏向成功(虽然偏见不是绝对的;
然而,UASFs是一个危险的游戏。例如,假设项目的开发人员想要创建一个UASF补丁,该补丁将以前接受所有事务的未使用操作码转换为只接受符合一些新功能的规则的事务的操作码,政治或技术上有争议,矿工不喜欢。矿工有一个聪明和狡猾的方式来反击:他们可以单方面实施一个矿工激活软叉,使所有交易使用由软叉创建的功能总是失败。
现在,我们有三个规则集:
原始规则,其中操作码X总是有效的。
操作码X仅在事务的其余部分符合新规则时有效的规则
操作码X总是无效的规则。
注意,(2)是关于(1)的软叉,(3)是关于(2)的软叉。现在,有利于(3)的强大的经济压力,因此软叉不能实现其目标。
结论是这样的。软叉是一个危险的游戏,如果他们有争议,矿工开始反击,他们变得更加危险。严格扩张硬叉也是一个危险的游戏。矿工激活的软叉是强制的; 用户激活的软叉不那么强制,尽管由于经济压力仍然是强制的,并且它们也具有它们的危险。如果你真的想做一个有争议的变化,并决定这样做的高社会成本是值得的,只是做一个干净的双边硬分叉,花一些时间添加一些适当的重放保护,让市场排序。
欢迎光临 网赚论坛 (http://www.caifuba.net/)
Powered by Discuz! X3.1