王 雷,任 南,李保珍
1.江蘇科技大學(xué) 經(jīng)濟(jì)管理學(xué)院,江蘇 鎮(zhèn)江212003
2.南京審計(jì)大學(xué) 國(guó)家審計(jì)大數(shù)據(jù)研究中心,南京 211815
雙花問題是指在數(shù)字貨幣系統(tǒng)中,由于數(shù)據(jù)的可復(fù)制性,存在同一筆數(shù)字資產(chǎn)因不當(dāng)操作被重復(fù)使用的情況。雙花攻擊曾經(jīng)是傳統(tǒng)在線支付中困擾多年的難題,Nakamoto提出的區(qū)塊鏈技術(shù)通過對(duì)每一個(gè)區(qū)塊加時(shí)間戳保證了交易記錄的真實(shí)性,一定程度上減小了雙花攻擊的概率[1]。但在基于POW(Proof Of Work)共識(shí)的區(qū)塊鏈中,挖礦節(jié)點(diǎn)通過工作量證明的方式競(jìng)爭(zhēng)記賬,如果節(jié)點(diǎn)占有超過全網(wǎng)50%的算力,就可以創(chuàng)造一條長(zhǎng)于公鏈的側(cè)鏈,使公鏈中的交易被回滾,借此完成雙重花費(fèi),這種雙花攻擊也叫51%雙花攻擊[2]。另外,Pinzón(2016)還提出了種族攻擊和芬妮攻擊兩種新的雙花攻擊,前者是通過給向自己支付的交易中加入更多的交易費(fèi)用實(shí)現(xiàn)雙花,后者則是通過控制區(qū)塊的廣播時(shí)間實(shí)現(xiàn)雙花[3]。隨著算力的市場(chǎng)流動(dòng)性越來(lái)越強(qiáng),節(jié)點(diǎn)現(xiàn)在可以通過租借、加入礦池等多種方式積攢算力,2018年比特幣黃金B(yǎng)TG(Bitcoin Gold)就遭到了51%雙花攻擊,惡意節(jié)點(diǎn)預(yù)先準(zhǔn)備了大量算力完成套現(xiàn),最終系統(tǒng)損失超過1 800萬(wàn)美元。因此雙花攻擊正成為區(qū)塊鏈中不可忽視的安全隱患。
針對(duì)這個(gè)問題,有學(xué)者從攻擊者的動(dòng)機(jī)和平臺(tái)的安全防控兩個(gè)角度對(duì)區(qū)塊鏈中不同的雙花攻擊進(jìn)行了研究。對(duì)于51%雙花攻擊的產(chǎn)生動(dòng)機(jī),Chaudhary運(yùn)用時(shí)間自動(dòng)機(jī)模型驗(yàn)證工具證明了比特幣中的51%雙花攻擊成功概率是比較高的[4];Liao提出少數(shù)攻擊者可以通過聯(lián)結(jié)理性節(jié)點(diǎn)的方法增加51%雙花攻擊成功的概率[5];Biais證明在交易價(jià)格滿足某些條件時(shí)嘗試51%雙花攻擊是有利可圖的,但要求投入大量的算力[6]。對(duì)于51%雙花攻擊的防控策略,Budish提出交易成本必須和節(jié)點(diǎn)攻擊可能獲取的最大利益呈正相關(guān)關(guān)系[7]。Westerlund提出通過主節(jié)點(diǎn)和礦工的雙層共識(shí)機(jī)制消除51%雙花攻擊[8]。Liu研究種族攻擊和芬妮攻擊,他認(rèn)為這兩種攻擊的對(duì)象都是接受零確認(rèn)的商家,只要在多次確認(rèn)的基礎(chǔ)上完成交易,便可有效規(guī)避風(fēng)險(xiǎn)[9]。
上述研究并未過多關(guān)注雙花攻擊中節(jié)點(diǎn)間的相互作用以及策略的動(dòng)態(tài)變化,不過一些學(xué)者已經(jīng)嘗試從博弈角度對(duì)區(qū)塊鏈中的另外一些安全問題進(jìn)行過分析。Kiayias曾經(jīng)指出,通過博弈方法研究區(qū)塊鏈中的安全問題,可以更深入的理解不同個(gè)體間如何競(jìng)爭(zhēng)與合作[10]。Sapirstein分析礦工聯(lián)合形成礦池進(jìn)行的自私采礦攻擊,并對(duì)區(qū)塊鏈底層協(xié)議做適當(dāng)改進(jìn)[11]。唐長(zhǎng)兵主要研究區(qū)塊鏈中的區(qū)塊截留攻擊,并提出基于零行列式的優(yōu)化方法[12]。Liu[13]和Easley[14]則分別把交易費(fèi)用作為礦工選擇礦池和算力競(jìng)爭(zhēng)問題中的重要因素進(jìn)行博弈分析。Abadi構(gòu)建博弈模型證明了POW共識(shí)不是激勵(lì)兼容的[15]。Liu提到可以基于波動(dòng)理論和混合策略博弈理論,找到防止區(qū)塊鏈網(wǎng)絡(luò)攻擊的最佳策略[16]。
區(qū)塊鏈中的雙花攻擊在本質(zhì)上是一個(gè)經(jīng)濟(jì)問題,節(jié)點(diǎn)間關(guān)于是否攻擊進(jìn)行博弈,選擇基于自身收益最大化的策略,節(jié)點(diǎn)的策略選擇相互之間也會(huì)產(chǎn)生影響。因此,本文選擇針對(duì)雙花攻擊中破壞力較強(qiáng)的51%雙花攻擊,構(gòu)建了節(jié)點(diǎn)群體的進(jìn)化博弈模型,以揭示節(jié)點(diǎn)策略的動(dòng)態(tài)演化趨勢(shì),并通過推導(dǎo)進(jìn)化博弈策略,預(yù)測(cè)51%雙花攻擊出現(xiàn)的概率;同時(shí),把交易價(jià)格和交易費(fèi)用作為進(jìn)化博弈模型中的兩個(gè)重要變量,探討變量在取值改變時(shí)對(duì)博弈結(jié)果產(chǎn)生的影響;最后,基于前面得到的結(jié)論,本文從交易費(fèi)用和交易價(jià)格兩個(gè)方面提出51%雙花攻擊的防控策略。
傳統(tǒng)博弈論采用“完全理性”的假設(shè),要求參與者有完美的判斷和預(yù)測(cè)能力,然而事實(shí)上個(gè)人決定容易犯錯(cuò),集體決策也經(jīng)常失準(zhǔn)[17]。針對(duì)這個(gè)問題,Smith[18]和Price結(jié)合達(dá)爾文的自然選擇理論創(chuàng)立了進(jìn)化博弈論,認(rèn)為參與博弈的個(gè)體是“有限理性”的。在進(jìn)化博弈論中,每個(gè)參與人都是重復(fù)從群體中隨機(jī)抽取對(duì)手并進(jìn)行博弈,參與人既可以通過自己的經(jīng)驗(yàn)獲得決策信息,也可以通過觀察其他參與人的決策并模仿而獲得決策信息。他們之間的策略均衡不是通過迅速的最優(yōu)化計(jì)算得到,而是需要經(jīng)歷一個(gè)學(xué)習(xí)調(diào)整的過程。進(jìn)化穩(wěn)定策略是進(jìn)化博弈論中的核心概念,是指如果群體中的大多數(shù)個(gè)體選擇進(jìn)化穩(wěn)定策略,那么小的突變者群體就不可能侵入到這個(gè)群體中,也代表系統(tǒng)此時(shí)處于進(jìn)化穩(wěn)定均衡。Taylor[19]之后提出了著名的復(fù)制動(dòng)態(tài)模型,用來(lái)描述單群體策略的動(dòng)態(tài)過程。隨著進(jìn)化博弈理論研究的深入,該理論在經(jīng)濟(jì)學(xué)、社會(huì)學(xué)、生態(tài)學(xué)領(lǐng)域都有非常廣泛的應(yīng)用。
51%雙花攻擊是區(qū)塊鏈中最為典型且破壞力較強(qiáng)的一種雙花攻擊,在這種攻擊中實(shí)際上也包含了一個(gè)關(guān)于進(jìn)化博弈的策略選擇和均衡問題。在區(qū)塊鏈系統(tǒng)中,所有節(jié)點(diǎn)組成一個(gè)節(jié)點(diǎn)群體,每個(gè)節(jié)點(diǎn)關(guān)于是否選擇51%雙花攻擊都擁有一個(gè)初始策略,之后節(jié)點(diǎn)重復(fù)從群體中隨機(jī)選取其他節(jié)點(diǎn)進(jìn)行博弈,在這個(gè)過程中采用策略收益較低的節(jié)點(diǎn)會(huì)改變自己的策略,轉(zhuǎn)向模仿有高收益的策略,而低收益的策略逐漸被淘汰,經(jīng)過這樣不斷的學(xué)習(xí)與調(diào)整后節(jié)點(diǎn)群體最終會(huì)達(dá)到一個(gè)均衡狀態(tài),即群體中的所有節(jié)點(diǎn)都選擇進(jìn)化穩(wěn)定策略。因此,本文構(gòu)建區(qū)塊鏈中51%雙花攻擊的進(jìn)化博弈模型,對(duì)節(jié)點(diǎn)策略的動(dòng)態(tài)進(jìn)化情況進(jìn)行分析。
首先與實(shí)際情況相結(jié)合,對(duì)于51%雙花攻擊模型做出如下假設(shè)條件:
(1)節(jié)點(diǎn)選擇攻擊時(shí)消耗的算力成本足夠大,足以使節(jié)點(diǎn)順利完成攻擊,并且兩個(gè)節(jié)點(diǎn)選擇攻擊時(shí)的算力成本相同。
(2)當(dāng)進(jìn)行博弈的兩個(gè)節(jié)點(diǎn)都選擇攻擊時(shí),為了減少各自的算力成本消耗,他們會(huì)選擇在同一條側(cè)鏈上合作挖礦。
(3)兩個(gè)節(jié)點(diǎn)購(gòu)買商品的價(jià)格,以及挖礦所獲得的交易費(fèi)用獎(jiǎng)勵(lì)和新幣獎(jiǎng)勵(lì)都是相同的。
(4)每個(gè)區(qū)塊都只包括一條交易記錄。
(5)不考慮由幣的市價(jià)變化引起的節(jié)點(diǎn)收益變化。
另外,本研究模型中的基本參數(shù)包括:參與者節(jié)點(diǎn)i和節(jié)點(diǎn)j;參與雙方的策略Si和Sj,可選的策略集均為{攻擊,不攻擊};初始狀態(tài)下選擇攻擊策略的概率為x(0≤x≤1),則選擇不攻擊策略的概率為1-x,進(jìn)化穩(wěn)定策略用x*表示;參與雙方的收益函數(shù)分別為Ui(Si,Sj),Uj(Si,Sj);參與雙方與第三方商家的交易分別為i1、j1,發(fā)送給自己的用于雙重支付的交易分別為i2、j2,無(wú)i和j參與的其他交易用k表示;第三方商家商品的價(jià)格為p;對(duì)一個(gè)區(qū)塊進(jìn)行挖礦消耗的算力成本為h;挖礦獲得的獎(jiǎng)勵(lì)包括:每筆交易中由交易發(fā)起人承擔(dān)的交易費(fèi)用f,每個(gè)區(qū)塊產(chǎn)生后由系統(tǒng)發(fā)放的新幣b?;诓┺碾p方不同的策略組合,節(jié)點(diǎn)的收益會(huì)是由p、h、f、b組合而成的函數(shù)。
兩個(gè)節(jié)點(diǎn)基于是否進(jìn)行51%雙花攻擊的問題進(jìn)行博弈,策略組合包括以下四種情況:Si=攻擊,Sj=攻擊;Si=攻擊,Sj=不攻擊;Si=不攻擊,Sj=攻擊;Si=不攻擊,Sj=不攻擊。
(1)當(dāng)i和j都選擇攻擊時(shí),i從第三方商家購(gòu)買某商品價(jià)格為p,另外支付交易費(fèi)用f廣播到網(wǎng)絡(luò)中,交易會(huì)被挖礦節(jié)點(diǎn)記錄到公鏈上;接著i重復(fù)利用上筆交易(i1)中的幣p發(fā)送給自己,并投入較高的算力成本h在另一條側(cè)鏈中挖礦,將這筆交易(i2)記錄在側(cè)鏈中,i作為礦工獲得相應(yīng)的交易費(fèi)用與新幣獎(jiǎng)勵(lì);之后i繼續(xù)在這條側(cè)鏈上挖礦,并獲得相應(yīng)的獎(jiǎng)勵(lì);j也選擇攻擊,并且與i選擇同一條側(cè)鏈,攻擊流程與i完全相同。由于i和j在算力方面的優(yōu)勢(shì),最終通過合作挖礦使側(cè)鏈的長(zhǎng)度超過公鏈,兩者第一筆交易消費(fèi)的金額p都回到自己賬戶,商品也在自己手中,因此i、j分別完成雙花攻擊。具體流程如圖1(a)。
節(jié)點(diǎn)i的收益由以下幾部分組成:交易i1中獲取的商品價(jià)格p,支付的交易費(fèi)用f;交易i2中支付的交易費(fèi)用f,通過挖礦獲取的交易費(fèi)用獎(jiǎng)勵(lì)f和新幣獎(jiǎng)勵(lì)b,消耗的算力成本h;對(duì)網(wǎng)絡(luò)中的其他交易k挖礦獲取的獎(jiǎng)勵(lì)f+b,消耗算力成本h。
綜上,節(jié)點(diǎn)i的收益:Ui(攻擊,攻擊)=p+2b-2h,節(jié)點(diǎn)j的收益與i完全相同:Uj(攻擊,攻擊)=p+2b-2h。
(2)當(dāng)i選擇攻擊,j選擇不攻擊時(shí),i和j分別從商家購(gòu)買價(jià)格為p的商品,并支付交易費(fèi)用f后被礦工記錄到公鏈上;接著i重復(fù)利用上筆交易(i1)中的幣p發(fā)送給自己,并通過挖礦將這筆交易(i2)記錄在側(cè)鏈中,作為礦工獲得相應(yīng)的獎(jiǎng)勵(lì);之后i繼續(xù)挖礦并將j的交易(j1)和其他交易k記錄在側(cè)鏈中,并獲得相應(yīng)的獎(jiǎng)勵(lì)。最終側(cè)鏈長(zhǎng)度超過公鏈,i第一筆交易(i1)的金額p回到自己賬戶,i完成雙花攻擊。具體流程如圖1(b)。
節(jié)點(diǎn)i的收益由以下幾部分組成:交易i1中獲取的商品價(jià)值p,支付的交易費(fèi)用f;交易i2支付的交易費(fèi)用f,通過挖礦獲取的獎(jiǎng)勵(lì)f+b,消耗算力成本h;交易i1中獲取的獎(jiǎng)勵(lì)f+b,消耗算力成本h;其他交易k中獲取的獎(jiǎng)勵(lì)f+b,消耗算力成本h。節(jié)點(diǎn)j的收益包括交易j1中支付的交易費(fèi)用f。
綜上,節(jié)點(diǎn)i的收益:Ui(攻擊,不攻擊)=p+f+3b-3h,節(jié)點(diǎn)j的收益:Uj(攻擊,不攻擊)=-f。
(3)當(dāng)i選擇不攻擊,j選擇攻擊時(shí),情況與(2)正好相反。
節(jié)點(diǎn)i的收益:Ui(不攻擊,攻擊)=-f,節(jié)點(diǎn)j的收益:Uj(不攻擊,攻擊)=p+f+3b-3h。
(4)當(dāng)i和j都選擇不攻擊時(shí),i和j各支付p購(gòu)買商品,并支付交易費(fèi)用f后被記錄到公鏈上,具體流程如圖1(c)。
圖1 雙花攻擊博弈流程圖
節(jié)點(diǎn)i的收益:Ui(不攻擊,不攻擊)=-f,節(jié)點(diǎn)j的收益:Uj(不攻擊,不攻擊)=-f。
綜上,節(jié)點(diǎn)i和j的收益矩陣見表1。
表1 51%雙花攻擊節(jié)點(diǎn)收益矩陣
根據(jù)收益矩陣,當(dāng)節(jié)點(diǎn)選擇攻擊策略時(shí),可以求出其期望收益為:
當(dāng)節(jié)點(diǎn)選擇不攻擊策略時(shí),其期望收益為:
節(jié)點(diǎn)選擇攻擊策略的概率為x,選擇不攻擊策略的概率為1-x,因此節(jié)點(diǎn)的平均期望收益為:
博弈類型動(dòng)態(tài)變化的速度取決于兩個(gè)因素,即可模仿對(duì)象數(shù)量的大?。ㄔ擃愋筒┺姆降谋壤┖湍7聦?duì)象的成功程度(該類型博弈方收益超過整體平均收益的幅度)[20]。由式(1)~(3)得到節(jié)點(diǎn)選擇攻擊策略的復(fù)制動(dòng)態(tài)方程為:位圖如圖3。博弈有兩個(gè)進(jìn)化穩(wěn)定策略,即x*1=0和x*2=1,博弈結(jié)果取決于x的大小,如果x位于區(qū)間
圖2 p<h-b時(shí)的動(dòng)態(tài)相位圖
由于在常見的區(qū)塊鏈平臺(tái)(比特幣BTC、比特現(xiàn)金B(yǎng)CH)中,新幣獎(jiǎng)勵(lì)一般幾年才變動(dòng)一次,因此本模型中假設(shè)新幣獎(jiǎng)勵(lì)b為定值,另外假設(shè)算力成本h也是足夠大的定值。將商品價(jià)格p和交易費(fèi)用f作為模型中的兩個(gè)變量,根據(jù)p和f的不同取值,節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略可分以下幾種情況進(jìn)行討論:不攻擊策略;相反,如果x位于區(qū)間1),則收斂到x*2=1,節(jié)點(diǎn)選擇攻擊策略。分界點(diǎn)越大,節(jié)點(diǎn)選擇攻擊策略的可能性越小。當(dāng)f≥時(shí),復(fù)制動(dòng)態(tài)相位圖與圖2(c)相同,x*=1是節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略,節(jié)點(diǎn)在長(zhǎng)期都會(huì)選
由于在復(fù)制動(dòng)態(tài)相位圖上,復(fù)制動(dòng)態(tài)曲線與橫坐標(biāo)軸相交并且交點(diǎn)處切線斜率為負(fù)的點(diǎn)就是進(jìn)化穩(wěn)定策略[21]。所以當(dāng)p<h-b且f≤時(shí),復(fù)制動(dòng)態(tài)相位圖如圖2(a),該博弈有唯一的進(jìn)化穩(wěn)定策略,即x*=0,表明節(jié)點(diǎn)在長(zhǎng)期都會(huì)選擇不攻擊策略。當(dāng)p<h-b且<2h-2b-p時(shí),如圖2(b),x*=是唯一的進(jìn)化穩(wěn)定策略。表明節(jié)點(diǎn)選擇攻擊策略的比例為,比例越小節(jié)點(diǎn)選擇攻擊策略的可能性就越小。當(dāng)p<h-b且f>2h-2b-p時(shí),如圖2(c),x*=1是進(jìn)化穩(wěn)定策略,表示即使有少量節(jié)點(diǎn)選擇不攻擊策略,隨著不斷的學(xué)習(xí)和調(diào)整,最終所有節(jié)點(diǎn)都會(huì)采取攻擊策略。
(2)在h-b<p<2h-2b條件下,分三種情況進(jìn)行分析,當(dāng)f<2h-2b-p時(shí),復(fù)制動(dòng)態(tài)相位圖與圖2(a)相同,x*=0是進(jìn)化穩(wěn)定策略,節(jié)點(diǎn)在長(zhǎng)期都會(huì)選擇不攻擊策略。當(dāng)2h-2b-p<f<時(shí),復(fù)制動(dòng)態(tài)相
圖3 h-b<p<2h-2b時(shí)的動(dòng)態(tài)相位圖
(4)在p>3h-3b條件下,無(wú)論f的取值是多少,復(fù)制動(dòng)態(tài)相位圖都和圖2(c)相同,x*=1是節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略,節(jié)點(diǎn)在長(zhǎng)期都會(huì)選擇攻擊策略。
綜上所述,當(dāng)交易價(jià)格和交易費(fèi)用處于不同區(qū)間時(shí),節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略如表2所示。
為了更直觀地體現(xiàn)節(jié)點(diǎn)進(jìn)行51%雙花攻擊意愿的進(jìn)化過程,本文使用Matlab軟件進(jìn)行仿真分析。首先對(duì)p、b、h、f進(jìn)行賦值,根據(jù)進(jìn)化博弈模型中得到的結(jié)論,并結(jié)合實(shí)際情況,本文將算力成本h和新幣獎(jiǎng)勵(lì)b分別設(shè)置為定值200元和80元,然后將交易價(jià)格p分為四種情況,在每種情況下交易費(fèi)用f有多種取值,具體賦值情況如表3所示。
表2 節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略分類情況
表3 關(guān)鍵參數(shù)賦值情況 元
2.3節(jié)中已經(jīng)得到了節(jié)點(diǎn)選擇策略的復(fù)制動(dòng)態(tài)方程:F(x)==x(1-x)[p+(3-x)b+(x-3)h+(2-x)f],把經(jīng)過賦值的p、b、h、f依次填入該方程形成節(jié)點(diǎn)策略迭代和進(jìn)化的函數(shù)。
接著在[0,1]區(qū)間內(nèi)以0.05為間隔,取20個(gè)不同的節(jié)點(diǎn)攻擊的初始概率值(0、0.05、0.1、0.15……),再設(shè)置所觀察節(jié)點(diǎn)攻擊概率變化的時(shí)間區(qū)間。根據(jù)節(jié)點(diǎn)策略迭代和進(jìn)化的函數(shù),以時(shí)間t為橫坐標(biāo),以節(jié)點(diǎn)選擇攻擊策略的概率x為縱坐標(biāo),繪制20種初始條件下節(jié)點(diǎn)攻擊意愿進(jìn)化情況的曲線。
然后根據(jù)交易價(jià)格和交易費(fèi)用的不同取值對(duì)每種情況下節(jié)點(diǎn)攻擊意愿的進(jìn)化情況進(jìn)行具體分析。
當(dāng)交易價(jià)格為60時(shí),p小于臨界值h-b。首先當(dāng)交易費(fèi)用f=200時(shí),節(jié)點(diǎn)的攻擊意愿進(jìn)化情況如圖4(a),可以看出進(jìn)化穩(wěn)定策略是x*=1,所有節(jié)點(diǎn)在長(zhǎng)期都會(huì)選擇攻擊策略。接著減少交易費(fèi)用使f<2h-2b-p,當(dāng)f=170時(shí)的節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖4(b),進(jìn)化穩(wěn)定策略是x*=4/5,表明會(huì)有4/5的節(jié)點(diǎn)選擇攻擊策略,1/5的節(jié)點(diǎn)選擇不攻擊策略,此時(shí)攻擊概率仍然較高。進(jìn)一步減少交易費(fèi)用使f=100,節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖4(c),此時(shí)節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略變?yōu)閤*=0,無(wú)論節(jié)點(diǎn)選擇不同策略的初始比例是多少,最終所有節(jié)點(diǎn)都會(huì)選擇不攻擊策略。
圖4 交易價(jià)格在最小區(qū)間的攻擊意愿進(jìn)化情況
當(dāng)交易價(jià)格為200時(shí),p大于臨界值h-b,小于臨界值2h-2b。首先當(dāng)交易費(fèi)用f=100時(shí),節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖5(a),進(jìn)化穩(wěn)定策略是x*=1,所有節(jié)點(diǎn)都會(huì)選擇攻擊策略。減少交易費(fèi)用使當(dāng)f=70時(shí)節(jié)點(diǎn)的攻擊意愿進(jìn)化情況如圖5(b),此時(shí)的進(jìn)化穩(wěn)定策略取決于x的初始值,x<2/5時(shí)所有節(jié)點(diǎn)都會(huì)選擇不攻擊策略,相反會(huì)選擇攻擊策略。進(jìn)一步減少交易費(fèi)用,f=20時(shí)的節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖5(c),可以看出節(jié)點(diǎn)的進(jìn)化穩(wěn)定策略變?yōu)閤*=0,節(jié)點(diǎn)都會(huì)選擇不攻擊策略。
當(dāng)交易價(jià)格為280時(shí),p大于臨界值2h-2b,小于臨界值3h-3b。首先當(dāng)交易費(fèi)用f=60時(shí),節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖6(a),此時(shí)的進(jìn)化穩(wěn)定策略是x*=1,節(jié)點(diǎn)都會(huì)選擇攻擊策略。減少交易費(fèi)用使f<,f=20時(shí)節(jié)點(diǎn)的攻擊意愿進(jìn)化情況如圖6(b),此時(shí)進(jìn)化穩(wěn)定策略取決于x的初始值,x<2/5時(shí)所有節(jié)點(diǎn)都會(huì)選擇不攻擊策略,相反會(huì)選擇攻擊策略。
當(dāng)交易價(jià)格為400時(shí),p大于臨界值3h-3b,首先當(dāng)交易費(fèi)用f=100時(shí)節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖7(a),此時(shí)的進(jìn)化穩(wěn)定策略是x*=1。減少交易費(fèi)用至f=50,節(jié)點(diǎn)攻擊意愿進(jìn)化情況如圖7(b),進(jìn)化穩(wěn)定策略還是x*=1。因此無(wú)論交易費(fèi)用f為多少,節(jié)點(diǎn)最終都會(huì)選擇攻擊策略。
圖5 交易價(jià)格在第二區(qū)間的攻擊意愿進(jìn)化情況
圖6 交易價(jià)格在第三區(qū)間的攻擊意愿進(jìn)化情況
圖7 交易價(jià)格在最大區(qū)間的攻擊意愿進(jìn)化情況
經(jīng)過上述仿真實(shí)驗(yàn)可以看出,當(dāng)交易價(jià)格和交易費(fèi)用取不同值時(shí),實(shí)驗(yàn)結(jié)果與進(jìn)化博弈模型中的結(jié)論完全吻合。
通過對(duì)區(qū)塊鏈中的51%雙花攻擊進(jìn)行進(jìn)化博弈分析,本文揭示了51%雙花攻擊的內(nèi)在機(jī)理,基于相關(guān)內(nèi)在機(jī)理,嘗試提出如下風(fēng)險(xiǎn)防控策略:
(1)平臺(tái)調(diào)控與市場(chǎng)調(diào)節(jié)相結(jié)合
對(duì)于比特幣、以太坊這些知名的區(qū)塊鏈平臺(tái),交易費(fèi)用都是由礦工和交易發(fā)起者自愿決定的,屬于市場(chǎng)調(diào)節(jié)機(jī)制,然而這種方法會(huì)造成交易費(fèi)用的極不穩(wěn)定,為節(jié)點(diǎn)進(jìn)行51%雙花攻擊提供了機(jī)會(huì)。為了有效抑制51%雙花攻擊的出現(xiàn),平臺(tái)需要制定嚴(yán)格的交易費(fèi)用標(biāo)準(zhǔn)。對(duì)于不同交易價(jià)格的交易,都要設(shè)定相應(yīng)的交易費(fèi)用最大值,交易發(fā)起者需在規(guī)定的范圍內(nèi)支付交易費(fèi)用,這樣會(huì)使節(jié)點(diǎn)基于收益最大化的考慮趨向于選擇不攻擊策略。此外,考慮到對(duì)礦工的激勵(lì),可由礦工來(lái)決定每筆交易的最低費(fèi)用。這種將平臺(tái)調(diào)控與市場(chǎng)調(diào)節(jié)相結(jié)合的方法,有利于在提高區(qū)塊鏈安全性的基礎(chǔ)上保證資源配置的效率。
(2)根據(jù)價(jià)格區(qū)間劃分相應(yīng)風(fēng)險(xiǎn)監(jiān)控等級(jí)
雖然規(guī)范交易費(fèi)用可以有效抑制51%雙花攻擊的出現(xiàn),但無(wú)法完全消除,因此需要制定平臺(tái)的監(jiān)督機(jī)制,制約和懲罰節(jié)點(diǎn)的惡意行為。根據(jù)前文得到的結(jié)論,不同交易價(jià)格區(qū)間節(jié)點(diǎn)攻擊意愿的進(jìn)化情況不同,受到抑制的效果也不同。因此可以基于不同價(jià)格將平臺(tái)中的交易劃分4個(gè)風(fēng)險(xiǎn)等級(jí),由低到高分別為:稍有危險(xiǎn)、一般危險(xiǎn)、高度危險(xiǎn)、極其危險(xiǎn)。風(fēng)險(xiǎn)等級(jí)更高的交易進(jìn)行攻擊的可能性更大,產(chǎn)生的危害也更大,需要對(duì)其進(jìn)行重點(diǎn)監(jiān)督。在監(jiān)督過程中收集和分析與風(fēng)險(xiǎn)相關(guān)的各種信息,預(yù)測(cè)可能發(fā)生的風(fēng)險(xiǎn),及時(shí)提出預(yù)警。對(duì)于已發(fā)生的攻擊行為,立即限制節(jié)點(diǎn)的交易和挖礦活動(dòng),并進(jìn)行處罰。這種方法可以更有效及時(shí)地減小51%雙花攻擊產(chǎn)生的危害。