产业气象站|这几种软分叉方式,你选择?,比特币要纳入Taproot升级( 二 )


【产业气象站|这几种软分叉方式,你选择?,比特币要纳入Taproot升级】BIP9背后的主要思想是 , 假设用户进行了升级 , 矿工们就无法阻止软分叉 , 因此无法利用这种投票权来谋取利益 。 他们可以加快激活速度并帮助协调顺利的协议升级 , 但是即使他们自己不激活升级 , 升级也最终会发生 。
BIP8的最新草案 , 包含了一些显著的变化 。 首先 , 当信号期即将到期时 , BIP8允许为节点配置两种不同的策略:如前两段所述 , 强制激活 , 或者像BIP9一样不强制激活 。 此外 , 节点(如果这样配置的话)实际上并没有激活升级本身 , 而是为升级发出信号 。 而不表示支持升级的区块 , 将被拒绝 。 这两个变化的结合有一个有趣的特性 , 即如果比特币算力的大部分都被迫发出信号支持升级 , 即使没有配置为强制执行信号的BIP8节点也将随升级一起进行 。
反对BIP8及其强制信号(或自动激活)的一个论点是 , 它可能会有风险 , 尤其是在较短的时间内 。 如果算力占多数 , 且至少有部分用户不升级 , 则该方案会造成升级节点网络和未升级节点网络分裂 。 假设大多数用户支持升级 , 这可能最终会有利于网络的升级部分 。 但在此期间 , 未升级的用户将面临资金损失的风险 , 而未升级的矿工将浪费掉算力 , 从而有损比特币的安全性 。
最好的办法是提供足够的时间进行升级 。 不幸的是 , 每个人对时间的长度看法是不同的 , 一些人认为强制信号可能在一年内开始 , 另一些人则认为需要几年时间 。
BIP8存在的另一个复杂问题是 , 设置强制信号的默认值 。 如果在默认情况下关闭强制信号 , 用户可能会发现自己不协调 , 从而增加网络分裂的风险 。 另一方面 , 如果在BitcoinCore客户端中 , 强制信号被选为默认设置 , 则历史上广泛采用的BitcoinCore实际上就保证了升级将会发生 。 一些人认为 , 这会使BitcoinCore开发者对比特币的协议规则产生太大的影响 。 出于这个原因 , BIP8的合著者Luke-jr倾向于通过特殊的客户端专门部署带有强制信号的BIP8 , 类似于BIP148客户端 。
另一些人则认为 , BitcoinCore开发者始终会根据自己的最佳判断发布软件 , 同时牢记用户需求并避免有争议的升级 , 设置BIP8默认值也不例外 。 如果有人不同意BitcoinCore开发人员的最终选择 , 他们可选择不升级到新版本 , 甚至分叉BitcoinCore代码 , 以推出竞争版客户端 。
现代软分叉激活
虽然BitcoinCore开发者确实会考虑用户需求 , 并尝试避免有争议的升级 , 但并不是所有人都相信这是可能的 。 也许在这次发布之后 , 会出现全新的问题 。 或者 , BitcoinCore开发者可能遗漏了一些东西 。
这就是为什么BitcoinCore贡献者MattCorallo提出了一项被称为“现代软分叉激活”策略的原因 。 现代软分叉激活包括三个步骤 , 它基本上实现了BIP9(或没有强制信号的BIP8)和带有截止日激活的BIP8的组合(尽管强制信号可能是一种选择) 。
作为第一步 , BIP9将允许矿工通过算力激活软分叉 。 如果矿工们在一年内没有激活它 , 第一个激活窗口就会过期 。 然后 , 作为第二步 , 开发者们需要一些时间来分析激活失败的原因 , 如果他们确实发现了问题 , 就重新考虑这个提议 。 但是 , 如果他们发现方案没有问题 , 则第三步是重新部署软分叉 , 这一次使用BIP8和flagday激活:矿工们有另一次机会用算力激活方案 , 但如果他们再次失败 , 软分叉将在第二个信号周期结束时激活 。 (BitcoinCore贡献者AJTowns表示 , 在第二个信号周期内 , 算力激活阈值也可能随着时间的推移逐渐降低)
Corallo相信 , 如果提议没有错的话 , 这种方案将提供BIP9的好处 , 而不会带来负面影响 。 如果矿工愿意 , 他们可以协调一次平稳的升级 , 并且没有强制激活 , 如果激活最初失败 , 开发者可以花时间重新考虑提议 。 同时 , 由于没有充分的理由 , 矿工从阻止升级中获得的收益要少得多 , 因为众所周知 , 升级最终仍将继续进行 。