“去中心化”不是單純概念,也可以量化

怎樣對“去中心化”進行量化?

區塊鏈的一個重要特點是去中心化,或者說是分佈式。但是關於什麼是去中心化,還是非常有爭議的。比如關於比特幣的去中心化程度,關於EOS的去中心化的程度,很多人的看法都是不同的。那麼,到底有沒有辦法在這一點上減少爭議,甚至達成共識?

比特幣和以太坊相比傳統替代品,其主要優勢是去中心化被廣泛認可。然而,儘管這一財產的重要性得到了不少人認同,但大部分關於這個問題的討論都沒有從量化的角度進行。

如果我們能夠形成一個量化的衡量標準,那將使我們能夠:

a、衡量給定系統的去中心化水平;

b、確定對系統的某項修改將如何增加或減少其去中心化水平;

c、設計優化的算法和架構,以達到最大程度地去中心化。

受著名的基尼(Gini)係數和洛倫茲(Lorenz)曲線啟發,我們在本文中提出“最小Nakamoto係數”作為一種簡單的、定量衡量系統去中心化水平的方法。

其基本思想是:

a、列舉一個去中心化系統的基本子系統;

b、確定該去中心化系統需要控制多少個實體來控制每個子系統;

c、然後將這些實體數量中的最小值作為系統去中心化水平的有效度量。

這個最小Nakamoto係數的值越高,表示系統去中心化水平越高。

為了說明這個定義,我們首先給出基尼係數和洛倫茲曲線的一些相關概念和背景;然後通過一些圖表和計算結果來展示當前加密貨幣生態系統整體的中心化程度。

接下來,我們討論“衡量去中心化”,這是作為比特幣和以太坊基本子系統的總體衡量標準的概念。

最後,我們定義最小Nakamoto係數這一系統去中心化水平的度量方法,並討論這個係數的改進方法。

洛倫茲曲線和基尼係數

儘管“太多的不平等”和“太多的中央集權”通常是不同政治派別的關注對象,但是這兩個概念之間實際上非常相似。

具體來說,我們可以將財富的非均勻分配視為高度不平等,並將不均勻的權力分配視為高度集中。

長期以來,經濟學家們使用兩種工具來衡量人口中的不均勻程度:洛倫茲曲線和基尼係數。洛倫茲曲線的基本概念如下圖所示:

“去中心化”不是單純概念,也可以量化

上圖中紅色曲線為洛倫茲曲線。由於累積分佈是從一條直線發散的,所以基尼係數(G)從0增加到1。圖片由Matthew John.提供。

基尼係數可以從洛倫茲曲線下的面積和“平等線”來計算,如下圖所示:

“去中心化”不是單純概念,也可以量化

洛倫茲曲線和基尼係數

該係數也可以根據連續和離散分佈個體份額來計算。

直觀地說,資源分配越均勻,基尼係數越接近零。反之,資源分配越偏向某一方,基尼係數越接近於1。

這一系數抓住了“中心化”的直觀概念:在一個G = 1的高度集中的系統中,只需控制一個決策者或一個實體就可以對系統造成破壞;相反,在一個G = 0的高度分散的系統中,則需要捕獲多個決策者來達到同樣目的。因此,基尼係數越低意味著系統越分散。

加密貨幣:基尼係數與洛倫茲曲線

為讓讀者有一個直觀的感受,我們通過一個簡單的例子——加密貨幣市場資本中的財富分佈——來了解洛倫茨曲線和基尼係數。

為此,我們在2017年7月15日對100種數字貨幣市值進行了快照,計算了每種貨幣的市場份額百分比,根據結果繪製了洛倫茲曲線,並給出了對應的基尼係數:

圖片來源:https://coinmarketcap.com

我們對這100種加密貨幣市場資本分佈的集中度進行了度量,其基尼係數為0.91。這符合我們的直觀印象:截至2017年7月,前兩位加密貨幣比特幣和以太坊佔據了總市值的約70%。

去中心化系統由多個子系統組成

為將這一概念應用到公用區塊鏈領域,我們需要區分去中心化的系統和去中心化的子系統。具體而言,一個去中心化的系統(如比特幣)由一組去中心化的子系統(如挖礦、客戶端、交易、節點、開發者、持幣人)組成。下圖展示了組成比特幣的6個子系統:

“去中心化”不是單純概念,也可以量化

我們將使用這6個子系統來說明如何衡量比特幣或以太坊的去中心化。請注意:可能會根據子系統對整個系統的去中心化的重要程度來決定使用不同的子系統。

某些人可能會認為,其中一些去中心化的子系統可能比其他子系統更重要。例如,挖礦是比特幣功能的絕對必要條件,而交易(儘管重要)則並非比特幣協議的一部分。

然而,我們可以假設,一個給定的個體可以劃分出一個界定去中心化系統中必要的去中心化子系統的界限。這樣,我們就可以認為,如果可以控制任何必要的去中心化子系統,就可以控制由這些子系統組成的去中心化系統。

對比特幣和以太坊去中心化水平的量化

鑑於這些定義,現在我們來計算比特幣和以太坊挖礦、客戶端、開發者、交易、節點和持有者這6個子系統的洛倫茲曲線和基尼係數。根據它們,我們可以發現這6個子系統有多麼集中化。

比特幣的曲線如下圖所示:

“去中心化”不是單純概念,也可以量化

以太坊的曲線如下圖所示:

“去中心化”不是單純概念,也可以量化

讓我們依次參照上面每個圖中的六個子圖來討論這些子系統。

挖礦算力分散程度

出乎我們意料的是,圖x的左上角表明,如果以過去24小時的出塊獎勵來衡量,比特幣挖礦算力是分散的,而以太坊挖礦則更集中。由於這些值之間的差異很大,所以我們可以跟隨時間的推移來追蹤它,或者取每7天或每30天的平均值。

客戶端分散程度

從每張圖的第2張子圖可以看出,大多數比特幣用戶使用Bitcoin Core客戶端,Bitcoin Unlimited是第二受歡迎的客戶端。如果用不同客戶端代碼庫的數量來衡量,這樣的數據意味著相當高的集中度(Gini = 0.92)。

對於以代碼為基礎的以太坊客戶端,大多數客戶端(76%)運行geth,另有16%運行Parity。由於這兩個代碼庫佔據了大部分生態系統,所以基尼係數也為0.92。

開發者分散程度

在圖的右上角,我們可以看到Bitcoin Core參考客戶端有一些已經有過提交的工程師。儘管原始提交是一種不太準確的貢獻度,但從方向上看,只有較少的工程師完成了Bitcoin Core的大部分工作。對於以太坊的geth參考客戶端來說,開發更為集中,有兩個開發人員負責大部分的提交。

交易分散程度

不同交易內,比特幣和以太坊的交易量變化很大,相應的基尼係數也是如此。我們在過去24小時內計算了基尼係數的快照,並在左下方的小圖中進行了說明。

節點分散程度

另一個衡量標準(如圖中的第5張子圖所示)是確定比特幣和以太坊在各個國家的節點分佈情況。

持有者分散程度

在右下角的子圖中,我們可以看出如何通過地址來衡量比特幣和以太坊的持有者分佈。 重要的一點是,如果我們把全球70億人口都計算在內,而其中絕大多數人沒有比特幣或以太坊,基尼係數基本上為0.99以上。

如果我們只考慮賬戶餘額,我們就會將很多餘額量很小的賬戶計算在內,這將使基尼係數再次達到0.99以上。

因此,我們需要在這裡設置一些條件。我們設置的條件是大於等於185個比特幣和大於等於2477個以太坊的賬戶的基尼係數,右下角的結果就是在2017年7月賬戶市值大於500萬美元以上的比特幣和以太坊持有者的分佈情況。

這樣的閾值指標在什麼樣的情況下會變得有趣呢?也許,在類似於正在進行的IRSCoinbase問題的情況下,IRS正在尋找所有餘額大於20,000美元的持有者的信息。從攻擊的概念來看,高基尼係數意味著政府只需要召集幾個大型持有者就能獲得大量優秀的加密貨幣,並且可以壓低價格。

鑑於此,需要說明的有兩點。首先,雖然人們不希望比特幣或以太坊的基尼係數恰好為1(如果只有一個人擁有全部的數字貨幣,沒人會有動力來幫助提升網絡),但在實踐中,高度集中的財富水平似乎仍然能與去中心化協議的運作並存。

其次,如後文所示,我們認為Nakamoto係數是一個比基尼係數更好的度量標準,因為它避免了任意選擇閾值的問題。

最大基尼係數:區塊鏈去中心化的一個粗略衡量標準

我們是否可以將這些去中心化子系統的抽樣方法與衡量一個系統的方法相結合?第一種簡單的方法就是在所有必要的子系統上取最大基尼係數,如下圖所示:

“去中心化”不是單純概念,也可以量化

根據這一標準,比特幣和以太坊的基尼係數最大值為0.92,因為他們的客戶端和節點均集中在一個代碼庫中(比特幣的集中於Bitcoin Core,以太坊的集中於Geth)。

關鍵的是,選擇不同的必要子系統會改變這些值。例如,有人可能認為,單一代碼庫的存在並不妨礙實際的去中心化。如果是這樣的話,比特幣的最大基尼係數將降低至0.84,各國之間的節點分配情況將成為去中心化新的瓶頸。

我們並不認為這裡的六個子系統是衡量去中心化水平的最佳選擇,我們只是想收集一些數據來展示這種計算方法。我們堅定地認為,最大基尼係數指標為我們判斷去中心化瓶頸指明瞭正確方向。

最小Nakamoto係數:改進的區塊鏈去中心化水平的度量方法

然而,最大基尼係數有一個明顯的問題:儘管該指標分數越高,代表系統更符合我們直觀上認為的“更為集中”這一概念,但每個基尼係數的取值範圍都是0-1,這意味著它不能直接度量要控制這個系統所需的個體或實體的數量。

具體來說,對於一個給定的區塊鏈系統,假設你有一個基尼係數為0.8的交易子系統,它有1000個參與者;另一個子系統是基尼係數為0.7的10個礦工。

事實證明,只需控制3個礦工(而不是57個交易參與者)就可能足以危及這個區塊鏈系統。這意味著,如果依照最大基尼係數指標,就會將交易而不是礦工作為去中心化的瓶頸(而這與實際情況是不符的)。

有很多方法可以克服這個問題。比如,我們可以在將子系統組合起來之前,指定不同子系統的基尼係數的權重。

另一種方法是根據計算出的基尼係數的洛倫茲曲線,定義一個本質上相似的度量方法,我們稱之為“Nakamoto係數”。在下面這個例子中,給定子系統的Nakamoto係數是8,因為它需要8個實體來實現51%的控制。

“去中心化”不是單純概念,也可以量化

也就是說,我們將Nakamoto係數定義為:在給定子系統中控制總容量51%所需的最小實體數量。

通過取所有子系統的Nakamoto係數的最小值,我們就能得到最小Nakamoto係數的值。它表示“至少需要說服多少實體來作惡,才能控制整個區塊鏈系統”。

“去中心化”不是單純概念,也可以量化

Nakamoto係數表示損害給定子系統的實體的最小數量。最小中本系數是係數中本上所有子系統的最小值。

如果51%不是每個子系統的操作閾值,我們也可以定義一個“修正的Nakamoto係數”。比如,也許可能要控制75%的交易才能控制某個區塊鏈系統,但只需要控制51%的礦工就能達到同樣效果。

現在我們可以使用前一節中的洛倫茲曲線來計算以太坊和比特幣的Nakamoto係數。以下是以太坊客戶端Geth的計算示例。正如我們所看到的,只需控制2個開發者,我們就得到了51%的控制權,所以Nakamoto係數是2。下圖很好地說明了這個概念。

“去中心化”不是單純概念,也可以量化

下面是比特幣和以太坊的所有子系統的圖表,這次是根據Nakamoto係數計算出來的:

“去中心化”不是單純概念,也可以量化

“去中心化”不是單純概念,也可以量化

下面是我們彙總的每個子系統的Nakamoto係數表格:

“去中心化”不是單純概念,也可以量化

正如我們所看到的,給定這些基本的子系統,我們可以說比特幣和以太坊的Nakamoto係數是1。具體來說,如果Bitcoin或Geth代碼庫被控制,會損害超過51%的客戶,這將導致他們各自的網絡被控制。

對於以太坊來說,想要增加這個係數就意味著像Parity這樣的非geth客戶會獲得更高的市場份額。在此之後,開發者或挖礦的集中化將成為下一個瓶頸。對於比特幣來說,想要增加這一系數同樣需要廣泛採用btcd,bcoin等客戶端。

最小Nakamoto係數取決於子系統的定義

我們發現,有些人可能會認為,比特幣中高度集中地使用單一客戶端並不影響其去中心化,或者(反過來覺得)這種高度的集中顯然是罪惡的。我們在這個問題上沒有采取任何立場,因為在不同的基本子系統定義下,可以得出不同的去中心化度量方式。

例如,如果認為“創始人和發言人”是一個重要的子系統,那麼以太坊的Nakamoto係數最小值將為1,因為一旦Vitalik Buterin被控制,對以太坊來說是一個巨大危險。

相反,如果把“具有大挖礦能力的不同國家的數量”作為一個基本的子系統,那麼比特幣的最小Nakamoto係數將再次為1,因為一旦中國政府取締國內挖礦,51%以上的挖礦算力會受到威脅。

確定“哪個基本子系統能最好地代表一個特定的去中心化系統”不在本文討論的話題範圍之內。但值得注意的是,對“創始人與發言人”和“中國礦工”的控制是對兩種不同區塊鏈的兩種不同攻擊。

因此,如果考慮比較不同幣種中Nakamoto係數的最小值,適當考慮一定程度的生態系統多樣性可以定量地改善去中心化。

結論

很多人曾說過,去中心化是像比特幣和以太坊這樣的系統最重要的屬性。如果這是真的,那麼對去中心化進行度量至關重要。

最小Nakamoto係數就是這樣的一個方法。隨著它的增加,控制系統實體的最小數量也會增加。我們相信這符合去中心化的直觀概念。

對去中心化進行量化的重要性體現在三個方面:

1.度量

首先,像這樣的量化措施可以清楚地計算出來,隨時間記錄下來,並顯示在儀表盤中。這使我們有能力追蹤子系統和系統層面的去中心化的歷史趨勢。

2.改進

其次,就像我們度量績效一樣,像Nakamoto係數這樣的度量標準使我們可以開始度量改善和/或降低去中心化水平。

這樣,我們就可以開始將去中心化的變化歸功於個別部署的代碼或其他網絡活動。例如,在資源稀缺的情況下,我們可以測量部署1000個節點或者僱用兩個新的客戶開發人員是否會在去中心化方面提供更大的改進。

3.優化

最後,最重要的是,一個可量化的目標函數(在數學意義上)決定了任何優化過程的結果。表面上類似的目標函數可以產生非常不同的解決方案。

如果我們的目標是優化去中心化系統內部和系統之間的去中心化水平,我們將需要量化的指標,如洛倫茨曲線、基尼係數和Nakamoto係數。

我們意識到,關於“一個去中心化系統中哪些子系統是必不可少的”這一討論還有很大的空間。然而,一旦給定一個基本子系統,我們現在就可以生成一個洛倫茲曲線和一個Nakamoto係數,並確定該子系統是否會成為整體系統的去中心化瓶頸。

因此,我們認為最小Nakamoto係數是量化去中心化的有益的第一步。


分享到:


相關文章: