從世界杯小組賽消極比賽到礦工博弈及共識(shí)算法,博弈論解釋了一切區(qū)塊鏈
比特幣系統(tǒng)的安全性依賴于其自身所具有的穩(wěn)定的激勵(lì)規(guī)則,這個(gè)激勵(lì)系統(tǒng)所運(yùn)用的底層數(shù)據(jù)結(jié)構(gòu)是區(qū)塊鏈,區(qū)塊鏈中記錄了所有比特幣的交易記錄,因此區(qū)塊鏈可以被認(rèn)為是一個(gè)在分布式系統(tǒng)中維護(hù)的一個(gè)全局賬本。
博弈論被認(rèn)為是20世紀(jì)經(jīng)濟(jì)學(xué)最偉大的成果之一,其思想被廣泛的應(yīng)用到經(jīng)濟(jì)學(xué),政治學(xué),計(jì)算機(jī)科學(xué),生物學(xué),運(yùn)籌學(xué)等學(xué)科。通過(guò)分析博弈各方的收益情況而對(duì)參與者的行為進(jìn)行預(yù)測(cè),博弈論已經(jīng)被應(yīng)用于處理國(guó)際關(guān)系、研究軍事戰(zhàn)略、制定公司經(jīng)營(yíng)策略等領(lǐng)域。諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)獲得者約翰.納什(John F. Nash)在他的博士論文中提出的“納什均衡”概念,完全顛覆了傳統(tǒng)經(jīng)濟(jì)學(xué)家的固有觀念,因此“納什均衡”對(duì)經(jīng)濟(jì)學(xué)的影響被類比為“DNA雙螺旋結(jié)構(gòu)對(duì)生物科學(xué)的影響”。納什均衡提供了一種分析社會(huì)和經(jīng)濟(jì)參與者行為的工具,安比(SECBIT)實(shí)驗(yàn)室的研究員利用均衡的概念來(lái)揭示世界杯比賽中消極比賽、比特幣系統(tǒng)中礦工挖礦博弈,以及共識(shí)系統(tǒng)所面臨的挑戰(zhàn)背后所蘊(yùn)含的均衡模型。
6月26日,第21屆世界杯小組賽C組法國(guó)對(duì)戰(zhàn)丹麥隊(duì)的比賽由于兩個(gè)國(guó)家隊(duì)踢默契球而引起了球迷的抱怨,安比(SECBIT)實(shí)驗(yàn)室的研究人員通過(guò)博弈論的分析方法來(lái)討論比賽規(guī)則對(duì)球隊(duì)行為的影響,從而說(shuō)明規(guī)則會(huì)影響參與者的行為。接著,我們描述了在比特幣挖礦的情境下,礦池之間存在的博弈現(xiàn)象。最后,我們討論了比特幣系統(tǒng)共識(shí)算法所面臨的潛在威脅。通過(guò)對(duì)這些實(shí)例的分析,安比(SECBIT)實(shí)驗(yàn)室希望將博弈論的思想引用到智能合約的部署中,當(dāng)開(kāi)發(fā)人員在設(shè)計(jì)有多個(gè)參與者參加的智能合約時(shí),通過(guò)添加智能合約的博弈論屬性來(lái)預(yù)測(cè)參與者的行為。
世界杯消極比賽與重復(fù)剔除的占優(yōu)戰(zhàn)略均衡
在世界杯小組賽中,每個(gè)小組有4支球隊(duì),通過(guò)互相比賽最終兩支獲得最高分?jǐn)?shù)的球隊(duì)出線進(jìn)入下一輪,小組賽的得分規(guī)則是:贏一場(chǎng)得3分,平局的話兩隊(duì)各得1分,輸?shù)年?duì)伍得0分。如果兩支隊(duì)伍積分相等,出線隊(duì)伍通過(guò)比較凈勝球和紅黃牌數(shù)量來(lái)決定。
世界杯C組有四支隊(duì)伍:法國(guó),丹麥,秘魯和澳大利亞。在法國(guó)隊(duì)和丹麥隊(duì)比賽之前,法國(guó)隊(duì)已經(jīng)戰(zhàn)勝澳大利亞和秘魯,得到了6分,丹麥隊(duì)?wèi)?zhàn)勝秘魯,打平澳大利亞積4分,澳大利亞積1分,秘魯兩場(chǎng)全輸積0分。具體賽況如下圖所示。
C組還剩下兩場(chǎng)比賽,分別是丹麥對(duì)戰(zhàn)法國(guó),澳大利亞對(duì)戰(zhàn)秘魯。
在這個(gè)前提下,我們畫(huà)了下面的收益圖來(lái)表示丹麥對(duì)戰(zhàn)法國(guó)的比賽的可能結(jié)果。
在上圖中,有兩個(gè)參賽隊(duì)伍法國(guó)和丹麥,每個(gè)參賽隊(duì)伍有兩個(gè)策略:積極比賽和消極比賽。消極比賽中,每個(gè)球隊(duì)的重點(diǎn)不在于如何積極地發(fā)動(dòng)進(jìn)攻獲得進(jìn)球,而是將比賽的重心放在如何消磨時(shí)間上,比如持續(xù)在后場(chǎng)傳球。還有就是派遣替補(bǔ)隊(duì)員上場(chǎng),讓主力球員休息從而避免意外受傷。
在這張圖表中有四個(gè)狀態(tài)組合,第一個(gè)狀態(tài)(積極,積極)表示兩個(gè)隊(duì)都積極地應(yīng)對(duì)比賽,這個(gè)狀態(tài)下丹麥隊(duì)的收益是 ( 0.75 - ε ),( 0.75 ) 表示丹麥隊(duì)有較大的可能性出線,ε 是一個(gè)很小的小數(shù),它表示的意思是隊(duì)伍中的隊(duì)員由于獲得黃牌或者受傷而需要付出的代價(jià)。法國(guó)隊(duì)的收益是( 1 - ε ),這表示雖然法國(guó)隊(duì)出線了,但是球隊(duì)隊(duì)員由于受傷或者黃牌而導(dǎo)致收益下降。
第二個(gè)狀態(tài)(積極,消極)表示丹麥隊(duì)積極比賽,而法國(guó)隊(duì)消極比賽,在這種情況下,丹麥隊(duì)獲勝的可能性大大的增加,但是由于需要付出相應(yīng)的代價(jià),丹麥隊(duì)的收益成為( 1 - ε )。法國(guó)隊(duì)由于以前的兩場(chǎng)比賽均獲得了勝利,因此無(wú)論這場(chǎng)比賽是輸是贏都會(huì)出線,因此法國(guó)隊(duì)的收益為1.
第三個(gè)狀態(tài)(消極,積極)表示丹麥隊(duì)消極比賽而法國(guó)隊(duì)積極比賽,這樣丹麥隊(duì)輸?shù)舯荣惖母怕屎艽螅欠癯鼍€會(huì)受到澳大利亞和秘魯比賽結(jié)果的影響,因此我們?cè)O(shè)置其收益為( 0.5 ),與此同時(shí),由于法國(guó)隊(duì)積極比賽會(huì)付出代價(jià),因此法國(guó)隊(duì)的收益為( 1 - ε )。
第四個(gè)狀態(tài)(消極,消極)表示兩隊(duì)都消極比賽,在此狀態(tài)下,由于平局兩隊(duì)都可以增加積分,這樣無(wú)論澳大利亞和秘魯?shù)谋荣惤Y(jié)果如何,法國(guó)和丹麥都會(huì)出線,因此我們?cè)O(shè)置兩隊(duì)的收益都為1.
觀察本次比賽的收益圖可以發(fā)現(xiàn),對(duì)于法國(guó)隊(duì)而言,無(wú)論采取什么策略都可以出線,但是積極比賽會(huì)讓其損失 ε 的收益。因此消極比賽是法國(guó)隊(duì)的占優(yōu)戰(zhàn)略。我們假設(shè)法國(guó)隊(duì)是理性的,因此法國(guó)隊(duì)會(huì)剔除自己的劣勢(shì)策略:“積極”,而選擇對(duì)自己最有利的策略:消極比賽。我們同樣假定丹麥隊(duì)是理性的,他會(huì)正確的預(yù)測(cè)到法國(guó)隊(duì)會(huì)選擇消極比賽,在此狀況下,丹麥隊(duì)獲得最大收益的策略也是消極比賽。在實(shí)際比賽中,法國(guó)隊(duì)讓替補(bǔ)隊(duì)員首發(fā)上場(chǎng)比賽,這無(wú)疑給了丹麥隊(duì)一個(gè)消極比賽的信號(hào),因此丹麥隊(duì)會(huì)做出消極比賽的決定。
在本次博弈中,狀態(tài)(消極,消極)是一個(gè)納什均衡狀態(tài)。
納什均衡:在一個(gè)狀態(tài)下,沒(méi)有一個(gè)參與者可以在獨(dú)自改變策略的情況下增加自己的收益。
接下來(lái)我們將會(huì)運(yùn)用相同的分析方式來(lái)描述比特幣挖礦系統(tǒng)中所存在的均衡現(xiàn)象。
礦工博弈
比特幣系統(tǒng)的安全性依賴于其自身所具有的穩(wěn)定的激勵(lì)規(guī)則,這個(gè)激勵(lì)系統(tǒng)所運(yùn)用的底層數(shù)據(jù)結(jié)構(gòu)是區(qū)塊鏈,區(qū)塊鏈中記錄了所有比特幣的交易記錄,因此區(qū)塊鏈可以被認(rèn)為是一個(gè)在分布式系統(tǒng)中維護(hù)的一個(gè)全局賬本。由于區(qū)塊鏈的開(kāi)放性,任何人都可以加入到這個(gè)系統(tǒng)中,比特幣系統(tǒng)中的參與者(即礦工),需要通過(guò)提供代價(jià)高昂的計(jì)算來(lái)提供工作量證明(Proof of Work)來(lái)產(chǎn)生新的區(qū)塊,礦工產(chǎn)生新的區(qū)塊的過(guò)程被稱為挖礦。當(dāng)一個(gè)礦工完成了比特幣系統(tǒng)所要求的工作量證明,一個(gè)新的區(qū)塊會(huì)被添加到原有的區(qū)塊鏈當(dāng)中,提供工作量證明的礦工會(huì)得到相應(yīng)的比特幣獎(jiǎng)勵(lì)。隨著比特幣系統(tǒng)的發(fā)展,其中所運(yùn)用的激勵(lì)規(guī)則被認(rèn)為是穩(wěn)定且可擴(kuò)展的。
由于比特幣的市值很高,越來(lái)越多的礦工加入到挖礦的隊(duì)列,為了保證每個(gè)區(qū)塊的創(chuàng)立時(shí)間保持基本恒定(每10分鐘產(chǎn)生一個(gè)新的區(qū)塊),比特幣系統(tǒng)在不斷地調(diào)整挖礦的難度。因此計(jì)算能力小的礦工很難依靠自己的算力生成新的區(qū)塊,這就導(dǎo)致礦工會(huì)選擇加入其它挖礦的機(jī)群,從而聚集成一個(gè)礦池一起進(jìn)行挖礦,如果這個(gè)礦池成功的生成一個(gè)新的區(qū)塊,即完成工作量證明(Proof of Work),這個(gè)區(qū)塊所得到的比特幣獎(jiǎng)勵(lì)會(huì)根據(jù)每個(gè)礦工的貢獻(xiàn)進(jìn)行分配。
在一個(gè)礦池中,會(huì)有一個(gè)管理員和諸多礦工,管理員負(fù)責(zé)分配和監(jiān)督礦工進(jìn)行工作。如果有一個(gè)礦工完成了一個(gè)工作量證明(Proof of Work),管理員會(huì)將其發(fā)布到網(wǎng)絡(luò)中并且將新區(qū)快添加到區(qū)塊鏈中。為了對(duì)礦工進(jìn)行管理,管理員每隔一段時(shí)間會(huì)要求礦工礦工向其提交部分工作量證明(partial Proof of Work)。通過(guò)這個(gè)檢查機(jī)制,管理員一方面可以確認(rèn)所有的礦工都在為挖礦而工作,另一方面也可以評(píng)估每個(gè)礦工的工作量,從而計(jì)算礦工的收益。有些礦池為了增加自己的算力,會(huì)公開(kāi)自己的服務(wù)器接口,其他礦工只需要注冊(cè)便可以加入礦池,接收挖礦任務(wù),進(jìn)而發(fā)送工作量證明給管理員,當(dāng)這個(gè)礦池創(chuàng)造出新的區(qū)塊,每個(gè)礦工根據(jù)自己貢獻(xiàn)的大小獲得利潤(rùn)分成。
區(qū)塊截留攻擊
在正常狀況下,不同的礦池各自獨(dú)立挖礦,獨(dú)自分享挖礦的收益。然而,一個(gè)礦池(A)可以對(duì)另一個(gè)礦池(B)發(fā)動(dòng)攻擊,礦池A將其中的一部分礦工注冊(cè)到礦池B,這些礦工像正常礦工一樣接收礦池B管理員所分發(fā)的挖礦任務(wù),然后入侵的礦工會(huì)開(kāi)始挖礦,如果他們完成了部分工作量證明任務(wù),他們會(huì)將這些信息發(fā)送給管理員。但是,如果他們完成了一個(gè)完整的工作量證明,他們會(huì)選擇丟棄該信息,拒絕向管理員發(fā)送工作量證明。由于入侵礦工會(huì)向管理員發(fā)送部分工作量證明,他們會(huì)被管理員認(rèn)定為正常礦工,并且在該礦池其他礦工創(chuàng)建新的區(qū)塊鏈的時(shí)候得到利潤(rùn)分成,因此攻擊者可以獲得被入侵的礦池的收益。一個(gè)礦池可以通過(guò)比較期望收益和實(shí)際收益的差異來(lái)確定自己是否受到攻擊,但是由于每個(gè)礦工所要完成的部分工作量證明的任務(wù)相對(duì)較小,礦池管理員很難判斷出到底是哪個(gè)礦工發(fā)起了攻擊。
為了衡量一個(gè)礦池的挖礦效率,我們提出了一個(gè)衡量標(biāo)準(zhǔn):
收益密度:一個(gè)礦池的收益密度是礦池中每個(gè)礦工的平均收益與每個(gè)礦工單獨(dú)挖礦所獲得收益的比率。
顯而易見(jiàn),一個(gè)礦池的收益密度越高,其獲得的收益就相對(duì)更多。一個(gè)沒(méi)有受到攻擊的礦池的收益密度是1,而一個(gè)受到攻擊的礦池的收益密度會(huì)小于1。
現(xiàn)在我們構(gòu)建一個(gè)具有兩個(gè)礦池的博弈模型,在這個(gè)模型中,我們假設(shè)除了礦池A和礦池B之外的所有礦工均獨(dú)自挖礦。而且礦池A和礦池B的運(yùn)算能力并沒(méi)有超過(guò)整個(gè)系統(tǒng)中運(yùn)算能力的50%。每個(gè)礦池都可以設(shè)置自己的攻擊比率,即在自己所有的礦工中選擇一定數(shù)量的礦工作為入侵礦工,礦池可以根據(jù)自己的算力來(lái)調(diào)整自己的攻擊比率,從而最大化自己的收益。
我們?cè)O(shè)定ra為礦池A的收益密度,rb為礦池B的收益密度。rb‘是礦池B在受到礦池A攻擊而不做出反擊的情況下的收益密度,ra‘是礦池A在受到礦池B攻擊而不做出反擊的情況下的收益密度。
當(dāng)?shù)V池A受到礦池B的攻擊,其收益會(huì)下降,當(dāng)?shù)V池A發(fā)起反擊的時(shí)候,他的收益會(huì)上升,而礦池B的收益會(huì)下降。為了更直觀的表示兩個(gè)礦池的博弈過(guò)程,我們特意構(gòu)造了一個(gè)更為直接的博弈模型,見(jiàn)下圖:
在上圖所示的博弈中,對(duì)于礦池B而言,當(dāng)?shù)V池A選擇攻擊時(shí),礦池B同樣選擇攻擊會(huì)獲得0.8的收益密度,如果礦池B不選擇反擊,他只會(huì)獲得0.7的收益密度,所以當(dāng)?shù)V池A發(fā)動(dòng)攻擊時(shí),礦池B應(yīng)當(dāng)選擇反擊;當(dāng)?shù)V池A選擇不攻擊時(shí),如果礦池B選擇攻擊,他會(huì)獲得1.25的收益密度,這個(gè)收益要大于礦池B不攻擊的收益。因此對(duì)于礦池B而言,發(fā)動(dòng)攻擊是一個(gè)可以獲得高收益的優(yōu)勢(shì)策略。對(duì)于礦池A而言,重復(fù)上述分析,他的優(yōu)勢(shì)策略也是發(fā)動(dòng)攻擊。因此這個(gè)博弈存在一個(gè)占優(yōu)策略均衡,即狀態(tài)(攻擊,攻擊)。這個(gè)狀態(tài)也是一個(gè)納什均衡狀態(tài),也就是說(shuō),一方參與者獨(dú)自改變策略,不會(huì)增加自己的收益。
這個(gè)博弈模型是一個(gè)典型的囚徒困境模型,但是,由于挖礦行為是一直持續(xù)的行為,所以這個(gè)博弈可以無(wú)限次的重復(fù)發(fā)生,而囚徒困境只進(jìn)行了一次博弈。在這個(gè)模型中,相互發(fā)動(dòng)攻擊會(huì)造成雙方收益的下降,所以對(duì)于兩個(gè)礦池而言最好的狀態(tài)是達(dá)成默契互不攻擊(雖然單方攻擊可以提升收益,但是如果對(duì)方發(fā)動(dòng)反擊,雙方利益都會(huì)受損)。
當(dāng)博弈推廣到具有多個(gè)礦池的一般情況下,礦池之間互相發(fā)動(dòng)攻擊依然會(huì)造成收益下降;如果有礦池單方面發(fā)動(dòng)攻擊也會(huì)增加收益,但是有受到報(bào)復(fù)的風(fēng)險(xiǎn)。總而言之,受到攻擊的礦池挖礦的效率并沒(méi)有得到提升,并且由于其將利潤(rùn)分給了入侵礦工,原有的礦工收益會(huì)下降。發(fā)動(dòng)攻擊的礦池由于分散了一部分礦工進(jìn)行攻擊,其計(jì)算能力也會(huì)下降,但是由于入侵其他礦池,他會(huì)得到額外的收益。入侵行為會(huì)導(dǎo)致整個(gè)挖礦系統(tǒng)的算力縮減,進(jìn)一步會(huì)導(dǎo)致比特幣系統(tǒng)降低挖礦的難度。在實(shí)際挖礦中,礦場(chǎng)可以選擇建造自己私密的礦池,開(kāi)放的礦池可以選擇降低自己的規(guī)模,從而減少被攻擊的風(fēng)險(xiǎn)。上面所描述的博弈模型的數(shù)學(xué)推導(dǎo)可參考論文[1].
接下來(lái)我們討論比特幣系統(tǒng)中可能存在的另一種類型攻擊:賄賂攻擊。
賄賂攻擊者模型與共識(shí)算法
在這個(gè)模型中,我們假設(shè)有兩個(gè)候選人A與B,我們想要通過(guò)投票的方式從這兩個(gè)參與者之中選擇出一個(gè)優(yōu)勝者。每個(gè)參與投票的人可以投一票,最終獲得票數(shù)最多的候選人贏得勝利;投票給勝利者的候選人可以獲得1000人民幣的獎(jiǎng)勵(lì)。假設(shè)Bob是參與投票的參與者,其獲得的收益可以由下圖表示。
我們現(xiàn)在假設(shè)候選人B有很多預(yù)算,他準(zhǔn)備對(duì)投票的參與者發(fā)起賄賂,并且承諾付給投票給他的參與者(1000 ε )人民幣,通過(guò)賄賂的手段候選人B可以獲得勝利,ε 代表一個(gè)很小的小數(shù)。受到賄賂攻擊后的Bob收益如下。可以看到本輪博弈會(huì)產(chǎn)生新的均衡點(diǎn),即接受賄賂攻擊者選擇投票給賄賂者,由于會(huì)有較高的潛在收益,投票給賄賂者還是一個(gè)很穩(wěn)定的狀態(tài)。
比特幣系統(tǒng)同樣存在這樣的潛在攻擊威脅,一個(gè)攻擊者可以通過(guò)賄賂其他礦工來(lái)讓大家同意其挖掘的區(qū)塊。由于參與者眾多,賄賂其他礦工的成本太高(取得其他礦工的信任很難),現(xiàn)在的比特幣系統(tǒng)成功的避免了賄賂攻擊。關(guān)于賄賂攻擊的詳細(xì)討論可以參考以太坊的博客[3].
結(jié)語(yǔ)
通過(guò)上面的分析,安比(SECBIT)實(shí)驗(yàn)室的研究人員為世界杯上法國(guó)隊(duì)和丹麥隊(duì)的默契球比賽建立了一個(gè)博弈模型,并且根據(jù)模型分析了產(chǎn)生默契球比賽的原因。消極比賽的行為不僅存在于世界杯比賽,在奧運(yùn)會(huì)羽毛球比賽中也會(huì)發(fā)生消極比賽的狀況,相關(guān)報(bào)道可參考[2]。接下來(lái)的實(shí)例分析了在比特幣挖礦的場(chǎng)景下,礦池之間的博弈,雖然互相發(fā)動(dòng)攻擊是一個(gè)均衡狀態(tài),但是為了長(zhǎng)遠(yuǎn)的利益考慮,礦池之間通過(guò)達(dá)成互不攻擊的默契可以保證各方的共同利益。最后,我們又討論了比特幣共識(shí)算法所存在的潛在攻擊威脅,但是由于在現(xiàn)存系統(tǒng)中攻擊的成本太高,比特幣系統(tǒng)成功的避免了賄賂攻擊。
由于博弈論的廣泛應(yīng)用,已經(jīng)有很多數(shù)學(xué)家和經(jīng)濟(jì)學(xué)家獲得了諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng),例如,2012年諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)?lì)C發(fā)給了美國(guó)經(jīng)濟(jì)學(xué)家埃爾文·羅斯(Alvin E. Roth)與羅伊德·沙普利(Lloyd S. Shapley),以表彰他們創(chuàng)建穩(wěn)定分配理論和進(jìn)行市場(chǎng)設(shè)計(jì)的實(shí)踐。安比(SECBIT)實(shí)驗(yàn)室的研究員通過(guò)利用博弈論的分析工具對(duì)兩個(gè)不同場(chǎng)景(比賽及加密貨幣)下的活動(dòng)進(jìn)行建模,說(shuō)明了博弈論和納什均衡的概念及應(yīng)用。更進(jìn)一步,安比(SECBIT)實(shí)驗(yàn)室希望開(kāi)發(fā)人員在設(shè)計(jì)有多個(gè)用戶參與的智能合約的時(shí)候,可以運(yùn)用博弈論的分析工具對(duì)智能合約中的規(guī)則進(jìn)行分析和證明,從而引導(dǎo)參與者做出更有利于全體社會(huì)收益的行為。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為T(mén)MT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。