05.29 鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

作者:Danning Sui, Saulo Ricci and Johannes Pfeffer

編譯:周恆宇

昨天鏈聞 ChainNews 推送文章「一文讀懂加密貨幣挖礦業現狀和秘密 」,全面分析了挖礦及礦機生意的本質之後,今天,我們把目光聚焦在最近最受關注的以太坊挖礦領域。

如鏈聞 ChainNews 之前

報道

,比特大陸的以太坊挖礦機已經發布,其他幾家較大型的礦機制造商也都披露了製造以太坊挖礦機的計劃,這讓部分礦工擔心,這樣很容易導致以太坊挖礦中心化,存在市場份額較大的廠商發起 51% 攻擊的風險。Alethio 團隊成員通過以太坊上數據,深入分析了以太坊目前挖礦現狀。不過,儘管該團隊的結論認為:「以太坊網絡中,無論如何都很難實現部分礦工所擔心的攻擊」,但是不可忽視的一點是,一個攻擊者只需要統一全網 1.5% 最強大的節點,就能控制整個以太坊網絡。

以太坊背後的本質是一個 p2p 網絡結構,每個以太坊的參與者都是這個巨大結構中的一個節點。在這個分佈式的網絡中,每個節點都和其他節點相互連接,並且,為了保持整個區塊網絡的可持續發展,所有的節點都需要達成一致。其中一部分的節點實際上屬於礦工們,他們的工作就是不斷的貢獻算力來確認接下來要上鍊的區塊。

為了增加挖礦的成功率並獲得更高頻次的回報,礦工們之間經常相互合作來匯聚他們的哈希算力,進行挖礦活動。這種哈希算力的組合就是我們所熟知的礦池。礦池巨大的算力會對整個區塊鏈網絡產生影響。

近期的學術研究中都以各個礦池的哈希算力作為判斷以太坊中心化的標準,但我們認為這種判斷方式不僅把問題過於簡化了,還會給對算力中心化的討論帶來一些分歧。

我們希望帶領讀者深入瞭解目前各個礦池的運行狀態,以及他們的算力能力。此外,我們還會通過分析礦池向礦工支付報酬的方式,深入瞭解以太坊上的算力分佈情況。

先說我們的結論,在以太坊生態中:

  • 礦池是中心化的嗎?這個問題的答案是:「是的」,礦池本來就是高度中心化的組織;
  • 礦工們是中心化的嗎?其實不是;
  • 此外,在以太坊網絡中,無論如何都很難實現部分礦工所擔心的攻擊;
  • 不過,一個攻擊者只需要統一全網 1.5% 最強大的節點,就能控制整個網絡。

且看我們的詳細分析。

挖礦究竟有哪些方式?

讓我們從普及最基本的知識開始。對於常規的個人礦工來說,一般有三種挖礦方式:

1. 自己挖礦

礦工可以自己組織算力去挖礦。儘管在這種方式下礦工可以自己享有全部收益,但是對於只有一兩臺礦機的業餘礦工,這種方式在現實中並不可行,因為在這些類似以太坊的熱門區塊鏈網絡中,這種利用微弱算力的方式找到一個區塊可能會花上幾年的時間。

這些礦工不得不面對來自大礦池以及有大量電力資源與算力資源的合作群體的算力競爭。這種方式只有一個好處,即礦工可以掌握挖礦中的所有流程。

2. 加入一個礦池

礦工還可以通過加盟礦池的方式進行挖礦。通過把自己的哈希算力加入礦池的算力集合,礦工增加了自己認證一個區塊的可能性。一旦礦池中的某個礦工發現並認證了區塊,整個礦池中的礦工按照自己的算力貢獻比例共同分享挖礦收益。

3. 「雲挖礦」

除了擁有自己的硬件去挖礦這種方式 包括自己挖礦和礦池挖礦,礦工還可以從擁有自己礦機的那些礦工手裡租用空閒機器挖礦。儘管需要向第三方支付費用,但是在這個過程中,雲挖礦的礦工避免了在前期投入過多的購買與維護礦機的成本。

我們研究所用的數據

我們研究所使用的數據庫包含了從 2018 年 4 月 21 日到 28 日一整週以太坊的區塊數據,其中包含了以太坊的轉賬數據等。

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

數據集整體狀況

結論一:

以太坊礦池是中心化的嗎?是的

為了佐證我們的分析,我們先來講講算力在所有的礦池之間是怎麼分佈的。

如下圖所示,在本週之內,前五名的礦池挖到了 84% 的新確認區塊。所以從某種意義上來說,礦池本來就是高度中心化的組織。

但其實在現實世界中,每個礦池都是相對獨立的個體。一個礦池會包含所有為了提升挖礦能力而投入自己的挖礦設備的個體礦工的利益。所以,我們在分析中會深入礦池內部,來證明以太坊是如何實現去中心化這個目標的。

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

以太坊礦池挖出區塊佔總體比重

結論二:

以太坊礦工們是中心化?其實不是

上面的圖給人第一印象是以太坊挖礦的算力是非常集中的。然而,正如前文所說,礦池本質上並不擁有大量的礦機,它實際上是通過集合許多個體的算力去挖掘新的區塊。

當我們從個體礦工的角度去看這件事的時候,我們會發現整件事並不像我們想象的一樣。

礦池向礦工支付報酬的最直接方式是直接返還收益。在這種情況下,收益直接從礦池賬戶中轉到礦工的賬戶地址裡。這種分配是經常使用的分配方式,而且分配數額可以由掌握礦池分配賬戶的礦工設定。

有些情況下,這種報酬的支付不會直接從礦池的賬戶中發出,而是選擇通過獨立的賬戶 被稱作代理賬戶 返還給參與挖礦的個體礦工們。但也有一些礦池使用不那麼直接的支付方式:他們直接使用法定貨幣,把報酬支付給個體礦工。舉個例子:我們前文提到的雲挖礦就是這樣支付報酬的,他們會把報酬打進整個挖礦過程的參與者的信用卡里。

下面的表格列出了我們分析的時間段內,排名最高的幾個礦池的狀況。他們的挖礦收益大體上和他們挖掘的區塊數量成正比。數據上的不符主要來自於支付過程的個性化以及時間上的延遲。

我們會發現,表中最後那個叫「bitclubpool」的礦池支付的報酬明顯和挖掘到的區塊數量不成比例。Bitclubpool 就是我們所說那種不會直接從礦池賬戶返還報酬給礦工的礦池 這點我們可以從獨立支付賬戶的數量上推斷。我們認為這種操作報酬的方式非常的不透明,並且會降低礦工們對它的信任。

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

下面的圖像描繪了礦池向每個礦工支付報酬百分比的累計分佈函數 CDF。累計分佈函數的圖像主要說明的是樣本的分佈情況。曲線陡峭的地方說明,x 軸上的這個數值附近是樣本比較集中的區域,並在 y 軸上說明了在這個數值以下的樣本佔總體樣本比例。

該累計分佈圖像顯示,向礦工小數額的報酬支付佔了所有支付中的絕大部分。我們通過分析發現,前四大礦池給每個礦工支付的報酬平均只佔他們總報酬的 0.04%。得到佔總報酬比例最大的報酬的礦工是「nanopool」的一個參與礦工,他能夠收到礦池整體收益的 3.7%,

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

礦池如何向礦工們支付報酬?

我們在分析過程中觀察到了礦池三種不同的報酬支付方式:

1. 直接在鏈上使用加密貨幣支付,這麼做的有 Ethermine、Ethfan、F2pool、nanopool 等等礦池。

特點:

  • 每筆支付金額很小,面對的支付賬戶眾多
  • 大多數支付金額都小於 1 個 ETH
  • 支付的賬戶所有者都是實際參與挖礦的礦工

2. 通過鏈上的代理賬戶支付報酬。 比如以下這個賬戶就是鏈上的一個用於支付的代理賬戶 0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5

特點:

  • 用於針對少量賬戶的大額支付
  • 每次轉賬平均向特定賬戶支付大概 100 個 ETH
  • 賬戶是代理賬戶,直接支付給實際參與的礦工
  • 通過非鏈上賬戶,例如信用卡支付,如 Bitclubpool
  • 大金額轉賬支付
  • 金額量大致是每筆 1000 ETH
  • 支付賬戶通常是礦池擁有者的個人賬戶

下圖是一張收到付款的礦工數量以及平均支付金額的散點圖。其中包含了不同的支付方式,並做了相應的聚類。

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

我們可以發現前五的礦池 miningpoolhub, f2pool, ethfans, nanopool 和 ethermine 都有一樣的模式:大量的礦工以及小數額的支付。這說明他們直接向礦工支付報酬,這也符合礦池中礦工的去中心化結構。

但從另外的角度來講,「bitclubpool」是一個在圖像左邊頂端的異常點,這意味著「bitclubpool」 只會向幾個賬戶支付極大數量的報酬。這些賬戶並不從區塊挖礦網絡中收到他們的報酬,因為我們顯而易見可以看到他們收到的 35,173 個 ETH 是遠超過當周他們挖出的 1124 個區塊的收益的。Bitclubpool 的網站上說他們通過法定貨幣使用支票賬戶來支付報酬。我們認為 Bitclubpool 上大量的鏈上支付其實是向其他礦池擁有者的轉賬。同時,有跡象表明,Bitclubpool 和 bw 在用挖礦來掩蓋某些欺詐行為。

此外,我們仔細探究了上圖中臨近 Bitclubpool 和 bw 的點。地址 0x92e3f585ab699445fd7a809b5edf0c3dc88fb549 下的支付模式和 Bitclubpool 以及 bw 類似。

而上圖中地址為 0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5 的礦池支付也有一定特點。我們發現它每次支付報酬都價值約為 100 ETH,並且都轉入同一個賬戶內。然後這個賬戶會用小於 1 ETH 的額度將收益轉入其他賬戶,有點類似於前幾大礦池使用代理賬戶的做法。

如果發動一次 51% 算力的攻擊需要多少礦工?成千上萬個

51% 算力攻擊是一個在區塊鏈生態中經常流傳的一個問題。當攻擊者掌握了全網超過一半的哈希算力,他就能最終創造全網最長的一條鏈,這條記錄信息的鏈完全屬於他,甚至可能不包含任何一個其他礦工之前挖出的區塊。因為最長的鏈總是被認為是最優公信力的那條,所以攻擊者就有了以下的特權:

  • 控制區塊認證哪些轉移支付 審查制度
  • 撤銷稍短的競爭鏈 引起雙花和其他攻擊
  • 引起許多負面影響

我們收集了來自不同礦池的礦工信息,並按照他們調查當週收到的報酬,對他們做了排序,根據算力與收益的比例關係,我們可以判斷他們掌握的算力大小。

為了能夠實現過半算力,一個攻擊者必須盡力說服超過 4484 個礦工合作才能發起攻擊;也就是說,至少 4484 個礦工統一惡意攻擊才能顛覆整個以太坊網絡,而不是表面上看到的 3 個礦池就能顛覆網絡。然而,這排名前 4484 的礦工只佔全網礦工 按照支付地址計算 的 1.5%。下圖說明了有 297443 名礦工掌握著剩下 50% 的算力。因此,從另外一個角度來講,一個攻擊者只需要統一全網 1.5% 最強大的節點就能控制整個網絡。

鏈聞深度:從數字貨幣挖礦看以太坊礦工中心化了沒

一旦實現了 51% 算力的攻擊,就會給整個加密貨幣市場造成巨大影響。如果競爭鏈條沒有攻擊鏈條長的話,一次持久的 51% 攻擊甚至會阻止其他礦工從網絡中挖出新的區塊。假設礦工們都足夠理性的話,他們會盡力保護他們投資與回報的價值。如果某一礦池達到了接近全網 50% 的哈希算力,或者和其他礦池協作達到了超過 51% 的算力,礦工們為了保護自己的收益,就會放棄這些礦池。

該文作者系 Alethio 團隊成員。Alethio 是一個監測以太坊網絡和礦工生態系統健康程度,為不同用戶提供影響其網絡活動模式的信息工具。通過 Alethio,所有人都可以分析以太坊網絡的一些狀況,並通過研究得出一些結論。


分享到:


相關文章: