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