稍微谈一下softfork和hardfork的差异,以及两者分别的优劣
先打预防针这篇纯粹谈论客观中性的知识
如果我还是会因此被抨击,那... okay I'm fine
softfork和harkfork是有一个简单客观明确的差别,即:
a) softfork只能让目前的规范同等严格、或是变得更严格,比如说blocksize 1mb的
限制只能维持、或是变得更小、或是在不触及这个条件的范围内去实作其他技术。
打个比喻来说,一条主要干道的基本长宽不去变更,而是透过变更道路规划、号志
与转弯专用道等"软"方式来改善交通,好处是干道上依附的店家不用打掉重练。
而Harkfork可以改动硬限制,可以让目前的规范放宽,可以打掉整条干道去重新做
都市规划。
我相信这个比喻并没有贬低hardfork,如果有需要的时候,BTC也可能迎来hardfork。
b) softfork因为对于硬限制不改动,因此对于旧版本会有比较完整的向下相容,
hardfork的假设则是使用者都会更新到最新版本,否则不能相容新的硬规定。
但是对于旧版本的支援,就会造成共存版本的碎片化,也就是BTC有各种不同地址格式
的问题,旧版本一样不支援新的softfork的好处,旧版本一样会因为太旧而有安全性
的疑虑。
而hardfork如果有意识地维护到前后版本的衔接性,也不见得会有不相容的问题。
也就是如果街道不打掉的话,街边老店比较容易存续,街道整个打掉的话,如果规划
得好,老店可能受到的影响不太大。
缺点就是如果规划没有很好,老店的影响就比较大。
而hardfork如果不是基于共识,如果不是整个街道的人同意原地打掉重建同一条街的
话,实质上就变成了新街道与旧街道共存。
新的街道等于是在旧街道旁边设立一个跟旧街道大部分相同、但是某些规则是自己想
要的方式,来跟旧街道竞争,然后要街道边的店家选边站。
用另一个比喻来说的话,就像太阳饼一大堆分家都说自己正宗一样的感觉。
实际的案例是BSV从BCH分裂出来,回头跟BCH竞争一样,BSV宣称自己是正宗。
至于到底哪一间是老店,有的人可能看店号谁久远,有的人可能看制作的老师傅在谁
家,至于有的人可能就是爽吃哪家吃哪家、哪家符合口味就吃。
为什么会有这种现象?
因为blockchain的另一个本质在于"验证"
在矿工、Dev、社群里面,偏向技术方的人会认为矿工与Dev是最重要的
但其实Dev实作出来的更新、矿工产出来的区块,都必须要经过节点的验证
每一个节点都包含了全部的验证规则,如果矿工产出的区块不符合规则的话
就会被节点给拒绝。
节点必须要保持一致的规则,验证出来的区块才会被别的节点给接受。
不论这个节点是一个团队做出来、还是好几个团队基于同一个规则,原则都是一样。
如果真的有规则近似但是比较松的节点出现,并且有矿工用比较松的规则出块呢?
这个节点就会比较长,因为旧有节点否决掉了新规则的出块,新节点就算纳入了旧规则
的区块,也会造成新节点长得不一样。
于是就会诞生两个链,但是旧的节点会因此死掉吗?这就不一定
因为原本的节点也会有原本的支持者,也会有原本的矿工出块,也会持续运作。
经典的案例就是ETH hardfork之后,原本的"旧ETH"本应该要死了,但节点和矿工还在
运作,因此旧规则的ETH被改名成为ETC。
新旧谁好是不一定的事情,ETC是老字号但是打不赢ETH,BSV是新品牌但是打不赢BCH。
当然ETC之后,ETH还是经历过了几次的hardfork,都没有再发生一样的事情,多少也
显示了早期ETC事件留下来的经验,对于后续hardfork有比较完善的处置。
BTC采取了softfork的方式,而BCH采取了hardfork为主。
双方的理念在2017年分歧,BTC认为要在遵守Satoshi离开前下的1mb限制之下往白皮书的
理想去,BCH认为1mb的限制是对于共识hardfork的一种考验,要透过合力拆开这个限制
才是达成了白皮书的理想。
我尽力中立了,但我想...
being neutral is too left for the far right, too right for the far left.
( ′_ゝ`)