在比特幣網絡中通過Sybil進行雙花攻擊(下)
雙花攻擊者可以通過組合Sybil攻擊來阻止塊傳播,并增加贏得挖礦競爭的概率,從而成功地發起了雙花攻擊。本文計算了這種新攻擊的成功可能性,并從經濟學的角度分析這種攻擊模型。將介紹攻擊者在各種情況下的收支平衡點,并演示攻擊的效果。
Introduction
在上一篇文章中介紹了一種新的組合攻擊模型。通過引入Sybil攻擊來影響比特幣節點之間的通信協議(即gossip協議)來增加塊傳播延遲。研究了在Sybil攻擊下成功進行雙花攻擊的可能性。研究取得了很好的結果,即只有比特幣網絡中32%的計算能力份額的攻擊者可以成功地雙花。
本文對該攻擊模型進行了經濟評估,以找到攻擊者的收支平衡點。通過總結盈虧平衡點的變化,可以清楚地發現在某些情況下,攻擊者為攻擊付出的代價很小,攻擊可以為攻擊者帶來豐厚的利潤。
Probability of Successful Attack
在本節中將針對提出的攻擊模型研究成功攻擊的可能性。使用下表中所示的一些參數來開發數學公式,這些公式的靈感來自中本聰的白皮書,Grunspan的著作[1]和Rosenfeld[2]的概率模型。

首先考慮以下兩種情況,攻擊者會成功進行雙花。一種是攻擊者以采礦速度α開采大于或等于S’z內誠實礦工開采的z區塊的區塊。在這種情況下,攻擊者追上了主鏈。另一種情況是,攻擊者在S’z內挖掘了k個區塊,并且他也有機會以概率Pz-k趕上差距z-k。通過總結這兩種情況,可以獲得擬議的攻擊成功的概率P:

在這里應該注意的是攻擊者想要追求的目標。根據PoW中最長的鏈原理,無論網絡中有多少鏈分叉,主鏈都是最長的鏈。換句話說,主鏈是具有最大累積計算能力的鏈。現在需要找出攻擊者在S’z內創建k個塊的概率Pr[Xz = k]。攻擊者的挖掘過程與不使用Sybil攻擊的情況不同。在塊傳播延遲的影響下,將一個塊添加到主鏈所花費的時間T’z肯定會增加。類似地,β必定會減小。先前假設Sybil節點嘗試在每個共識輪次中延遲塊傳播,以使d超過Δ。因此,在每個共識輪中,將一個區塊添加到主鏈的實際花費時間為:Tz +Δ。這樣就可以得到T’z的期望值:

其中α’與誠實礦工的計算能力有關,而α與攻擊者的計算能力有關。如前所述,一個礦工的計算能力在總計算能力中所占的比例等于其在整個網絡中總采礦速度的比例。然后有:

回想一下,除Sybil節點以外的所有節點都將參與塊挖掘。因此,網絡中的總挖掘速度等于攻擊者和誠實礦工的挖掘速度之和。有:

通過結合(3)和(4),可以得到:

但是,由于存在區塊鏈分叉,一些誠實節點的計算能力將被浪費。實際上E[Tz]不等于1 /α’,并且用于計算主鏈中PoW的哈希率會更慢。現在需要找到有效有助于主鏈的計算能力。根據下圖所示的Sybil節點的部署,每個S連接到兩個誠實節點。需要考慮兩種情況:

1)新區塊由HR開采:理想情況下,最多可能有2μN個誠實節點不會在共識回合中接收到塊信息(有時HS不可避免地會接收HR發送的塊信息,因此實際數目小于2μN),它們將開始下一個在分叉鏈上進行采礦和采礦。如果HR具有更大的計算能力,那么將浪費大約2μN誠實節點的計算能力。
2)新塊由HS開采:在這種情況下,HR可能不會在共識回合中收到區塊信息,他們將在分叉鏈中進行挖掘。但是,如果HR具有更大的計算能力,則分叉鏈將成為主鏈,將浪費近2μN的誠實節點的計算能力。
結合以上兩種情況可以推斷出,如果HR的計算能力大于或等于HS,則其計算能力被浪費的誠實節點數最多為2μN。在概率2的誠實節點的計算能力被浪費并且HR的計算能力大于或等于HS的假設下,對概率P進行以下計算。接下來,根據這個結論可以獲得計算能力被浪費的節點與所有誠實節點的比率δ。它遵循:

因為每個誠實節點都具有相同的計算能力,所以可以在p中獲得浪費的部分pwaste和有效部分p ?:

接下來修改(2),然后使用(5)和(7)獲得E[Tz]和E[T’z]的表達式。它遵循:

顯然,一個礦工的平均采礦時間和他的平均采礦速度是彼此的倒數。因此可以使用(9)中的E[T’z]表示增長率β。它遵循:

函數Pr[Xz = k]不是泊松分布,挖掘一個塊所花費的時間是無記憶的,并且總的挖掘時間具有伽馬分布,因此泊松分布系數中的時間變量t是具有伽馬分布而不是期望值的隨機變量。根據概率公式,分布函數可以表示為:

接下來,使用伽瑪分布和伽瑪函數的某些屬性來簡化(11),首先假設:

然后將(11)簡化為:

如上所示,在提出的攻擊模型中攻擊者的挖掘過程也是負二項式分布。已經知道概率Pr[Xz = k],計算Sybil攻擊成功雙花的概率的最后一步是確定攻擊者追上主鏈的概率(即Pz-k),即他開采了k個塊的情況。中本聰曾經研究過這個問題。他認為這個問題類似于賭徒的廢墟問題,可以通過使用馬爾可夫鏈的屬性來解決,但是在這里需要修改中本聰的公式。在假設情況下,攻擊者的挖礦速度不再與誠實礦工的挖礦速度相比,而是主鏈的增長率。因此,誠實礦工的采礦速度α’也被β所替代。它遵循:

公式(5),(10),(12)和(13)可用于對(1)進行簡化。因此,最終公式為:

其中:

設置Δ= 100 s來計算(14)以獲得擬議攻擊模型的P。將P與在中本聰的攻擊模型中成功進行雙花的概率(即在沒有任何攻擊的幫助下進行雙花的攻擊)進行比較。使用(14)并修改λ1和λ2的值,因為中本聰的攻擊模型沒有鏈叉和塊傳播延遲。

上圖(a)給出了比較結果,可以清楚地看到當q = 0.25時具有不同比率μ的結果。通常,隨著塊數z的增加,概率P降低。但是可以看到Sybil攻擊的效果。與沒有Sybil攻擊的情況(即中本聰模型)相比,概率P得到了顯著提高。即使在z等于10的情況下,當μ= 16%時P也會超過20%,而當μ= 20%時P也會接近50%。此外,很明顯地發現,Sybil節點的數量越多,攻擊成功的可能性就越大。請注意,μ= 20%的情況是攻擊的理論最佳效果。當μ= 20%時,HS具有與HR相同的計算能力。因此,可能存在兩條具有相同長度的叉狀鏈。攻擊者想要追上的目標始終是最長的鏈。當μ增加時,攻擊者追求的目標成為HS創建的叉狀鏈。在這種情況下,將降低Sybil攻擊的影響,這解釋了為什么在假設μ≤20%的情況下執行P的計算。
圖(b)描繪了當z = 6(比特幣設置的安全塊數)時,在攻擊者不同的計算能力下P隨著μ的增加而變化。還顯示了可以徹底破壞比特幣區塊鏈的攻擊者計算能力q的最小值,可以發現q≥0.32的攻擊者在最多部署20%N個Sybil節點時具有100%成功攻擊的可能性,其中q = 0.32是銷毀比特幣的閾值區塊鏈。換句話說,擁有32%的計算能力足以成功重寫區塊鏈歷史,這遠低于中本聰提出的q = 50%和Decker [3]提出的q = 49.1%。因此,結合以上分析得出結論,Sybil攻擊可以大大提高雙花攻擊的效果。
Economic Evaluation
在本節中通過計算攻擊者的收益和損失對攻擊模型進行收支平衡分析。通過這種經濟分析,還提供了一種從挖掘博弈雙方的角度評估攻擊模型的方法:對于攻擊者,他們如何才能在提議的攻擊中最大程度地獲利?對于誠實的礦工,他們如何減少攻擊者的攻擊欲望?
通過以下假設簡化此復雜的經濟問題:
1)攻擊者想要獲得的商品的價值為v,假設此價值對于商家和攻擊者都是相同的。
2)眾所周知,如果雙花攻擊成功,攻擊者將獲得商品價值而無需支付v。此外,如果攻擊失敗,攻擊者仍將獲得v,而他必須將v支付給商家以購買這種商品。
3)此外,攻擊者還將在自己的分支上支付開采區塊的費用。假設攻擊者挖掘一個區塊的成本等于每個區塊的獎勵。挖掘區塊的成本是每個區塊的獎勵與區塊數量的乘積。因此,在贏得競爭的情況下攻擊者將發布自己的區塊,并獲得自己的全部區塊獎勵,從而抵消了采礦成本。相反,如果攻擊者失敗,則他所開采的所有區塊將被拒絕,他將失去這些區塊的全部獎勵。
在k<z的情況下,很難估算成功完成攻擊后花費的時間和攻擊者開采的區塊數,所以確定了經濟評估的范圍是攻擊者的收支平衡點在S’z時間內,商家等待z確認。現在開始計算攻擊者的費用,用O表示攻擊者在商人等待z確認之時所開采的區塊數量的期望值。令r表示每個區塊獎勵。如果攻擊者失敗(概率為1-P),他將損失S’z內的總值v + Or。因此,他在S’z內的攻擊代價為:

無論攻擊者成功與否,他的獎勵總是v,很容易得出攻擊者的利潤公式:

可以使用前面提到的一些已知變量來表示O。O等于每單位時間開采的塊數的期望值乘以S’z的預期值(每單位時間開采的塊數和S’ z是獨立隨機變量)。每單位時間開采的區塊數量的預期值實際上是攻擊者的平均開采速度α。因此剩下的問題是S’z的期望值的計算。已經從(9)知道了T’z的期望值,因此E [S’z]等于誠實礦工在S’z倍數E [T’z]中開采的區塊數。它遵循:

接下來,可以通過使用(18)來簡化(16):

其中r設置為12.5BTC,τ0設置為600s。攻擊者的收支平衡點是一種情況,即他的成本等于其收入,因此將π設置為0。然后可以得到攻擊者的收支平衡點的表達式:

通過計算(20)可以得出攻擊者在q = 0.25時隨著μ和z的增加而達到的盈虧平衡點。設置變量的范圍,以使塊數z從2到10,步長為2,并且Sybil節點的比率μ從6到20%,步長為0.02,收支平衡點的不同結果顯示在下表中。

從表中可以輕松地發現,在Sybil節點μ的任何比率下,盈虧平衡點都隨著z的增長而急劇增加。下圖(a)和(b)在q = 0.25和q = 0.3的情況下更直觀地表明了這一變化。顯然,商家花費在等待確認上的時間越長,成功攻擊的可能性就越低。此外,下圖還說明了在任何z下,盈虧平衡點隨著μ和q的增長而穩定下降。通常,與不使用Sybil攻擊的情況相比,攻擊者通過部署多個Sybil節點更容易獲利。

為了從攻擊中獲利,攻擊者需要確保其收入大于收支平衡點。因此,當他的收支平衡點低時,從進攻中受益很容易。在計算成功攻擊概率的討論中,已經了解到概率P將隨著μ的增長而增加。這意味著如果攻擊者以較高的概率P成功進行了攻擊,則他將有更大的機會來抵消其挖掘成本。因此如果P高,則攻擊者的收支平衡點將非常低,這對他有利。總之在Sybil攻擊的影響下,雙花攻擊的成功概率不僅增加,而且攻擊者也有很大機會獲得豐厚的利潤。根據所示的結果可以知道,誠實的礦工可以延長等待的區塊確認數量,也可以增加商品價值,由于攻擊者的高成本和低利潤,迫使攻擊者放棄攻擊。
Conclution
在本文中提出了一種組合攻擊模型,該模型使用Sybil攻擊來提高比特幣網絡中雙花成功的可能性。一名攻擊者可以創建許多具有多個偽身份的Sybil節點,以延遲有效塊的傳播,從而幫助他在與誠實礦工的挖礦競爭中占主導地位。同時在Sybil節點的影響下,將發生區塊鏈分叉,從而浪費了一些誠實節點的計算能力。
發現在任何情況下,提出的攻擊成功的可能性都比中本聰的攻擊模型大得多,并且比特幣網絡中32%的計算能力份額足以使攻擊者重寫區塊鏈歷史。此外,還從經濟學的角度分析了攻擊。結果表明,提出的攻擊還可以使攻擊者輕松獲利。建議是必須提高已確認塊數和商品價值,以防止攻擊者的惡意行為。