Neo N3為什么不需要挖礦?|Neo 專欄

從接觸Neo項目以來,其使用的dBFT共識算法一直讓我如鯁在喉,因為它看起來似乎是背離了區(qū)塊鏈去中心化的初衷。它不再像比特幣或者以太坊一樣任何人都可以參與挖礦參與共識,相反的,是選定幾個共識節(jié)點來進行共識,把生成區(qū)塊的權力交給幾個(動態(tài))共識節(jié)點。所以我一直以來都在想方設法去找一個方式去解決這個中心化的問題,包括我的上一篇文章,也是在講如何用可信執(zhí)行環(huán)境來限制共識節(jié)點的權力。
但也正是因為在寫上一篇文章的過程中,我仔細思考了下這種中心化給系統(tǒng)帶來的那些影響,好像別的共識算法里也有類似的問題。于是在寫完上一篇文章后,一個問題就一直回響在我腦海里,為什么?
這個為什么的問題其實包含的內容很廣,包括為什么算力證明,又為什么dBFT以及dBFT2.0 。然后所有的問題又回歸到一個問題上,那就是dBFT真的比PoW更加中心化么,或者說,我們真的能僅僅靠共識節(jié)點的數(shù)量來比較不同共識算法的去中心化程度么?
于是過去的幾天里我又看了一遍北京大學肖臻老師的區(qū)塊鏈課程,重新溫習了一遍比特幣和以太坊這兩個系統(tǒng)。同時也跑去把Neo文檔里共識算法的部分從頭到尾看了一遍,尤其是關于為什么要升級dBFT2.0的部分。再結合我所了解的過去幾年區(qū)塊鏈領域發(fā)生的大事,我突然意識到雖然在設計上,PoW是更加去中心化的一個系統(tǒng)(PoS同理),但是在實際的運營中,dBFT的系統(tǒng)其實是比PoW更加去中心化的。
雖然比特幣的PoW共識系統(tǒng)允許任何人在任何時候接入比特幣網絡進行挖礦,但是由于算力和成本的原因,普通用戶根本沒有辦法參與挖礦,而只有大戶和礦池才有那樣的財力來支持大規(guī)模的礦機部署。屈指可數(shù)的頭部的礦場主掌握了比特幣絕大多數(shù)算力。這樣一來,所謂的去中心化在比特幣系統(tǒng)里其實已經名存實亡了一大半。BCH的硬分叉就是一個例子,掌握了礦機的個人可以生生撕裂整個比特幣社區(qū)。算力競爭原本是希望讓系統(tǒng)更加去中心化,但是實際上卻是使得算力越來越集中。已有的礦主因為幣價波動而退出游戲,新礦主想要加入挖礦游戲的成本臺階越來越高,想象一下比特幣有一天變成互聯(lián)網企業(yè)一樣贏者通吃。
下圖就是最近比特幣網路里礦工算力的分布圖??梢钥吹?,幾大頭部礦場幾乎壟斷了90%以上的算力,所謂的Others占到的比例只有區(qū)區(qū)7%。
數(shù)據源:
https://btc.com/stats/pool?percent_mode=latest#pool-history

同樣的中心化,在比特幣生態(tài)里的閃電網絡里也正在發(fā)生。原本設計為分布式的交易通道結構,卻因為路由交易的存在而使得整個網絡里出現(xiàn)了大型的hub節(jié)點,幾乎所有的用戶都是連接在少數(shù)幾個hub上以方便路由交易。根據 https://explorer.acinq.co/ 的數(shù)據,閃電網絡頭部5%的節(jié)點掌握著90%以上的channel 連接。如果這些hub節(jié)點崩潰,那么整個閃電網絡都將受到影響。
造成比特幣愈加中心化問題的原因就恰恰就在于算力。更高的算力就有更高的收益,更高的收益可以帶來更多的資金購買更高的算力。這樣的模型里,大礦場算力多,就像是院子里的大樹一樣,樹木越大,獲取的陽光越多,陽光都被大樹遮擋了,下面的小樹苗就像小礦場,就沒辦法進行光合作用,沒辦法獲得收益,沒法生長,因而死去。于是院子里只剩下大樹,再沒有小樹,挖礦的也只剩大礦場,小礦場紛紛消失。

比特幣算力分布示意圖。礦池之間相互競爭,大者恒大,弱者恒弱,參與共識的成本臺階越來越高。
dBFT恰恰好解決了這個問題,就是給定名額參加共識。共識節(jié)點靠社區(qū)投票,也許不同節(jié)點的票的數(shù)量會有不同,但是當節(jié)點當選為共識節(jié)點之后,他們在參加共識的時候是完全相等的,并不會因為任何原因而有節(jié)點獲得更多的優(yōu)勢。就好像是院子里的陽光被分成了等份,無論你這棵樹有多大,你都只能享用自己的這份陽光,這樣就可以保證別的樹木的生長。所以在dBFT的模型里,雖然設計上并沒有PoW來的去中心化,可是在真正運行的時候,卻是保證系統(tǒng)不會中心化的最好機制。

dBFT共識節(jié)點示意圖。所有的共識節(jié)點產出新塊的機會均等。共識節(jié)點數(shù)目不會因為相互競爭而越來越少。
以上。因為共識節(jié)點機會均等,所以Neo N3不需要挖礦。
