区块广播:

【彻底终结软硬分叉之争】安全硬分叉就是软分叉扩容

江卓尔版主发布在 BTC/比特币
 27636  113


作者:莱比特矿池 江卓尔
利益相关:BTC/LTC矿池+矿工+屯币者

扩容之争发展到现在,已经变成了一个其乱无比的毛线团,各派的意见和利益缠绕在一起,让人难以看清事件的本质。本文的目的,是将软硬分叉之争这条和扩容无关的支线彻底剔除出扩容之争,还扩容之争以本来面目。


简单地说,扩容是目的,软硬分叉是手段,扩容并不一定要通过硬分叉来完成,完全可以通过软分叉的方法来完成扩容,反对硬分叉≠反对扩容
不信?软分叉也能扩容?被Core灌输了太久“扩容=硬分叉=币分裂=危险”?让我们来看看软硬分叉的本质。
简单地说,旧节点是否接受新区块,是软硬分叉的本质不同。软分叉因为规则范围是缩小的,所以旧节点自然会接受新区块。

但这个定义是不完备的,定义里并没有讨论规则以外的变化,例如Core开发组在隔离见证(SW)分叉中,将交易的签名数据从原有区块数据结构中取出,放在一个新的,旧节点读不到的数据结构中。简单说就是在规则外,放了一些旧节点读不到的数据,那这个分叉还是软分叉吗?按目前业内态度和Core定义,这也是软分叉——因为旧节点被欺骗接受了新区块。

然后再看硬分叉,eth在DAO被盗事件后,硬分叉失败,分出了两个币,导致很多人变成对硬分叉畏之如虎,甚至开始称赞Core的“高明远见”,还真是让人有点哭笑不得。

eth硬分叉失败,很大程度上是因为分叉执行上的失误——没有考虑对小分叉的处理。eth在争议中决定分叉,先是决定软分叉,之后因软分叉的复杂性(最后被发现有BUG),在最后几天仓促转用硬分叉。eth社区也不像BTC社区这样成熟,以至于根本就没考虑对小分叉的处理。

一开始eth硬分叉看似一切顺利,原链也几乎没剩下多少算力,但之后Poloniex交易所出人意料地上线原链(etc币),原链支持者和投机资金大量涌入,抬高了etc价格,并进而吸引矿工回来挖收益更高的etc,最终导致小分叉原链有足够的算力继续生存,eth硬分叉失败。

那正确的硬分叉姿势应该是怎样呢?
基于实施”很简单,早在7月4日我就发过一篇文章《呼吁蚁池承诺作废25%以下分叉,维护比特币统一》,建议对小分叉发起51%攻击(不打包任何交易,并孤立作废任何含有交易的区块),确保小分叉上无法进行任何交易,从而杀死小分叉

基于实施的优点是不需要在代码上做改动,缺点是人为实施可能存在变数。基于实施在eth硬分叉发生前是可行的,但eth硬分叉失败后,可以预测如果BTC硬分叉,必然会出现大量投机分子在算力和价格上支持原链,给人为实施增加更大的变数,因此从目前情况看,“基于代码”显得更为稳妥。
非技术人员可能看得不是很懂,我详细解释一下伪装法:① 假设原来的区块交易数据是放在房间A(1M大小)里的,节点下载区块后,去房间A获取交易。
② 伪装法的新版客户端,另新加了一个旧客户端看不到的房间B(2M大小),把所有的交易都移到房间B放。
③ 升级后,还是一条链,没有出现新链旧链分叉的问题。
④ 新客户端可以正常地从房间B取交易。旧客户端能正常同步,但下载区块后,按规则去房间A取交易,发现房间A没有任何交易。
⑤ 也就是说,旧客户端如果不升级的话,看到的所有区块都将是空块,由此迫使旧客户端必须升级。

安全硬分叉可以保证在75%算力分叉后,彻底杀死小分叉。当然这时候肯定有人会表示抗议:“你凭什么杀死小分叉?既然有人支持,为什么不放小分叉一条生路,让他自己发展?”“你这是多数派裹挟少数派,是邪恶的!是不正义的!”。

嗯嗯多数派裹挟少数派这个帽子太大,讨论起来又得一篇文章,我们就说实际情况:软分叉之所以“安全”,靠的就是多数派裹挟少数派

大家都知道软分叉有个激活阀值,比如90%算力激活,那激活后剩下的10%算力会发生什么呢?举例说从1M缩容到0.5M的软分叉,90%算力挖出的0.5M块会被10%算力接受,10%算力会在90%算力挖出的块链上继续挖。但反过来,10%算力挖出的1M块会被90%算力认为是无效块(规则范围缩小到0.5M),10%算力挖出的任何块都会被孤立作废,这在技术和本质上都是90%算力对10%算力发起的攻击

因此,指责多数派裹挟少数派么?那比特币不要进行任何升级好了。进一步从逻辑上来说,任何规则改变(不管是规则范围扩大还是缩小),都不可能有100%一致,是选分裂成两条链的硬分叉呢?还是选裹挟少数派的软分叉呢?:)

更有意思的是,安全硬分叉和软分叉之所以在裹挟少数派上完全一致,是因为安全硬分叉从定义上来说,和软分叉完全一致,安全硬分叉就是软分叉
准确地说,安全硬分叉是硬分叉和软分叉的一个交集,既有软分叉不分裂的优点,又有硬分叉不留技术债务,彻底升级的优点。

众所周知向前兼容是有代价的,所有网页开发者都痛恨的IE6就是一个典型的例子。软分叉要向前兼容,甚至像Core的隔离见证(SW)软分叉那样,靠欺骗旧节点来完成向前兼容,存在着巨大的技术风险。
对非技术人士打个不是很准确的比方,Core要在底层数据结构已经改变的情况下,还欺骗旧节点,让旧节点看起来好像一切都没变,其难度相当于造出图上那只扭曲的手,其技术风险,和以后将背上的技术债务不言而喻,以后要在这只扭曲的手上做进一步开发,难度可想而知。

为什么Core开发会说“隔离见证软分叉几乎修改了比特币的每一行代码”?
为什么根据香港圆桌会议,应该在2016年4月发布,7月上线的隔离见证软分叉,在共识协议和矿工矿池的巨大压力下,到现在10月份还没影?
因为Core试图造出的,是图上那样一只扭曲的手。

而安全硬分叉就完全没有这样的技术风险,既不会导致分裂成两条链,又督促所有旧节点都必须升级(不升级无法进行任何交易),不必背上向前兼容的技术债务

因此,让我们扩容归扩容,软硬分叉归软硬分叉。同意扩容但担心分裂的话,完全可以用软分叉(安全硬分叉)来完成扩容。不同意扩容的话,也可以集中讨论扩容到底有什么利弊,而不是“我反对硬分叉,所以我反对扩容”。

扩容&牛市系列文章:

【基础科普】比特币能承载全人类的交易吗?
也谈4000元才是比特币牛市的开端

打赏信息
打赏者(7
打赏数量(+95
打赏理由
打赏时间
gowithbtc
+10
很给力!
2016-10-15 20:32:03
nodouble
+5
用打赏区间最大值挺你!
2016-10-15 20:37:30
查理
+5
 
2016-10-15 20:56:49
haron
+10
用打赏区间最大值挺你!
2016-10-15 21:52:47
jb9802
+5
 
2016-10-15 22:36:02
  • 1
  • 2
  • 正序
  • 最新
只看帖主楼层直达
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 8
前往
登录 账号发表你的看法,还没有账号?立即免费 注册