再来简述一下安全硬分叉或称合成分叉的新分叉方案

vatten 副船长 发布在 BTC/比特币
 18214  41
前两天江卓尔提出了安全硬分叉的方案(我觉得称之为合成分叉更贴切),就我这两天在国外几个论坛普及的结果来看,有几个人可以一下就看出这个方案的本质是软分叉+硬分叉两步走,但是懂的人其实不多,连gmaxwell的回复都有点牛头不对马嘴。这表明,即使在国外论坛,绝大多数人甚至连软分叉和硬分叉的区别都搞不清,都是跟在core的宣传后面乱喊,一旦真的涉及分叉的机理了就不行了,更不要说合成分叉了,所以我在这儿再科普一次:

软分叉的升级方式,是实现规则收紧,比如将区块上限从1M改为0.5M。优点就在于未升级的原版矿工所挖出来的1M块会被升级后的多数算力所拒绝,但这些原版矿工不会拒绝新版矿工挖出来的块,因为新链上的块都是0.5M以下的,在原版矿工的规则里都是合法的,这就保证了区块链在整个升级过程中未升级的少数矿工都跟随新链,不会分裂成两条链

硬分叉的升级方式,是实现规则的放宽,比如将区块上限从1M改为2M。问题就在于,少数未升级的矿工会拒绝升级后的矿工挖出来的块(大于1MB),这样他们就会产生自己独立的链,而新版矿工因为算力强,则始终呆在新版的链上(区块有效的前提下,只认最长链),这样区块链就分裂成两条链

但硬分叉的好处是不需要考虑旧节点接受,因为反正是规则放宽,旧节点一定不会接受新的交易和区块,这样就可以重新用简洁明了而逻辑清晰的方式进行扩容或交易格式的改进


搞清这两点后,就可以明白江卓尔提出的合成分叉是如何巧妙结合这两点实施的了:

第一步,矿工在有足够算力支持下,先做一个软分叉,收紧规则:“除了unlimited的块,其余块都不接受”。这是个规则的收紧。因为软分叉不会导致区块链分裂,用这种手法可以将整个网络中所有的矿工都统一到unlimited的版本,继续运行原版软件的矿工一个块都挖不到,所以他们都有较强的动机去升级到unlimited。而此时为了保证原版矿工依然跟随unlimited的链,unlimited只出小于1MB的区块

第二步,当所有矿工都升级到Unlimited以后(用以上手法估计最多一月之内就全部统一了),unlimited开始产生大于1M的区块。这时因为所有矿工都已经升级,不存在运行旧版协议的矿工了,所以矿工是几乎感觉不到任何变化。而运行旧版软件的节点,如果发现大于1M的区块,会拒绝接受,但它们也没有办法在原来的链上交易,因为已经没有任何算力在挖原来的链了,那个链上几个月都不会有一个块。这样对于运行旧版软件的非挖矿节点来说,他们仍可以选择不升级,就相当于关机了,因为旧链上已经不出块了,也无法转账了。如果他们想要做支付,就必须升级到新版。这种提醒原版节点升级的方式甚至比发出通知的办法还要稳妥,没有什么比区块链不出块了无法交易要更能提醒用户升级了

所以说分两步走的合成分叉方式,大大提高了硬分叉的安全性,使得硬分叉几乎不可能产生两条互不兼容的链各自延长,这样既不会分裂区块链,又能实现硬分叉的干净的升级方式,集中了两种分叉方式的优点,是一种极为稳妥的升级方式,无论从哪个方面来看都是低风险高回报的方案

  • 正序
  • 最新
只看帖主 楼层直达
  • 1
  • 2
  • 3
登录 账号发表你的看法,还没有账号?立即免费 注册