1. 程式人生 > >工作量證明的最長鏈原則到底說的是什麼?

工作量證明的最長鏈原則到底說的是什麼?

777.png

前幾天的一篇關於比特幣的標準的文章引起了很多人的關注。在這篇文章中介紹了比特幣的標準是什麼以及Bitcoin Core(BCE)和Bitcoin Cash(BCH)符合哪些標準不符合哪些標準。最終經過對比,BCH只在白皮書中的工作量證明的最長鏈原則這一標準中輸給了BCE,這也是在眾多比特幣標準中BCH唯一不符合的標準。

有些朋友看到之後對此產生了疑惑:目前BCH的區塊高度不是比BCE要高嗎?不已經是最長的鏈了嗎?為什麼還說它不符合最長鏈的原則?今天小編就對這個問題做一個簡單的科普,希望能夠幫助大家更好的理解。

什麼是工作量證明的最長鏈原則

這一說法最初來自於中本聰的論文《比特幣:一種點對點的電子現金系統》。文中提到:

“資訊盡最大努力在全網傳播即可,節點(nodes)可以隨時離開和重新加入網路,並將最長的工作量證明鏈條作為在該節點離線期間發生的交易的證明。”以及“工作量證明機制的本質則是一CPU一票。大多數的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。”

通俗來說就是,比特幣區塊是依靠礦工們不斷進行數學運算而產生的,每一個區塊都必須引用其上一個區塊。如果想生成一個新的區塊並寫入區塊鏈,必須解出比特幣網路出的工作量證明的迷題。這道題關鍵的三個要素是工作量證明函式、區塊及難度值。工作量證明函式是這道題的計算方法也就是SHA256,區塊決定了這道題的輸入資料,難度值決定了這道題的所需要的計算量。只有工作量最大的那條鏈才能被稱為最長鏈,節點永遠認為最長鏈才是有效的區塊鏈,也只有在最長鏈上挖礦的礦工才能夠獲得獎勵,這就是我們常說的比特幣最長鏈原則。因此也可以說,累積難度值最大的那條鏈才是最長鏈。這也是比特幣的重要標準之一。

為什麼要制定這一規則?

因為比特幣是去中心化的,是沒有中心機構的,想要讓所有的完整節點都有一份相同的公共總帳本,就需要達成共識。這一規則就是一種共識,能夠保證比特幣不停的在工作量最大的區塊鏈上運轉,工作量最大的區塊鏈就是權威的公共總帳本。尤其當兩個礦工同時挖出區塊的時候,系統就會根據最長鏈原則進行取捨,即哪個新產生的區塊能使其所在的區塊鏈變得更長,則哪個區塊得以被記錄。如果兩者一起記賬就會造成區塊鏈的分叉,這時會把其中有更多工作量的一條會繼續作為主鏈,另一條作為備用鏈儲存,如果新新增的區塊使備用鏈累積了更多的工作量,那麼這條備用鏈將被作為新的主鏈。

為什麼BCH不是工作量證明的最長鏈?

由於BCH的挖礦難度比BCE小,所以現在BCH的區塊高度確實比BCE要高,但是這並不是說明最長的鏈。因為BCH累積的難度值是遠遠小於BCE的。這一切都歸結於BCH誕生之初為了能夠在小算力環境下順利的生存下來,修改了難度值的演算法,降低了挖礦難度,所以現在的它還不是那條工作量證明的最長鏈。

雖然目前來說,BCH不是最長的鏈,但是BCH卻是最符合中本聰白皮書的點對點電子現金系統。而且它現在在不斷的高速發展,在未來當BCH的價格、使用者和總市值都超過BTC之後,BCH超越BCE成為最長鏈也是有可能的。