BCHSV區塊高度能追上BCHABC的原因分析 原來是它在作祟
BCH硬分叉開始後,BCHABC與BCHSV的算力戰也就正式開始了,雙方都通過補貼(或虧損)的方式調動礦機算力。然而結果並沒有如預期出現誰戰勝誰的情況,而是區塊鏈高度增長拉不開絕對距離,這讓吃瓜群眾大為掃興。這也是我寫這篇文章的原因。
其實,BCHABC的算力優勢一直保持優先:
從分叉後,累計工作量計算,BCHABC領先了38.5%:
然而,在算力領先的情況下,BCHABC的區塊高度並沒有出現領先,截止寫這篇文章時,BCHABC僅僅領先2個區塊,剛才有一段時間還是BCHSV反超1個區塊。
貌似算力投票規則失敗了,這是什麼原因呢?
還是那句話: 出來混總是要還的 !這個原因還是要從BCH在2017年的分叉說起,所謂聰明反被聰明誤。
大家都知道,BTC的挖礦難度2016個區塊(大概14天左右)調整一次,以維持約10分鐘左右的出塊速度。其中,還有一個重要功效是:硬分叉算力投票時,小算力的分叉出塊速度很慢,要等到2016個區塊後才能調整難度再正常出塊,而這個過程可能需要大幾個月甚至幾年,礦工往往無法堅持,由於利益驅動算力會越來越小,這樣小算力分叉就會死掉,就達到了算力投票的效果。
這個作用就發生在了BCH分叉的時候,BCH如果不修改難度調整演算法,當時分叉可能失敗。所以當時就出現了一種叫做EDA(Emergency Difficulty Adjustment,緊密難度調整)的演算法,即:無論何時礦工需要12個小時只能找到6個區塊或更少,採礦難度會減少20%。這樣難度就能迅速調整,BCH也就活過來了。
很快,聰明的礦工就發現了EDA的漏洞。礦工在BCH算力低時,突然調動BTC的算力過來挖BCH,BCH需要72小時才能完成難度調整(這個過程礦工將獲得更多收益),難度調整到位後再把算力撤走,此後72小時BCH難度又會下降(這個過程挖礦收益會打折)。這樣如此往復,BCH就被礦工調戲了,更嚴重的時,導致BCH整體出塊速度加快,最快時達到了恐怖的1-2分鐘。從2017年8月1日到17年11月12日,短短100天時間,BCH領先了將近10000個塊!出塊速度快60%。
在2017年11月13日,BCH不得不再次硬分叉,將難度調整演算法修改為DAA(difficulty adjustment algorithm),即:根據已完成的工作量和前144個塊的耗用時間,每個塊都會調整難度,同時避免了突然的難度下降及峰值,目標是維持BCH的出塊間隔在10分鐘左右。這樣貌似問題解決了,但是BCH仍然暴露了DAA演算法的致命缺陷: 任何分叉鏈很容易存活,最長鏈原則蕩然無存 。
按照DAA的演算法,每塊都在調整挖礦難度,所以小算力分叉鏈能很快適應算力變化,而且能調整為出塊間隔仍然接近10分鐘。 這就是前文所說的BCHSV算力明顯落後BCHABC,但是區塊高度仍然能追上的根本原因 !
通過計算可以證明,算力上下大幅波動才是對出塊速度是不利的,這會浪費部分算力。而算力平穩波動(特別是平穩增加)對出塊速度有利。但這種優勢都不是絕對的, BCH的分叉鏈只要能挺著出塊60個以上,都能存活,區塊高度不會落後太多,和算力絕對值無關 !
所以說,BCH之前的分叉埋下了一個大地雷,破壞了區塊鏈最長鏈原則的有效性。一個號稱堅持中本聰理念的BCH,本質上卻是破壞了最核心的中本聰關於區塊鏈的思想,確實有點諷刺。鬧劇過後,恰恰是再一次證明了BTC的偉大。
本文由作者“位元刺蝟”上傳發布,僅代表作者本人觀點。未經許可,請勿轉載 。