周全興,李秋賢,樊玫玫
(1.凱里學(xué)院 大數(shù)據(jù)工程學(xué)院,貴州 凱里 556011; 2.貴州大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,貴陽 550025)
隨著新型委托計算[1]模式的興起,用戶不再受自身存儲、計算等能力限制,可以在任意時間和地點使用云計算服務(wù)完成龐大的計算任務(wù)。新型計算模式在給用戶帶來便利的同時,如何保證計算結(jié)果的隱私性、完整性與正確性成為其面臨的問題。傳統(tǒng)委托計算包括基于復(fù)雜性理論構(gòu)造的委托計算、基于安全硬件構(gòu)造的委托計算、基于密碼學(xué)技術(shù)構(gòu)造的委托計算3種方案。其中,基于復(fù)雜性理論構(gòu)造的計算方案包括交互式證明系統(tǒng)[2-3]、概率驗證證明(Probabilistically Checkable Proofs,PCP)技術(shù)[4-5]和基于隨機預(yù)言機的證明技術(shù)[6]等工具構(gòu)造方案。基于安全硬件構(gòu)造的計算方案從電子商務(wù)角度提出基于安全協(xié)議處理器的委托計算[7],該方案局限性在于其不能保證數(shù)據(jù)的隱藏性。基于密碼學(xué)技術(shù)構(gòu)造的計算方案包括全同態(tài)加密[8-9]、混淆電路[10]和同態(tài)MAC/簽名[11]等工具構(gòu)造方案。
在實際委托計算環(huán)境中,由于計算方具有自利性,因此其可能會偏離計算協(xié)議。例如,計算方希望通過投資更少計算資源與收取更多費用以提高收入,這使得委托方付出較大代價但得不到正確結(jié)果。計算方為從某種計算方式輸出中受益也可能嘗試修改特定結(jié)果。此外,委托方需要在計算協(xié)議中驗證結(jié)果正確性,從而降低了協(xié)議計算效率。為此,考慮將博弈理論和傳統(tǒng)委托計算相結(jié)合形成理性委托計算方案以解決此類問題。
理性委托計算屬于理性密碼學(xué)[12]研究范疇,其中,理性多方計算[13]、理性秘密共享[14]、理性安全通信[15]和理性交換協(xié)議[16]等已成為理性密碼協(xié)議的研究熱點。文獻[17]提出一種證明參與方為理性的系統(tǒng)。文獻[18]深入研究計算能力受限的理性Arguments,解決了秘密共享協(xié)議重建階段玩家不合作的問題。文獻[19]從理性角度分析安全通信問題,提出貝葉斯理性秘密共享方案。文獻[20]利用博弈論優(yōu)勢設(shè)計理性委托計算協(xié)議,該協(xié)議參與方達到帕累托最優(yōu)狀態(tài)。
本文提出一種基于智能合約的三方博弈防共謀理性委托計算協(xié)議。利用博弈論和信譽機制建立三方博弈委托計算模型,將計算結(jié)果交給信譽度較高的裁判方驗證,使理性參與方誠實對待計算任務(wù),采用基于以太坊區(qū)塊鏈的智能合約框架設(shè)計委托計算協(xié)議,以提高委托計算效率,并確保計算結(jié)果的正確性和可追溯性。
擴展式博弈G的表達式為:
G={P,S,u}
(1)
1個擴展式博弈是1個五元組,表示為:
P,Q,p,(Ii)i∈P,(≤i)i∈P
(2)
其中:P為參與方集合;p為參與方函數(shù),其賦予每個非終端序列(Q的元素)1個P的元素,Z為結(jié)果向量;Ii為參與方i∈P的信息集,其代表參與方進行選擇時已知的信息;≤i為參與方的偏好關(guān)系,每個i∈P都有Z上的1個偏好關(guān)系;Q為行動序列集合,且滿足如下性質(zhì):
1)空序列?∈Q。
1個擴展式博弈可視為1棵博弈樹,樹的邊和節(jié)點分別對應(yīng)博弈行動和行動序列,樹的根對應(yīng)空序列?。博弈開始于空序列?,結(jié)束于終端節(jié)點(樹葉)。當(dāng)?shù)竭_任意非終端行動序列q∈Q后,參與方從A(q)中選擇行動a,序列q被行動a擴展后,博弈歷史變?yōu)閝.a。當(dāng)1個行動序列q達到終端節(jié)點后,博弈結(jié)束。終端節(jié)點以收益向量標(biāo)識代表參與方間的偏好關(guān)系。
(3)
基于以太坊的智能合約[21]是定位于以太坊1個特定地址上的代碼和數(shù)據(jù)集合。智能合約記錄均寄存在區(qū)塊鏈中,當(dāng)觸發(fā)合約中某些條件后,定義在合約中的代碼將自主執(zhí)行,且執(zhí)行結(jié)果可溯源但不可更改。理想智能合約可視為1臺圖靈機,其按照預(yù)先編好的規(guī)則自動執(zhí)行程序,不受外界影響?;趨^(qū)塊鏈去中心化去信任的環(huán)境,各理性參與方在該環(huán)境中將實現(xiàn)智能合約。多個理性參與方創(chuàng)建智能合約后,在區(qū)塊鏈中發(fā)布其所創(chuàng)建的智能合約并按照預(yù)設(shè)條件執(zhí)行,將結(jié)果發(fā)布在區(qū)塊中。智能合約區(qū)塊鏈架構(gòu)[21]如圖1所示。
圖1 智能合約區(qū)塊鏈架構(gòu)Fig.1 Smart contract blockchain architecture
理性委托計算結(jié)合博弈論和委托計算思想,從參與方自利角度出發(fā),通過效用函數(shù)保障計算結(jié)果的可靠性。參與方根據(jù)激勵合約采取策略,在追求自身利益最大化的同時保證全局利益最優(yōu)化,從而達到貝葉斯納什均衡。本文結(jié)合博弈論與智能合約技術(shù)建立委托計算博弈模型,為理性委托計算協(xié)議的構(gòu)建和分析提供模型依據(jù)。
本文基于智能合約的三方博弈防共謀委托計算協(xié)議參數(shù)設(shè)置如表1所示。
表1 協(xié)議參數(shù)設(shè)置Table 1 Protocol parameter setting
在表1中,i={2,3}={C,R}為理性計算方和裁判方的計算成本。為使合約保持均衡,協(xié)議中部分參數(shù)遵循如下關(guān)系:
1)ri>ci,否則計算方與裁判方不會接受計算任務(wù)。
2)d>c2,當(dāng)押金足夠大時,激勵參與方總是誠實地計算函數(shù)。
3)b 4)b>t,否則裁判方不會執(zhí)行共謀協(xié)議。 5)m>e,n>e,否則計算方或裁判方將因計算本身價值過高而采取非合作行為。 在理性委托計算方案中,參與方的行為具有自利屬性,會盡量使自身收益達到最大。在理性委托計算方案中,參與方的效用根據(jù)其能否完整無誤完成計算任務(wù)來評估?;谪惾~斯博弈研究委托計算問題,根據(jù)擴展式博弈模型對理性委托計算協(xié)議機制建模,其中主要包括建模委托計算協(xié)議博弈的參與方集合、信息集、可行策略以及參與方效用函數(shù)等。 對理性委托計算協(xié)議的各參與方建模,在該系統(tǒng)中主要存在委托方D、計算方C和裁判方R3個參與方。由于理性委托計算無需再驗證結(jié)果,將裁判方R作為1個參與方以保證整個委托計算過程公平和結(jié)果正確,因此該理性委托計算博弈的參與方集合定義為P={D,C,R}。 在博弈模型中:委托方策略集為sD={sD1,sD2},sD1、sD2分別表示委托方選擇激勵和不激勵策略;計算方的策略集為sC={sC1,sC2},sC1、sC2分別表示計算方選擇誠實和不誠實策略;裁判方策略集為sR={sR1,sR2},sR1、sR2分別表示裁判方選擇合作和不合作策略。 在理性委托計算方案中,根據(jù)參與方是否正確完成計算任務(wù)衡量其效用函數(shù)。假設(shè)f為委托方發(fā)送給計算方的計算任務(wù),由于參與方均有理性,裁判方可能為更大利益選擇與計算方同盟而返回?zé)o效計算結(jié)果給委托方。向量Z=(zD,zC,zR)表示委托計算博弈的結(jié)果,且(zD,zC,zR)∈[0,1]3,當(dāng)zD=α、zC=β、zR=δ時:委托方最少以概率α選擇激勵計算方以完成計算任務(wù),并選擇激勵裁判公平對待計算結(jié)果;計算方最少以概率β誠實對待計算任務(wù),并將計算結(jié)果返還給裁判方與委托方;裁判方最少以概率δ選擇與委托方合作,并最多以概率1-δ選擇與計算方合作,這是因為如果裁判方被委托方發(fā)現(xiàn),則將面臨更多貨幣和信譽懲罰。 在本文方案中:委托方希望計算方能誠實計算委托的計算任務(wù),在結(jié)果向量Z=(zD,zC,zR)中表現(xiàn)為zC越大越好,該效用記為uD(zC);委托方希望裁判方選擇與其合作,公平對待計算任務(wù),在結(jié)果向量Z中表現(xiàn)為zR越大越好,該效用記為uD(zR);計算方希望委托方有最大獎勵激勵,在結(jié)果向量Z中表現(xiàn)為zD越大越好,該效用記為uC(zD);計算方希望裁判方能與其合作,返回?zé)o效結(jié)果給委托方以獲得更大效益,在結(jié)果向量Z中表現(xiàn)為zR越大越好,該效用記為uC(wR);裁判方希望委托方有最大獎勵激勵,在結(jié)果向量Z中表現(xiàn)為zD越大越好,該效用記為uR(zD);裁判方希望計算方選擇與其合作,并獲得來自計算方的額外獎勵,在結(jié)果向量Z中表現(xiàn)為zC越大越好,該效用記為uR(zC)。理性委托計算三方博弈支付矩陣分別如表2~表5所示。表5中裁判方合作與不合作策略是針對委托方而言。 表2 委托方與計算方之間的混合策略支付矩陣Table 2 Hybrid strategy payment matrix between delegation party and computing party 表3 委托方與裁判方之間的混合策略支付矩陣Table 3 Hybrid strategy payment matrix between delegation party and referee party 表4 計算方與裁判方發(fā)起合謀的混合策略支付矩陣Table 4 Mixed-strategy payment matrix initiated by the computing party and referee party 表5 委托方、計算方和裁判方之間博弈支付矩陣Table 5 Game payment matrix between delegation party,computing party and referee party 基于智能合約的三方博弈防共謀委托計算協(xié)議的安全性與參與方效用函數(shù)密切相關(guān)。參與方為獲得最大利益必須遵循激勵合同,偏離協(xié)議的參與方將受到嚴(yán)重懲罰,罰金遠大于其在委托計算中獲得的收益。委托計算分為初始化、委托計算和支付效用3個階段。 假設(shè)協(xié)議中委托方D具有計算數(shù)據(jù)m,在該階段委托方對數(shù)據(jù)進行加密以防止計算方篡改。委托方選擇函數(shù)f并輸入x,計算m1=H(f)、m2=H(x)和2個承諾s1=Com(m1)、s2=Com(m2)。委托方將承諾作為契約的一部分發(fā)送到區(qū)塊鏈,并將(f,x,s1,s2)發(fā)送到云端。云層驗證區(qū)塊鏈上的承諾正確后,委托方與計算方簽署合約。 由于委托方希望計算方預(yù)付押金以激勵其正確計算,因此雙方簽署合約。如果計算方返回正確答案,則退還押金;如果計算方不誠實,未返回正確答案,則押金歸委托方所有,具體操作流程如下: 1)委托方與計算方簽署委托合約C1。 2)計算方接收輸入x函數(shù)f(·)的計算任務(wù)。 3)委托方向計算方支付金額r2,用以正確及時地計算f(x)。 4)作為接收計算任務(wù)的條件,計算方與委托方簽訂委托合約時需支付金額為d的押金,該押金由智能合約持有。 5)為激勵計算方不偏離協(xié)議,委托方選擇支付金額為w的貨幣以激勵計算方誠實計算委托任務(wù)。 6)計算方需在時間T1之前支付押金。如果支付時間T>T1,合約將終止,并退還已付押金。 7)計算方必須在時間T2之前完成計算,并傳遞計算結(jié)果f(x)。 8)在截止時間T2后,委托方執(zhí)行以下操作: (1)如果計算方未能交付計算結(jié)果,則押金全部歸委托方所有。 (2)如果計算方交付計算結(jié)果,委托方將其與裁判方發(fā)送的結(jié)果進行對比,如果結(jié)果相同,則委托方必須支付約定金額r2并將押金d退還計算方,否則押金全部歸委托方所有,且裁判方將公布此計算方信譽度為H-。 9)如果在時間T3>T2之后,委托方既沒有提出異議也沒有支付金額給計算方,則裁判方將強制委托方向計算方支付金額r2并退回押金。 委托方與計算方所簽訂合約C1中有各階段的截止時間T1 此外,需考慮到計算方可能為得到更大利益而與裁判方發(fā)起共謀合約。在共謀合約中,計算方支付金額為b的賄賂金給裁判方。如果裁判方選擇與計算方合作,則雙方提交金額為t的押金以激勵雙方合作,且違反合謀一方將受到失去押金的懲罰,具體操作流程如下: 1)計算方發(fā)起與裁判方的共謀合約C2。 2)共謀雙方將f′(x)≠f(x)作為計算結(jié)果發(fā)送給委托方。 3)作為簽署合約的條件,計算方必須支付金額為b+t的押金,裁判方必須支付金額為t的押金,上述押金由智能合約持有。 4)在時間T2結(jié)束之前,雙方需交付上述押金,否則合約終止。 5)雙方共謀合約完成后,會出現(xiàn)以下情況: (1)如果雙方均在合約中輸出f′(x),那么金額為t的押金返還計算方,金額為t+b的押金返還裁判方。 (2)如果計算方背叛裁判方,那么金額為2t+b的押金返還裁判方。 (3)如果裁判方背叛計算方,那么金額為2t+b的押金返還裁判方。 根據(jù)上述情況,委托方選擇與裁判方簽署合作合約,以避免計算方與裁判方之間發(fā)起共謀合約。委托方提供額外獎勵給裁判方,以激勵裁判方公平對待計算結(jié)果,具體操作流程如下: 1)委托方與裁判方簽署合約C3。 2)裁判方必須返回f(x)作為計算結(jié)果。 3)作為簽署合約的條件,委托方必須支付裁判方在計算過程中所需金額和獎勵金額之和的押金,裁判方需支付金額遠大于2d的押金,該押金由智能合約持有。 4)為激勵裁判方不偏離協(xié)議,委托方選擇支付金額為w的獎金以激勵裁判方誠實計算接收任務(wù)。 5)合約C3必須在時間T2之前簽署,否則合約終止,已交付的押金退回。 6)裁判方需在時間T2之前提交計算結(jié)果,并將委托方與計算方返還的計算結(jié)果進行對比,具體操作如下: (1)如果雙方計算結(jié)果相等,則委托方與裁判方的押金將被退回,裁判方宣布計算方信譽度為H+,委托方支付給計算方和裁判方獎金。 (2)如果雙方計算結(jié)果不相等,則裁判方宣布計算方信譽度為H-,委托方收取計算方提交的押金。 (3)如果雙方計算結(jié)果相等,但委托方在使用計算結(jié)果時發(fā)現(xiàn)有誤,則委托方通過智能合約追溯計算方與裁判方,并對雙方進行懲罰,宣布裁判方信譽度為H--,計算方信譽度為H-。 當(dāng)委托方收到計算方返還的計算結(jié)果后,將其與裁判方返還結(jié)果進行比對,如果相同,則委托方接收此計算結(jié)果,否則委托方拒絕接收。同時,還需考慮委托方與計算方交互時間T3的范圍,若時間T 委托方、計算方和裁判方進行交互式證明后,委托方只需驗證計算方與裁判方返還的承諾值,根據(jù)各方期望效用函數(shù)對自身在委托計算中的成效進行判斷。若任何一方偏離協(xié)議,則根據(jù)合約另外兩方有權(quán)要求取得遠大于計算成本的賠償金作為補償,并在區(qū)塊鏈上記錄偏離協(xié)議一方的信譽度。由于本文方案中參與方均為理性狀態(tài),因此通過制定激勵合約和效用函數(shù)以激勵各參與方積極遵守協(xié)議,從而提高委托計算效率。 定理1如果α=0,m>t+c2,n>b+t+c3且參與方均為理性狀態(tài),則基于智能合約的委托計算三方博弈方案存在貝葉斯納什均衡。 證明根據(jù)本文構(gòu)建的三方博弈模型,存在以下情況: 1)當(dāng)委托方對計算方和裁判方同時實施激勵(α=1)時,若計算方以概率β對委托方誠實地執(zhí)行計算任務(wù),則已簽訂共謀協(xié)議裁判方繼續(xù)執(zhí)行該協(xié)議的預(yù)期效用表示為: EuR(合作)=β(r3-w+b+t-n)+ (1-β)(r3-w+b-n) (4) 裁判方不再執(zhí)行共謀協(xié)議的預(yù)期效用表示為: EuR(不合作)=β(r3+w-c3)+ (1-β)(r3+w-c3-t) (5) 當(dāng)裁判方合作與不合作的效用函數(shù)相等時,實現(xiàn)博弈均衡,即: EuR(合作)=EuR(不合作) (6) 由式(6)計算得到: n*=b+t-2w+c3 (7) 當(dāng)裁判方違背計算任務(wù)的罰金額度n=n*時,無論裁判方是否選擇與計算方合作均可以實現(xiàn)效用相等;當(dāng)n>n*時,裁判方最佳選擇策略是不與計算方合作而誠實對待計算任務(wù);當(dāng)n 若裁判方以概率δ選擇與計算方共謀執(zhí)行計算任務(wù),則簽訂共謀協(xié)議計算方對委托方誠實的預(yù)期效用表示為: EuC(誠實)=(1-δ)(r2+w-c2-b-t)+ δ(r2+w-c2) (8) 計算方對委托方不誠實的預(yù)期效用表示為: EuC(不誠實)=(1-δ)(r2-w2-b-m)+ δ(r2-w-m+t) (9) 當(dāng)裁判方合作與不合作的效用函數(shù)相等時,實現(xiàn)博弈均衡,即: EuC(誠實)=EuC(不誠實) (10) 由式(10)計算得到: m*=t-2w+c2 (11) 當(dāng)計算方違背計算任務(wù)的罰金額度m=m*時,簽訂共謀協(xié)議的計算方任意選擇是否誠實對待計算任務(wù)均可實現(xiàn)效用相等;當(dāng)m>m*時,計算方最佳選擇策略是不再執(zhí)行共謀協(xié)議而誠實對待計算任務(wù);當(dāng)m 2)當(dāng)委托協(xié)議不對計算方和裁判方實施激勵(α=0)時,若計算方以概率β對委托方誠實地執(zhí)行計算任務(wù),則裁判方同計算方合作與不合作的博弈均衡表示為: n*=b+t+c3 (12) 若裁判方以概率δ選擇與計算方共謀執(zhí)行計算任務(wù),則計算方對委托方誠實與不誠實的博弈均衡表示為: m*=t+c2 (13) 因此,當(dāng)m>t+c2且n>b+t+c3時,計算方最佳選擇策略是誠實對待計算任務(wù),裁判方最佳選擇策略是不與計算方合作。 綜上所述,在參與方盡量獲取各自最大利益的情況下,當(dāng)α=0、m>t+c2、n>b+t+c3時,委托方的委托代價最小,且計算方與裁判方總以概率1發(fā)送正確的計算結(jié)果,此時基于智能合約的委托計算三方博弈方案達到貝葉斯納什均衡。 本文實驗采用Solidity語言編寫智能合約,采用3臺PC主機分別模擬委托方、計算方和裁判方,具體硬件配置如表6所示。為模擬計算過程中三方博弈,基于以太坊搭建私有鏈,并將上述合約部署在該鏈中。 表6 硬件配置Table 6 Hardware configuration 三方博弈過程如圖2所示。委托方將待計算任務(wù)及初始值x委托給計算方與裁判方,計算方與裁判方分別向合約DCR_C1中存入定金r及押金d,合約簽署完成。根據(jù)合約,計算方需在規(guī)定時間前向委托方返回計算結(jié)果fC(x),但計算方為獲取更大利益可能與裁判方進行合謀,通過合約DCR_C2約定賄賂金b、合謀押金t及合謀結(jié)果fCR(x)。為避免上述合謀,委托方可選擇與裁判方簽訂驗證合約DCR_C3,使得計算方及裁判方計算結(jié)果公開可驗證,以保證出現(xiàn)問題后委托方可對計算方與裁判方進行問責(zé)。 圖2 三方博弈過程Fig.2 Three-party game process 5.1.1 委托合約DCR_C1 在發(fā)布計算委托過程中,委托方與計算方簽署委托合約DCR_C1,該合約的偽代碼具體如下: /* Auto-transfer in case of overtime */ } function Delegate()public payable{ x ← input the x r ← input reward timeT1 ← set the delegation time } function GetOrder()public payable { d ← input the deposit of guarantee timeT2 ← set the computing time } function Computing() public{ /* Computing the f(x).*/ } function SendRes_C()public{ nC_fx ← set the results of calculation timeT3 ← set the time of refereeing } function Referee() public{ nR_fx ← get the result of refereeing IfnC_fx==nR_fx then /* pay r and g to computing party.*/ else /* pay r and g to delegation party.*/ end if } } 委托方通過調(diào)用合約中的Delegate()函數(shù)傳入計算變量值x,并向合約中預(yù)付定金r作為計算方的計算報酬。當(dāng)合約完成定金扣除后,設(shè)置委托任務(wù)截止時間timeT1,計算方需在該時間前通過GetOrder()向合約預(yù)付計算押金d以獲得該任務(wù)計算權(quán)。當(dāng)合約完成押金扣除后,設(shè)置計算截止時間timeT2,計算方需在該時間前通過SendRes_C ()向委托方發(fā)送計算結(jié)果nC_fx,并設(shè)置仲裁截止時間 timeT3。委托方可根據(jù)實際需要決定是否調(diào)用Referee()完成計算結(jié)果驗證。在上述過程中,系統(tǒng)通過TimeTick()對超時任務(wù)流程進行自動支付或退款,以保證合約賬戶中資金被鎖死。 5.1.2 共謀合約DCR_C2 計算方接到計算任務(wù)后,為使自身利益最大化,可能會與裁判方簽署共謀合約DCR_C2,該合約的偽代碼具體如下: contract DCR_C2{ function TimeTick( ){ /* Auto-transfer in case of overtime */ } function Bribery()public payable{ nC_tb ← input the bribery nCR_fx ← set bribery answer timeT2 ← set the computing time } function GetBribery()public payable{ nR_t ← input the deposit of bribery } function CheckRes()public{ /* Get funding based on answers sent by both parties; */ } } 計算方通過Bribery()向合約中支付賄賂金nC_tb,并約定共謀函數(shù)值nCR_fx,同時設(shè)置計算任務(wù)截止時間timeT2,裁判方需在截止時間之前支付接受賄賂的押金nR_t以完成共謀合約簽訂。當(dāng)委托方利用裁判方發(fā)回的結(jié)果完成驗證后,計算方與裁判方通過CheckRes()完成合謀資金分配。為保證合約執(zhí)行過程中資金不被鎖死,同樣通過TimeTick( )完成合約賬戶資金自動支付或退款。 5.1.3 驗證合約DCR_C3 委托方根據(jù)自身需要,通過Appeal ()向驗證合約DCR_C3預(yù)付驗證定金d,并設(shè)定申請截止時間timeT1,裁判方需在申請截止時間前向合約中存入金額為2d的押金。當(dāng)雙方資金完成扣除后,委托方與裁判方的驗證合約DCR_C3正式成立。根據(jù)合約,裁判方需在申請截止時間timeT2前通過SendRes_R ( )向委托方發(fā)送計算結(jié)果。DCR_C3合約的偽代碼具體如下: contract DCR_C3{ function TimeTick(){ /* Auto-transfer in case of overtime */ } function Appeal ()public payable{ x ← input the x d ← input the deposit of appealing timeT1 ← set the appealing time } function GetReferee()public payable{ 2d ← input the deposit of refereeing timeT2 ← set the refereeing time } function Computing()public{ /* Computing the fx.*/ } function SendRes_R( )public{ /* Send the result of refereeing to the delegation party; */ } } 為了解三方博弈過程中各合約執(zhí)行成本,對合約執(zhí)行代價進行統(tǒng)計,結(jié)果如表7所示??梢钥闯?委托方在不申請仲裁的情況下,合約執(zhí)行代價c1=0.15,申請仲裁總代價為c1+c5+c9=0.34;計算方誠實計算直接成本為c2+c3+c4=0.52,發(fā)起共謀總成本為c2+c4+c6+c8=0.33;裁判方誠實計算直接成本為c11+c12+c13=0.67,接受賄賂的總成本為c7+c11+c12=0.23。 表7 合約執(zhí)行代價統(tǒng)計結(jié)果Table 7 Statistical results of contract execution costs 在實驗過程中,若設(shè)置委托方的獎金r=$1.00,則委托方在信任計算方而不申請驗證的情況下,委托總代價為r+c1=$1.15,而計算方誠實計算的預(yù)期收益為h=r-c2-c3-c4=$0.48。若令賄賂金b=0.5h,t=4b,d=1.5r,m=4d,n=4r,則委托方、計算方及裁判方的收益如表7所示??梢钥闯?在委托方不信任計算方且計算方與裁判方存在共謀的情況下,若裁判方遵守合約DCR_C2,則最終將遭到嚴(yán)厲懲罰而導(dǎo)致?lián)p失;裁判方在選擇不遵守該合約而誠實計算的情況下將會獲得收益,因而裁判方更愿意選擇誠實計算。此外,由于共謀過程中無論裁判方是否誠實計算,計算方都將受到懲罰,因此計算方只能選擇誠實計算。在上述過程中,裁判方、計算方都將選擇誠實計算,基于此,在該博弈過程中,委托方可選擇信任計算方而不進行結(jié)果驗證,從而降低委托代價。由表7得到三方博弈過程中的代價及收益,如圖3所示。 圖3 三方博弈過程中的代價及收益Fig.3 The cost and benefit in the process of three-party game 圖4 不同模指數(shù)計算方案所用時間的對比Fig.4 Comparison of time of different modulus index calculation schemes 本文提出一種將博弈理論與傳統(tǒng)委托計算相結(jié)合的理性委托計算協(xié)議。基于信譽機制建立三方博弈委托計算模型,把計算任務(wù)交給不受信任且自利的計算方和裁判方,采用激勵機制和智能合約框架設(shè)計委托計算協(xié)議,保證參與方不偏離協(xié)議執(zhí)行?;谝蕴粎^(qū)塊鏈的實驗結(jié)果表明,該協(xié)議委托計算效率較直接計算和傳統(tǒng)委托計算協(xié)議更高,可使三方博弈達到貝葉斯納什均衡。下一步將在本文基礎(chǔ)上對更多參與方理性委托計算進行研究,以滿足多方委托計算協(xié)議的需求。2.2 參與方
2.3 信息集
2.4 可行策略
2.5 效用函數(shù)
3 方案構(gòu)造
3.1 初始化階段
3.2 委托計算階段
3.3 支付效用階段
4 方案分析
5 仿真實驗與結(jié)果分析
5.1 合約簽署
5.2 合約執(zhí)行代價
5.3 性能分析
6 結(jié)束語