工作量證明(PoW)的內部攻擊模型

以太中文網發表於2019-01-31

雖然,POW演算法其實並沒有協調選擇博弈論中的安全性,因為多數聯盟可以形成和有益的審查和回覆塊。但是當我們考慮PoW的攻擊時,通常不會考慮到礦工聯合攻擊,而是想到購買礦工裝置或者對更重鏈進行挖礦。這篇文章主要是談論PoW對抗控制半數雜湊力攻擊的能力,不允許租用,或賄賂礦工,或與礦工進行任何其他形式的合作。

外部攻擊

外部攻擊者購買足夠的GPU或者ASIC直到完成對可信網路的“51%攻擊”,或者至少不與攻擊者合作。

假設通過給1個GUP可挖礦的區塊鏈增加X雜湊力,並且會讓這個X雜湊算力的GPU礦工從挖這個區塊鏈轉移到其他區塊鏈(因為如果不這樣,攻擊者的鏈就會獲利變少)。GPU挖掘假設是一種有效的、完全競爭的區塊鏈市場。

在這個“簡單模型”中,對於有T算力的區塊鏈,攻擊者需要的算力是X=T/2,這些是非常多的GPU。

同時,假設通過增加X的ASIC算力,ASIC網路的算力提升了X。ASIC挖礦區塊鏈是一種壟斷市場。在另個“簡單模型”中,如果要攻擊T算力的ASIC區塊鏈,則需要有T算力才能發動攻擊。

事實上,真實的情況是介於兩者之間。區塊鏈GPU礦工市場並不是完全競爭的,區塊鏈ASIC礦工也不是完全壟斷。

儘管這非常有趣,但是我們儘量保持簡單:不再討論ASIC,假設我們就需要T/2的算力,來攻擊擁有T算力的區塊鏈。

而且,這其實應該是“充分競爭”的場景,因為礦工在發現有攻擊者出現的時候,就會立刻去挖別的,因為區塊鏈受到攻擊意味著利潤降低。

所以,我們模型的關鍵,就是持有T/2的算力,就可以攻擊擁有T算力的區塊鏈。

內部攻擊者

內部攻擊者不會去購買足夠的GPU來獲得T/2的算力,而是購買更少部分的算力X= p*T。內部攻擊者開始挖礦,並且現在網路最誠實的部分擁有Y = T – X = (1 – p)*T算力。內部攻擊者繼續在最長的鏈上挖礦,獲得區塊獎勵,和其他礦工競爭。

內部攻擊者會將挖礦獎勵用於購買更多算力。假設在我們的模型,內部攻擊者能夠以每月1+r的速率來增加算力。也就是說,如果內部攻擊者在0月份獲得X算力,那麼在1月份就會獲得X(1 + r)的算力。

同時也假設最誠實的礦工也投資來獲得更多算力,但是按照每月1+h的速率增加。

在這個實驗中,我們假設1 + r > 1 + h。攻擊者都會想要最大化自己的算力。最誠實的礦工專注於利潤。攻擊者也許會因為這種利益獲得贊助,或者長期的策略。最誠實的礦工不會和這個攻擊者合作,並且不知道有攻擊者的存在(攻擊者會看起來是誠實挖礦,但是自私挖礦會增加r – h的值)。

在N個月之後,內部攻擊者已經有了X(1+r)^N的算力,而且網路還剩下Y(1+h)^N算力。攻擊者在獲得和網路同樣算力的時候,就勝利了。 X(1+r)^N =Y(1+h)^N <==> ((1+r)/(1+h))^N = Y/X = (1-p)/p 我們把(1+r)/(1+h)比例成為攻擊者的“優勢”,並且記為a。所以當a^N = (1-p)/p時,攻擊者勝利。

內部攻擊者有a和初始雜湊力的比例p,因此可以在經過N = ln((1 – p)/p)/ln(a) months月後,進行成功的攻擊。同時,也不一定就是月份,在任何階段數學都是不變的,只要我們能夠計算出“a”。

1*Ik490vo_GpYrP3fvhUDkpQ

下面表格中的數字可以幫助我們理解:

根據上面的數字,對於內部攻擊來說,每個月都有5%, 10% 和25%的漲幅,而且網路的初始算力有10%, 20% 或者 30%。

那麼對於這個模型,我們有多少的安全性呢?

瞭解這個“內部”策略的外部攻擊者有選項。如果他們知道他們會在N個月後進行攻擊,而且他們也知道自己的a是多少,然後他們就會計算需要的初始算力比重。也就說,他們可以計算出自己所需要的GPU.

如果攻擊者知道他們所需要的GPU,已經a的值,那麼他們就可以計算所需要的月數來獲得他們攻擊目標的大多數算力。

那麼區塊獎勵讓我們獲得了什麼?

增加區塊獎勵可以增加購買算力的成本。攻擊者之前可以買得起10%的算力,但是現在可能只能買得起5%的算力,來開始他們的攻擊。

如果將區塊獎勵翻倍,那麼就會延遲區塊獎勵: ∆N =ln((1 – p/2)/(p/2))/ln(a) – ln((1 – p)/p)/ln(a) = (ln((2 – p)/p) – ln(p/(1 – p)))/ln(a) = ln((2-p)/(1-p))/ln(a) 所以如果增加區塊獎勵,就可以降低a的值,然而降低了購買雜湊算力p的能力,從而也降低了∆N = ln((1-p)/(2-p))/ln(a)攻擊成功的概率。

請看另一個表格。

1*SuVw815AGT2NK__QUY5dDA

由於加倍了區塊獎勵,擁有10%,20%或者30%比重的攻擊者,假設他們有5%,10%或者25%的a值,所需要的月份都會增加。假設在雜湊算力增加的情況下,網路雜湊力也會增加(在完全競爭市場的假設)。

區塊獎勵翻倍將攻擊延遲了10個月。但是,每10個月增加區塊獎勵,這樣來永久推遲攻擊,代價非常昂貴。

總結

其實這個模式非常簡單,假設攻擊者最初有一定的算力,同時也能夠按照一定比例來增加算力,這會比現在礦工的算力呈指數級增加。這是可靠的假設,因為利潤和算力呈正比,並且因為這使得數學非常可行。

我們可以看到一些數字,究竟攻擊者需要幾個月,才可以在給定的a值下,完成攻擊,而且如果增加區塊獎勵,他們的攻擊會被延遲多久。 所以,很明顯如果增加區塊獎勵,在這個模型中,是可以增加網路的安全性。假設,礦工不會和攻擊者合作,而且攻擊者會購買雜湊算力來進行網路攻擊(不論他們是否會在購買後進行誠實挖礦)。

但是,這個模型能否真實使用,仍然需要證實。如果有人提出更加合理的a值,那麼就會更好了,當攻擊者嘗試不同的策略,都可以適用。 這些數字會幫助我們思考有多少安全礦工在抵禦這些不和礦工合作的攻擊者。

原文:https://medium.com/@Vlad_Zamfir/simple-model-of-an-internal-pow-attacker-1a713cf00672
作者:Vlad Zamfir
編譯:nuszjj
稿源(譯):巴位元資訊(http://www.8btc.com/simple-model-of-an-internal-pow-attacker)複製程式碼

相關文章