接下会发生的事真是另人好奇啊~
这次如果纽约共识的算力硬是要继续挖2X的话
得到的也只是一个没有被评估过价值(输BCH)
区块容量大小也是经过妥协(只有2X,输BCH)
又多了SegWit(输BCH,为什么SegWit对扩容派来说是负担等一下会说明)
唯一的优势只有算力
所以除非SegWit2X能得到Bitcoin这个名字
否则我不认为它会有什么价值
这次Core争取到Bitcoin名字的优势在于,客户端什么都不动的话就是走Core炼
2X争取Bitcoin名字的优势在于算力
虽然ETH和ETC的分裂,是HF端得到原来的名字
但那是开发中心和算力端方向一致
而这次不太一样
虽然很多人都说最长炼就是比特币
但其实那是在讲同样共识下,算出不同炼的情况
而且Core感觉跟整个业界关系很好
整个比特币业界的风向才是最重要的
所以鹿死谁手还很难说
再来说为什么SegWit对扩容派来说是负担
因为Core是用软分叉的方式实作SegWit
我后来终于渐渐明了为什么他们坚决用软分叉了
因为软分叉启动后,不升级的客户端还是可以跑得好好的
他们可以借此来继续拥有Bitcoin的名字
一个软分叉一个硬分叉同时发生,软分叉对客户端来说就是有优势
想像如果有两个远端升级,一个升级后你什么都不动可以继续用
一个升级后你还要换软件才能继续用,你会觉得那一个才是原版的?
就是因为这样Core才坚决用SF的方式实作SegWit
然而以软件工程的角度来看,做出SegWit功能又硬要向下相容
所以只能用延伸出来的资料结构
延伸出来的资料为了要能反映进原来的资料结构中
就将它的hash塞到原本矿工填写讯息的coinbase transaction中
这样的话旧结点仍然会接受新区块,但不知道己经有新的延伸资料了
其实SegWit并不是一件小工程
我之前就提到,Core自己也承认为了SegWit几乎改了每一行程式码
程式留下技术债的后果就是容易出现BUG
尤其当为了向下相容而写的程式码到处分布的话,那才是最恐怖的
常常在增加或修改功能时,很容易因为Bad Design踩到地雷
所以你常常光留意是否踩到地雷,或修地雷就了花一堆时间
生产速度一直赶不上修地雷的速度,就像负债一样
(还是说这也是他们的目的之一?让CODE以后只有他们改得动XDD)
SegWit最重要的目的就是修正交易延展性的问题
其实如果要把签名见证部分另外找地方存
那最直觉当然就是直接修改格式
相对于还要另外考虑相容旧格式的实作
直接改成新的资料结构一定简单且直觉许多
但就是会成为一种硬分叉,因为客户端必定要更新才能跑
交易延展性就是TX ID没办法固定,会被偷改的一个特性
修正交易延展性主要目的是要简化Lighting Network实作的复杂性
而扩容派根本没有LN的计划,为什么要有一个把程式架构搞烂
对他来说又没什么用的SegWit功能在程式中...
当初会上SegWit就是一种妥协而已
除了降低LN的复杂度,交易延展性并不是那么急着要修正的东西
以前MtGox被用这个特性骗过币,但现在大家都知道有这个特性了
在处理异常交易情况时就会特别注意
不太有可能会再被骗了,去改TX ID顶多制造交易所的困扰
当然交易延展性最好还是要修正
所以扩容派早就有HF的实作叫FlexTrans在测试网络上跑了
比起硬是以软分方式实作出来的SegWit
FlexTrans不管是程式面还是功能面都好很多