對於一些難度調整算法,自私挖礦策略可以帶來更高的收入,比特幣受自私挖礦的影響比其它挖礦幣小。

原文標題:《灑脫喜一週評 | 自私挖礦策略如何影響各大減半幣》
撰文:灑脫喜

隨着加密貨幣新週期的到來,礦工們已經迎來了春天,而擺在他們面前的,無非是挖哪個幣,以及怎麼挖才能獲取更多收益的問題。

是的,本週的學術內容,就是跟挖礦這件事有關啦。

而我們要分享的,是來自美國國家標準技術研究所 (NIST) 的一篇論文,其討論了自私挖礦策略對比特幣、萊特幣、比特幣現金(BCH)、達世幣(Dash)、門羅幣(Monero)以及大零幣(Zcash)的影響。

美國國家標準技術研究所:自私挖礦策略如何影響比特幣等減半幣圖片來自:tuchong.com

自私挖礦策略對各大減半幣的影響

理論上,自私挖礦攻擊可以讓礦工獲取超額份額的區塊獎勵,同時降低支付的整體安全性。關於這種惡意策略應用於比特幣的研究,目前已經有很多了,但對該策略如何影響其他加密貨幣的關注卻要少得多。

這是因爲,自私挖礦是對加密貨幣難度調整算法(DAA)的一種攻擊,因此在針對使用不同難度調整算法(DAA)的加密貨幣時,可能會產生截然不同的效果。

而在美國國家標準技術研究所 (NIST) 發佈的新論文《基於多難度調整算法的自私挖礦收益率研究》中,研究者 Michael Davidson 和 Tyler Diamond 對多個 PoW 加密貨幣的自私挖礦要求及收益率進行了評估,這些幣種包括比特幣、萊特幣、比特幣現金(BCH)、達世幣(Dash)、門羅幣(Monero)以及大零幣(Zcash)。

研究發現,考慮中的其他加密貨幣要遠比 BTC 更容易受到自私挖礦的影響,此外,研究還表明,通過不誠實地報告區塊時間戳,對於一些難度調整算法(DAA)而言,自私挖礦策略可以爲非誠實礦工帶來不成比例的收入,這要比他們通過誠實挖礦的收入高出 2.5 倍。

1 自私挖礦的概念

通常,當一個礦工開採一個新區塊時,他們會將該區塊廣播給他們的對等節點,這樣做目的是使該區塊儘快傳播到網絡的其餘部分,而礦工只有在自己的區塊被接受之後才能獲得區塊獎勵,因此,在通常情況下,迅速將任何新的區塊提交給競爭者,是符合礦工最大利益的。

然而,在某些情況下,偏離策略將允許具有全網 x% 算力的礦工獲得超過 x% 比例的區塊獎勵。

這一策略的工作原理是自私礦工廣播其扣留的區塊,然後迫使誠實礦工在這些區塊上進行開採。

下圖顯示了自私礦工用來確定是否發佈其區塊的算法:

美國國家標準技術研究所:自私挖礦策略如何影響比特幣等減半幣圖:最初的自私挖礦策略

然而,僅此一點是不足以讓自私挖礦的礦工盈利的,只要挖礦難度保持不變,那麼使用自私挖礦策略的礦工就會遭受損失,當然,誠實礦工的損失會更爲慘重,因此,在這種情況下,理性的參與者是不會使用自私挖礦策略的。

而只有在網絡難度向下調整時,自私挖礦策略纔可能會盈利。

下面的公式給出了自私挖礦礦工在擁有多少比例的算力時,其能夠提高挖礦相對收入的情況:

如果γ =1/2,則當α ≥1/4 時,自私挖礦是有利可圖的,而如果γ = 0,則當α ≥ 1/3 時,自私挖礦是有利可圖的。(其中α是自私礦工控制的總算力比例,而γ則是誠實礦工選擇在自私礦工發佈的區塊上挖礦的比例)。

美國國家標準技術研究所:自私挖礦策略如何影響比特幣等減半幣

2 難度調整算法(DAA)

由於工作量證明(PoW)加密貨幣沒有中央機構來確定誰可以挖礦,以及以什麼速率進行挖礦,因此網絡算力總量會隨時間而發生變化。

然而,爲了保持有計劃的貨幣政策以及更好的用戶體驗,不管算力如何,都應該在可預測的時間內找到新的區塊(例如,比特幣的目標是 10 分鐘的區塊間隔)。而如果沒有難度調整算法(DAA),算力的增加會使區塊的發現越來越頻繁,從而導致貨幣通脹率提高,並且使支付變得不那麼可預測和安全。而難度調整算法(DAA)的作用是改變挖礦難題的難度,以適應算力的變化,以相對恆定的速度生成區塊。

雖然難度調整算法(DAA)的主要目的是在算力波動的情況下,長期保持區塊時間的一致性,以便執行加密貨幣的貨幣政策,但在其設計中,可能會考慮到其它各種因素。

例如,當算力保持不變時,難度調整算法(DAA)應避免突然的難度變化,阻止算力和難度之間的反饋產生劇烈的振盪,並避免新區塊之間出現異常的長間隔。

3 時間和時間戳

在分佈式系統中,要保持精確的時鐘是一個具有挑戰性的問題,而相對準確的計時,則是難度調整算法所需要用到的。

一些加密貨幣具有不同的時間戳規則,但這裏研究的規則大致是相同的。節點關心的時間有三個概念:系統時鐘時間、區塊時間戳以及網絡調整時間。當節點連接時,它們會各自向對方發送一個時間戳。而門羅幣是這項研究當中唯一不使用網絡調整時間的加密貨幣。

由於區塊時間戳是節點可客觀達成一致的唯一時間,因此它是在難度調整算法(DAA)計算中使用的時間戳。有兩個規則可確定節點是否會根據其時間戳將區塊視爲有效;

  1. 區塊時間戳必須比網絡調整時間早 2 個小時以下(或者在門羅幣的情況下,則是系統時鐘時間);
  2. 時間戳必須大於前 11 個區塊的中間時間戳;

總之,這些規則應防止區塊時間戳偏離實際時間超過幾個小時,併爲節點提供一個商定的時間概念,以便進行難度調整。

但是,如果難度調整算法(DAA)設計得不好(或實現得不好),惡意礦工就可能策略性地設置區塊時間戳,以「迷惑」算法並迅速降低難度,從而更快地挖取到更多的獎勵。

而這是一種被稱爲時間扭曲的攻擊方式,並且已經有攻擊者在幾種加密貨幣上成功執行了,這使得這些幣的產出較原計劃大大提前了。

利用時間戳的另一種可能的攻擊,是利用網絡調整時間的時間劫持攻擊。通過多次連接到目標節點並報告錯誤的時間戳,保持目標連接一半以上的攻擊者,可以將受害者的網絡調整時間向前或向後移動最多 70 分鐘,這可用於強制目標節點臨時認爲區塊是有效或無效的。

4 自私挖礦策略的進化及變體

我們需要知道的是,自私挖礦策略在難度調整之前是無利可圖的,這已經得到了 Cyril Grunspan 和 Ricardo Pérez-Marco 的論證,這也是爲什麼當前我們沒有在比特幣網絡觀察到自私挖礦攻擊現象的原因之一。

而 Nayak 等人的研究表明,各種「頑固挖礦」策略可以提高礦工的利潤,此外,將這些策略與日蝕攻擊(eclipse attack)相結合,就可以提高收益,甚至反直覺地使被日蝕攻擊的「受害者」受益。而 Sapirshtein 等人則利用馬爾可夫決策過程進一步改進了自私挖礦,得到了最優的挖礦策略,並表明使用其策略,礦工可以將攻擊所需的算力要求從 25% 降低到 23.21%。

其他人則通過更詳細的模型或現實環境來研究自私挖礦的性能。在這種環境下,自私的礦工往往會創建更大的區塊,從而收取到更多的費用。Gervais 等人將區塊傳播時間、區塊大小、預期區塊時間以及日蝕攻擊的可能性納入他們的模型中,並表明較大的區塊大小以及較短的預期區塊時間,會增加自私礦工的相對收入,但是,先進的區塊傳播技術可以最小化這一問題。

以上的研究,只考慮了單個自私礦工存在的模型,而其它研究則展開到多個自私礦工同時作用的情況。

例如,Francisco J Marmolejo-Cossío 等人提出了多個自私礦工存在的情況下,加密貨幣的安全性反而會進一步退化,例如,當有兩個獨立的自私礦工,實現自私挖礦的算力門檻就可以下降到 21.48%。

與比特幣不同,以太坊的「叔塊」也是提供獎勵的,而這在理論上降低了自私挖礦的門檻,因爲這些區塊仍然會給自私礦工一些回報,使得戰略風險降低了。根據 Ritz 和 Zugenmaier 的研究表明,通過觀察到的以太坊叔塊比例,其自私挖礦的盈利閾值爲α=0.185±0.012。 而 Niu 和 Feng 的馬爾可夫模型發現,在α>0.163 的情況下,以太坊的自私挖礦是有利可圖的,而在這個值以下,自私礦工的損失要低於他們在比特幣上進行自私挖礦活動的損失。此外,由於叔塊獎勵,自私礦工和誠實礦工的收入都隨α增加,從而可能導致以太幣資產更高的通脹。

而在最近,Cyril Grunspan 和 Ricardo Pérez-Marco 更正式地分析了以太坊對自私挖礦的敏感性,並提出了新的變體策略。

而其它與自私挖礦有關,但又存在區別的挖礦攻擊也逐漸多了起來。

例如,Yujin Kwon 等人提出的 FAW (Fork After Withholding)攻擊,其涉及從攻擊者所屬的礦池中扣留工作量證明解決方案,然後僅在外部誠實礦工發佈其解決方案時傳播該解決方案,從而創建故意的分叉。這種策略總是有利可圖的,實際上它就是大礦池攻擊小礦池的一種方式。Coin-hopping 則是另一種攻擊方式,攻擊者從一個幣跳至另一個幣,讓誠實礦工去面對更高難度的鏈,然後當難度降低時又轉回來,這使得攻擊者礦工能以儘可能低的成本挖礦。

5 應對策略

自私挖礦攻擊方案的首次提出者 Eyal 和 Sirer 建議,當有兩個相互競爭的鏈出現時,誠實礦工應該隨機選擇,而不是優先考慮第一看到的鏈。這相當於將γ設置爲 0.5,因此,如果α<0.25,自私挖礦將無利可圖。

Heilman 則提出了一種名爲 Freshness Preferred 的技術,使用這種技術後,礦工並不是接受它們第一看到的區塊,而是接受來自可信源最新時間戳的區塊。他還建議對「不可僞造的時間戳」使用 NIST 隨機 beacon,這將自私挖礦的盈利門檻提高到了 0.32。

ZeroBlock 則試圖通過讓礦工在其本地鏈的末端附加「仿造」區塊來防止自私挖礦,前提是它們在一定時間內沒有看到新的區塊。Zhang 和 Preneel 則提出了一個向後兼容的防禦措施,以防止自私挖礦,而該方案的主要缺點是,網絡從分區中恢復需要花費更長的時間。

6 模擬器

據悉,該論文的研究者提出了一個使用蒙特卡洛 (Monte Carlo) 方法的模擬器,以確立針對各種難度調整算法(DAA)的自私挖礦的盈利能力。

模擬器代碼庫鏈接:https://github.com/usnistgov/SelfishMiningSim

研究所選的難度調整算法(DAA),是當前加密貨幣市場市值靠前的幣種所採用的,而由於以太坊使用的 PoW 共識機制是更復雜的,因此超出了研究範圍。這裏考慮的幣種是 BTC、BCH、LTC、XMR、Dash 以及 Zcash。

據悉,這一模擬器做了一些簡化的假設:

  1. 持續的區塊獎勵;
  2. 恆定的算力(沒有新礦工上線或消失);
  3. 區塊沒有傳播延遲;
  4. 攻擊發生後,加密貨幣的匯率依舊保持不變;
  5. 只有一個自私礦工(或礦池)存在;

此外,研究沒有考慮誠實礦工在發現自私挖礦攻擊時會做出何種反應。從理論上講,誠實礦工可能會採取行動,以此降低自私挖礦者的效率。然而,現有的研究表明,當多個礦工同時應用這種策略時,自私挖礦往往更有利可圖。

7 模擬結果

(需要強調的是,這裏的結果是針對難度調整算法(DAA)本身,而不一定是指使用它的幣,這是因爲一些加密貨幣(比如 BCH 和 Dash)還採取了其他緩解措施,而這些措施可能會使自私挖礦變得更具挑戰性,或者收益會更低。)

研究結果顯示,比特幣礦工要實現自私挖礦,其需要掌握很大一部分算力才能夠盈利,並且在盈利的時候,要比其它幣種的算法擁有更低的 TARG (時間調整相對收益)。

在擁有 40% 算力,且沒有網絡影響的情況下,自私礦工仍將是虧損的(超過 10000 個區塊),而對於下一個最佳競爭對手門羅幣(Monero),同樣的自私礦工將其時間調整後的收入增加 19.15%。然而,隨着自私礦工網絡影響力的增加,這種差距趨於縮小。而 Dash 採用的暗黑重力波(DGW)算法以及 zCash 的 Digishield 則是另一種情況,其中 DGW 算法特別容易受到時間戳操縱的影響,而 BCH 的 D601 算法則介於兩者之間。

美國國家標準技術研究所:自私挖礦策略如何影響比特幣等減半幣每種幣默認參數的 TARG 結果

8 結論和未來的研究方向

這篇論文比較了自私挖礦策略對各種難度調整算法的攻擊效果。此外,研究還證明了一些算法要比其他算法要更容易受到自私挖礦攻擊的影響,自私挖礦礦工應該將區塊時間戳操縱作爲其策略空間的一個新組成部分。

在今後的工作中,還有很多問題是需要研究的,例如,挖礦者如何確定最佳時間戳,是否存在比天真地將時間戳設置爲與挖礦者系統時間的偏移量更高級的策略?

timejacking 又是如何影響自私挖礦的盈利能力的?如果多個自私小礦工同時挖取一種加密貨幣,而時間戳操縱大大降低了盈利門檻,那會怎麼樣?

還有很多其它潛在的難度調整算法可以分析,包括簡單的組合。最後,未來的研究工作還應該檢查某些緩解措施的有效性,例如 BCH 和 Dash 目前所採用的措施。

灑脫喜簡評:僅從難度調整算法來看,比特幣似乎是最能抵抗自私挖礦攻擊的,而實現盈利的要求(40% 算力),使得這類攻擊發生的可能性是非常低的,而其它 PoW 幣種的自私挖礦則相對更容易實現,當然,一些幣種已經採取了緩解措施,而它們的有效性仍然是有待確認的。

來源鏈接:www.8btc.com