BCH神仙大戰,你我凡人學技術

BCH神仙大戰,你我凡人學技術


BCH最近這次ABC和BSV算力之戰中,有很大的一個看點,就是看誰先出到更多的區塊。這背後的原理,其實是比特幣共識機制裡的最長鏈法則,通俗的理解就是:當出現分叉時,誰出的區塊多,就以誰的鏈為準。

白皮書裡的原話是這樣的:

Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains.

工作量證明本質上是一CPU一票,判斷誰勝出要看哪條鏈最長,哪條長就說明那條鏈上礦工的運算量大。如果誠實的計算節點控制多數的運算能力,那麼誠實的區塊鏈的增長就會是最快的,並超過其他的競爭者。

這就是著名的“一CPU一票”與“最長鏈法則”的原文,可以說“一CPU一票”與“最長鏈的法則”一起,構成了整個比特幣共識的核心。

從比特幣白皮書上可以看出,其實最長鏈法則在技術上更加準確的定義是:看哪條鏈上積累更多的工作量。

但是大部分吃瓜群眾是不知道如何比較工作量的,所以最直觀的比較方法就是看誰出的區塊多,誰出的區塊多誰就擁有最長鏈,而且兩者的結果在一般情況下是相同的。

但是,好像也有不相同的時候。比如,回到這場真實的戰鬥中,在ABC與BSV的算力大戰中,在最重要的前幾天,ABC方一度領先BSV方60多個區塊。一般來說,領先幾個區塊後,落後方(尤其是在算力本身就落後的情況下),要反超的可能性微乎其微。

關於這一點,白皮書上也有描述:

假定一個賭徒擁有無限的透支信用,然後開始進行潛在次數為無窮的賭博,試圖填補上自己的虧空。那麼我們可以計算他填補上虧空的概率,也就是該攻擊者趕上誠實鏈條,如下所示:

BCH神仙大戰,你我凡人學技術

假定p&q,那麼攻擊成功的概率就因為區塊數的增長而呈現指數化下降。由於概率是攻擊者的敵人,如果他不能幸運且快速地獲得成功,那麼他獲得成功的機會隨著時間的流逝就變得愈發渺茫。

學過等比數列都知道,一個小於1的數的幾何次冪是會越來越小的,這也是為什麼一般說比特幣6個確認數就夠了的原因,因為攻擊鏈要反超成為最長鏈的概率已經極低了。

但是,前兩天看新聞,突然發現BSV方出的區塊數好像又反超了ABC方(雖然反超的並不多),並且最新的戰況是雙方基本保持同步狀態,這又是怎麼回事呢?不是說好落後6個區塊就很難趕上了嗎?怎麼落後60多個還能絕地大反擊呢?所有這些疑問著實讓我們吃瓜群眾有點摸不著頭腦。

其實,如果安全按照比特幣白皮書所界定的情況下,是很難出現這種長達幾十個區塊差異的大範圍分叉的。因為它是有前提的,它的前提是默認所有競爭鏈處於相同的競爭規則下。

應該要這麼理解:最長鏈法則是對同一條鏈而言,如果在同一條鏈上僅僅是因為出塊速度或者網絡傳播速度的不同形成的分叉,這個時候才由最長鏈法則做決定。

如果大家在同一個規則之下,不管你出現多少條競爭鏈,最終系統只會認定最長的那條工作鏈,越往後,落後的一方想要追上的概率越小,最長鏈法則發揮作用,保證共識的推進,正如比特幣白皮書中所說。

但是像ABC和BSV,兩者已經形成了兩條完全不同的兩條鏈,那麼在兩條不同的鏈之間,出塊數、區塊高度的比較都是沒有什麼實際意義的。因為在DAA難度調整機制下,反正最終都會回到10分鐘一個塊。

你也可以這麼理解,就好像現在BCH已經領先BTC將近7千個塊了,但是也不能說BCH才是真正的BTC。

可是BSV一直叫嚷著要碾壓ABC,一直說BSV才是真正的BCH啊,那要如何判斷ABC和BSV是同一條鏈的兩個不同分叉,還是已經分裂成兩條不同的鏈了呢?有沒有什麼具體的標準?

我覺得很簡單,就看你們還是不是處在完全相同的規則下。

如果兩者的規則完全相同,那你們就是同一條鏈之間的競爭;

如果規則哪怕有一點點的不同,那你們就已經事實上分裂成為兩條鏈了。

對於已經形成兩條鏈的情況來說,出塊數和區塊高度就不再是最有效的判斷標準,甚至就連算力和最大工作量也不是最關鍵的因素。

當然了,算力仍然決定著你會不會被51%攻擊,仍然決定著你能不能存活下來。不過,如果你在算力上實在競爭不過,又想存活下來的時候,你也可以改規則改算法嘛,反正你已經是另外一條鏈了。

如果是對於這種分裂成兩條不同的鏈而言,算力戰就只能算是其中的一個影響因素了,而不是最終的決定因素。最終決定哪條鏈能存活下來,哪條鏈能活得更好,最終決定誰才是真正的BCH,要依靠更廣泛社會意義上的共識判斷。所以最後的結論是,最長的法則依然有效,但僅對規則完全相同的同一條鏈內部而言;對不同規則的鏈之間,不適用。


分享到:


相關文章: