段 靚 沈玉龍 高晟凱 徐振楠
1(河海大學(xué)計算機(jī)與信息學(xué)院 江蘇 南京 210098) 2(西安電子科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 陜西 西安 710071) 3(網(wǎng)聯(lián)清算有限公司 北京 100045)
拍賣作為一種高效的云資源交易模式,被諸多主流云虛擬機(jī)提供商采用[1]。例如,Amazon公司在Amazon EC2平臺中使用了拍賣機(jī)制來分配虛擬機(jī)(VM)并對其定價[2]。然而,現(xiàn)有的大多數(shù)云虛擬機(jī)拍賣方案(或稱為云資源拍賣)只關(guān)注經(jīng)濟(jì)特性,例如真實(shí)性(Truthfulness)與社會福利最大化(Social welfare maximization),而忽略了隱私保護(hù)的內(nèi)在需求,直接將競拍信息暴露在全體拍賣參與者面前,而敏感競拍信息的泄露會影響拍賣系統(tǒng)的正常運(yùn)行。
云虛擬機(jī)通常是在有限且固定的時間單元內(nèi)進(jìn)行分配的,因此云虛擬機(jī)拍賣被認(rèn)為是一個連續(xù)過程[3-4]。買賣雙方可以通過不斷監(jiān)測和分析其他參與者的歷史出價,調(diào)整其真實(shí)出價以獲得更高的利潤;拍賣商也可以根據(jù)歷史出價主動調(diào)整定價策略以增加收益;惡意競標(biāo)者還可以根據(jù)歷史出價提交一個精心設(shè)計的競標(biāo)價格,從而擾亂整個拍賣市場。所以,拍賣過程中敏感信息的泄露將會造成巨大的經(jīng)濟(jì)損失。
目前,已經(jīng)有學(xué)者對安全拍賣問題展開了研究。Naor等[5]率先基于密碼學(xué)工具構(gòu)建了簡易通用的安全拍賣框架;Suzuki等[6]基于同態(tài)密碼構(gòu)造了一種安全的廣義二次拍賣模型,但這些方案均沒有針對具體應(yīng)用場景進(jìn)行設(shè)計,并不能直接實(shí)際應(yīng)用。針對具體拍賣場景的安全拍賣研究是近年來的熱點(diǎn),其中安全頻譜拍賣、安全云資源拍賣得到了廣泛關(guān)注。Chen等[7]基于秘密分享技術(shù)提出了一種信息論安全的頻譜拍賣方案,但是該方案只能適用于單邊市場情形下(即只存在單個賣方)的頻譜拍賣。Wang等[8]針對雙邊市場下(即存在多個賣方)的安全頻譜拍賣問題,基于半同態(tài)加密設(shè)計了一種競價隱私保護(hù)的拍賣方案。Chen等[9]首次在安全頻譜拍賣中考慮到了公平支付的問題,并基于可驗(yàn)證計算技術(shù)提出了相應(yīng)解決方案。此外,安全云虛擬機(jī)拍賣也得到了廣泛研究。Chen等[10]基于混淆電路(garbled circuit,GC)技術(shù)設(shè)計了一種隱私保護(hù)的云拍賣方案,然而該方案只適用于單邊市場下的云拍賣,而非更實(shí)際的面向雙邊市場的云拍賣。Cheng等[11]結(jié)合秘密分享、同態(tài)加密等設(shè)計了一種混合式的安全雙邊云資源拍賣方案,使用兩個不串謀的服務(wù)器構(gòu)建而成,采用輕量級的加法秘密分享執(zhí)行了大部分的線上安全操作,然而該方案線下階段包含大量同態(tài)加解密與密文運(yùn)算,整體效率較低,且通信開銷過大。在其他領(lǐng)域也存在一些保護(hù)隱私的雙重拍賣設(shè)計。然而,由于云虛擬機(jī)拍賣存在異構(gòu)資源分配和實(shí)時性要求高等特殊需求,使得現(xiàn)有的工作無法滿足安全云虛擬機(jī)拍賣的實(shí)際需求。因此,如何在不泄露隱私的情況下實(shí)現(xiàn)安全雙邊云資源拍賣仍然是一個難題。
拍賣的公平交易支付問題也是近年來的研究熱點(diǎn)。目前,研究人員設(shè)計了一些基于區(qū)塊鏈的拍賣方案,利用區(qū)塊鏈去中心化特征,消除了拍賣中存在可信第三方問題。為確保投標(biāo)價格的可靠性、公平性和交付過程中價格消息的安全性,Shu等[12]討論將私有區(qū)塊鏈應(yīng)用到拍賣方案。Chen等[13]為避免電子投標(biāo)系統(tǒng)中的第三方信任問題,提出了基于區(qū)塊鏈的電子投標(biāo)系統(tǒng),利用智能合約處理投標(biāo)交易,并確保投標(biāo)過程的完整性。面向傳統(tǒng)眾包數(shù)據(jù)交易系統(tǒng)中心化信任問題,An等[14]提出了一種基于反向拍賣和區(qū)塊鏈的眾包數(shù)據(jù)交易系統(tǒng)(RADT),設(shè)計RADToken智能合約來強(qiáng)制不信任的各方誠實(shí)地參與數(shù)據(jù)交易。Franco等[15]提出一種基于區(qū)塊鏈的反向拍賣架構(gòu)(BRAIN),引入一種可審計的方法來降低網(wǎng)絡(luò)功能虛擬化(NFV)技術(shù)商業(yè)化的成本,并分析其優(yōu)缺點(diǎn)。Hassija等[16]提出了一種在客戶和供應(yīng)商之間進(jìn)行能源交易的雙重拍賣方案,通過智能合約實(shí)施分布式算法以最大化個人參與利潤。Hassan等[17]開發(fā)了一種基于區(qū)塊鏈的微電網(wǎng)能源拍賣方法,并使用差分隱私技術(shù)確保參與者私有信息的安全。然而,在云虛擬機(jī)拍賣領(lǐng)域,還沒有切實(shí)可行的保證支付公平的拍賣方案。因此,如何利用區(qū)塊鏈和智能合約保證雙邊云資源拍賣支付公平的問題仍有待研究。
針對上述問題,本文提出了一種公平高效的安全雙邊云資源拍賣方案。引入兩個代理商服務(wù)器,與拍賣商服務(wù)器構(gòu)成三方計算模型,三方協(xié)作運(yùn)行一系列安全高效的協(xié)議來實(shí)現(xiàn)整個拍賣流程,在不泄露拍賣隱私的情況下,大幅提高了計算效率。具體地,本文在安全三方計算模型下設(shè)計了安全比較協(xié)議和安全排序協(xié)議,該協(xié)議通過第三方生成輔助計算參數(shù),盡可能地減少同態(tài)加密等耗時操作的使用。在此基礎(chǔ)上,實(shí)現(xiàn)了一個兼顧競價隱私和拍賣效率的安全雙邊云資源拍賣方案。為了滿足云資源拍賣的效率要求,采用輕量級加法秘密分享方法執(zhí)行大部分安全計算功能,同時將耗時的加解密與密文域操作次數(shù)降至最低。此外,本文還考慮了云虛擬機(jī)拍賣的公平支付交易問題。由于云虛擬機(jī)交易具有高實(shí)時性要求,獲勝買家拒絕付款或延遲付款都會給賣家?guī)斫?jīng)濟(jì)損失。因此,本文基于智能合約對拍賣交易流程進(jìn)行限定以保證交易支付的公平性。
本文主要貢獻(xiàn)如下:1) 基于加法秘密分享采用“置亂再計算”(Shuffle-then-compute)策略設(shè)計了一種安全高效的三方安全排序協(xié)議,該協(xié)議可以作為各種安全拍賣方案的基礎(chǔ);2) 基于加法秘密分享和智能合約實(shí)現(xiàn)了公平高效的安全雙邊云資源拍賣方案,通過使用輕量級秘密分享方法執(zhí)行大部分安全計算功能,顯著提高了拍賣的性能;3) 開發(fā)實(shí)現(xiàn)原型系統(tǒng),并通過大量實(shí)驗(yàn)驗(yàn)證了該方案的正確性和高效性。
本文考慮雙邊市場下隱私保護(hù)的云虛擬機(jī)拍賣問題,系統(tǒng)模型如圖1所示。參與實(shí)體包括多個買方、多個賣方、拍賣商服務(wù)器(A)、2臺拍賣代理服務(wù)器(B和C)。在該模型下,M個賣方出售K種類型的虛擬機(jī)資源給N個買方。在拍賣過程中,買方和賣方在本地分別對其出價和報價進(jìn)行加法秘密分享,然后將秘密分享份額分別發(fā)送至拍賣商服務(wù)器A和拍賣代理服務(wù)器B。接下來,拍賣商服務(wù)器A聯(lián)合拍賣代理服務(wù)器B和C執(zhí)行一系列三方安全計算協(xié)議來確定最終獲勝的買方、賣方,以及相應(yīng)的支付價格和資源售賣數(shù)量。最后,拍賣商服務(wù)器A調(diào)用智能合約自動完成支付交易流程。系統(tǒng)參數(shù)如表1所示。
圖1 系統(tǒng)模型
表1 系統(tǒng)參數(shù)
本文研究半可信攻擊模型下的雙邊云虛擬機(jī)拍賣,即所有參與方都是誠實(shí)且好奇的,這些實(shí)體將會嚴(yán)格執(zhí)行所設(shè)計協(xié)議,但是會試圖通過傳輸?shù)闹虚g消息推測其他參與方的隱私信息。此外,本文假設(shè)參與安全計算的服務(wù)器之間不會發(fā)生共謀。本文旨在設(shè)計公平的安全雙邊云虛擬機(jī)拍賣方案,將保證以下特性:
(1) 安全性:任一參與方均不會獲得除了拍賣結(jié)果以外的隱私信息。(2) 公平性:一旦拍賣成功,在一定時限內(nèi)獲勝賣家可獲取相應(yīng)報酬,獲勝買家可獲取相應(yīng)的資源,參與計算的代理商和代理服務(wù)器可獲取相應(yīng)的傭金;反之,導(dǎo)致流拍的參與方將會扣罰保證金。
1) 勝者匹配。拍賣商首先計算每個買家的出價密度:
φi=ci/(xi·μ)
(1)
式中:公開參數(shù)μ=(μ1,μ2,…,μk)T是每種虛擬機(jī)的最大服務(wù)率。拍賣商根據(jù)出價密度對所有出價信息進(jìn)行降序排序,即:
φα1≥φα2≥…≥φαN
(2)
拍賣商根據(jù)報價對不同類型虛擬機(jī)的報價信息進(jìn)行升序排列,即:
(3)
接下來,拍賣商根據(jù)以下不等式來確定是否有買家和買家贏得本輪拍賣:
(4)
2) 定價與虛擬機(jī)分配。拍賣商計算獲勝買家winb的支付金額:
(5)
獲勝賣家wins對于類型m虛擬機(jī)售價為:
(6)
獲勝賣家wins出售的類型m虛擬機(jī)的數(shù)量為:
(7)
拍賣商將本輪獲勝的買家賣家從拍賣中移除,重復(fù)步驟1)和步驟2)直至式(6)無法成立。
1) 加法秘密分享[18]:加法秘密共享方通過將l位的輸入值x在環(huán)Z2l上隨機(jī)地拆分為2個加法秘密份額〈x〉0和〈x〉1,并分別發(fā)送給參與方A和B;對于x的秘密分享形式〈x〉,有〈x〉0+〈x〉1≡x(mod 2l)。為了恢復(fù)秘密值x(Rec(〈x〉0,〈x〉1)),A和B互換秘密份額并計算x=〈x〉0+〈x〉1。兩個加法秘密分享值和求和計算定義為:參與方A和B分別在本地計算〈z〉i=〈x〉i+〈x〉i(mod 2l)(i∈{0,1})。本文余下部分將省略mod運(yùn)算。
2) 安全計算協(xié)議:在之前的工作中[19-20],基于加法秘密分享提出了兩種基本的安全計算協(xié)議。
(1) 安全乘法(SMUL)協(xié)議[19]:參與方A持有〈x〉0,〈y〉0∈Z2l,參與方B持有〈x〉1,〈y〉1∈Z2l,A和B在輔助計算方C的協(xié)助下計算(〈z〉0,〈z〉1)=SMul(〈x〉,〈y〉),滿足〈z〉0+〈z〉1=x·y,其中:〈z〉0僅被A獲取,〈z〉0僅被B獲取。
(2) 安全除法(SDIV)協(xié)議[20]:參與方A持有〈x〉0,〈y〉0∈Z2l,參與方B持有〈x〉1,〈y〉1∈Z2l,A和B協(xié)同計算(〈z〉0,〈z〉1)=SDiv(〈x〉,〈y〉),滿足〈z〉0+〈z〉1=x/y,其中:〈z〉0僅被A獲取,〈z〉0僅被B獲取。
區(qū)塊鏈概念源于2009年中本聰提出的比特幣[21]。經(jīng)過了十年的發(fā)展,區(qū)塊鏈已經(jīng)能夠在金融、供應(yīng)鏈等領(lǐng)域成熟應(yīng)用。以太坊(Ethereum)是一個開源的具有智能合約功能的公有鏈平臺[22]。由于圖靈完備,以太坊成為應(yīng)用最廣泛的區(qū)塊鏈加密貨幣平臺。以太坊能夠通過其專有的Ether和Gas提供去中心化以太虛擬機(jī)[23](Ethereum Virtual Machine,EVM)和去中心化應(yīng)用(Decentralization Applications,DAPPs)來處理點(diǎn)對點(diǎn)智能合約[24](Smart Contracts)。
智能合約是以太坊相對于比特幣的巨大進(jìn)步。智能合約本質(zhì)是跑在以太坊上的一段代碼,通過分布式一致性和自動執(zhí)行來保證代碼運(yùn)行的不可更改、不可人為操控,從而實(shí)現(xiàn)其安全性和不可篡改性。Solidity是以太坊為了開發(fā)智能合約專門設(shè)計的一種高級編程語言,能夠良好地運(yùn)行在EVM上[25]。Solidity可以實(shí)現(xiàn)投票、眾籌、拍賣、多重簽名錢包等智能合約。
根據(jù)2.1節(jié)的雙邊云虛擬機(jī)拍賣流程可知,比較和排序操作是拍賣過程的主要操作,因此提出兩種安全三方計算協(xié)議來實(shí)現(xiàn)安全高效的比較與排序操作。以下協(xié)議均在1.1節(jié)描述的安全三方計算模型下進(jìn)行,并假設(shè)參與方A擁有加法同態(tài)密碼公私鑰pk/sk,其他參與方擁有公鑰pk。
給定兩組加法秘密分享值〈x〉i、〈y〉i(i∈{0,1}),其中:〈x〉0、〈y〉0存儲在A上,〈x〉1、〈y〉1存儲在B上。安全比較(SCMP)協(xié)議的功能是在半可信的第三方C的輔助下根據(jù)x和y的大小關(guān)系輸出z的秘密分享份額〈z〉i,其中z=(x≥y),〈z〉0僅被A獲取,〈z〉1僅被B獲取。在協(xié)議的整個過程中,沒有關(guān)于x和y的任何隱私信息泄露給A和B。SComp協(xié)議基本原理如下:
(x-y)r≥0?(x≥y)
協(xié)議1安全比較SComp協(xié)議
輸入:A輸入〈x〉0,〈y〉0,B輸入〈x〉1,〈y〉1。
輸出:A輸出〈z〉0,B輸出〈z〉1,z=(x≥y)。
1) A和B分別生成隨機(jī)正整數(shù)〈r〉0∈Z2l和〈r〉1∈Z2l,C生成1和0的加法秘密分享份額〈u〉i=〈1〉i和〈v〉i=〈0〉i,i∈{0,1};
2) A計算〈e〉0=〈x〉0-〈y〉0,B計算〈e〉1=〈x〉1-〈y〉1,A和B在C的輔助下使用SMul協(xié)議計算〈f〉=SMul(〈e〉,〈r〉);
3) A和B將f的加法秘密份額發(fā)送給C,C在本地恢復(fù)出f的值f=Rec(〈f〉0,〈f〉1);
4) 如果f≥0,〈z〉i=〈u〉i,否則〈z〉i=〈v〉i,i∈{0,1},C將〈z〉0和〈z〉1分別發(fā)送給A和B。
給定一組加法秘密分享形式的序列〈x〉=〈〈x1〉,〈x2〉,…,〈xn〉〉,其中:x0、x1分別存儲在A和B上,安全排序(SST)協(xié)議的功能是在C的輔助下將原序列排列成一組加法秘密分享形式的遞增序列〈xφ〉=〈〈xφ(1)〉,〈xφ(2)〉,…,〈xφ(n)〉〉,其中φ是原序列索引與遞增序列索引之間的映射。在協(xié)議的整個過程中,沒有關(guān)于x的任何隱私信息泄露給A和B。
為了在加法秘密分享的形式上實(shí)現(xiàn)安全高效的排序操作,本文采用了“置亂再計算”的策略設(shè)計安全排序協(xié)議。具體地,在常規(guī)排序操作之前添加一個數(shù)據(jù)置亂操作用來切斷置亂后的序列與原序列的關(guān)系,后續(xù)對置亂序列的操作則不會泄露原序列元素間大小關(guān)系、訪問模式等隱私信息。協(xié)議2描述了安全排序協(xié)議的流程。
協(xié)議2安全排序(SST)協(xié)議
1) A和B分別生成隨機(jī)序列u=[u1,u2,…,un],然后A對u進(jìn)行加法同態(tài)加密得到L0=[Epk(u1),Epk(u2),…,Epk(un)],并發(fā)送給C;B以同樣的方式得到加密隨機(jī)序列L1=[Epk(v1),Epk(v2),…,Epk(vn)]發(fā)送給C。
2) C接收到L0和L1后,計算L2=〈Epk(u1)·Epk(v1),Epk(u2)·Epk(v2),…,Epk(un)·Epk(vn)〉=〈Epk(u1+v1),Epk(u2+v2),…,Epk(un+vn)〉,使用置亂函數(shù)π對L2中元素進(jìn)行置亂操作得到L2=〈Epk(uπ(1)+vπ(1)),Epk(uπ(2)+vπ(2)),…,Epk(uπ(n)+vπ(n))〉并發(fā)送給A。
3) A使用私鑰sk對L2解密并取反得到一組序列,記作〈x′〉0=[-uπ(1)-vπ(1),…,-uπ(1)-vπ(1)]。
4) A計算L3=〈〈x1〉0+u1,〈x2〉0+u2,…,〈xn〉0+un〉并發(fā)送給C;B計算L4=〈〈x1〉1+v1,〈x2〉1+v2,…,〈xn〉1+vn〉并發(fā)送給C。
5) C計算L3+L4并使用π對其進(jìn)行置亂操作得到〈x′〉1=〈xπ(1)+uπ(1)+vπ(1),xπ(2)+uπ(2)+vπ(2),…,xπ(n)+uπ(n)+vπ(n)〉并發(fā)送給B。
6) A和B設(shè)置low=1,up=n
7) iflow 10) forj=lowto (up-1) 14) end if 15) end for 17) A和B設(shè)置up=i-1,重復(fù)步驟7)至19) 18) A和B設(shè)置low=i+1,重復(fù)步驟7)至19) 19) end if 20) A設(shè)置〈xφ〉0=〈x′〉0,B設(shè)置〈xφ〉1=〈x′〉1 具體地,A和B生成隨機(jī)序列u=〈u1,u2,…,un〉和v=〈v1,v2,…,vn〉,使用加法同態(tài)加密后發(fā)給C。C在本地利用加法同態(tài)性質(zhì)計算得到L2=〈Epk(u1+v1),Epk(u2+v2),…,Epk(un+vn)〉,使用置亂函數(shù)π對L2中元素進(jìn)行置亂操作并將置亂后的序列發(fā)送給A。 A使用私鑰sk對L2解密并取反得到〈x′〉0=[-uπ(1)-vπ(1),…,-uπ(1)-vπ(1)]。接下來,A和B分別使用u、v對〈x〉0、〈x〉1進(jìn)行混淆并發(fā)送給C,C計算混淆后序列的和并使用π對其進(jìn)行置亂操作得到〈x′〉1=[xπ(1)+uπ(1)+vπ(1),xπ(2)+uπ(2)+vπ(2),…,xπ(n)+uπ(n)+vπ(n)],然后將〈x′〉1發(fā)送給B。至此,A和B上存儲著置亂后序列的加法秘密分享值。接下來,以〈x′〉為輸入,進(jìn)行快速排序操作。與傳統(tǒng)的快速排序算法相比,本文采用SCMP協(xié)議完成加法秘密共享數(shù)據(jù)上的安全比較操作。由于采用了上述方法,該協(xié)議可以很容易地擴(kuò)展,以支持鍵值對類型數(shù)據(jù)的安全排序,即數(shù)組中的元素是鍵值(ki,xi),xi用于對數(shù)組進(jìn)行排序。 基于上述安全計算協(xié)議和智能合約,提出了一種公平的安全雙邊云虛擬機(jī)拍賣方案,旨在解決拍賣過程可能出現(xiàn)的隱私泄露和公平交易的問題。本節(jié)智能合約中相關(guān)符號及定義如表2所示。如上文所述,本文安全拍賣協(xié)議基于3.1節(jié)所介紹的拍賣協(xié)議構(gòu)建,包括系統(tǒng)初始化、安全拍賣和交易支付三個階段,如圖2所示。 表2 智能合約相關(guān)符號 圖2 公平的安全雙邊云虛擬機(jī)拍賣方案執(zhí)行流程 1) 賣家向區(qū)塊鏈注冊拍賣品 2) 賣家設(shè)置拍賣保證金額度 3) 賣家設(shè)置最長拍賣時間Tauc 4) 賣家設(shè)置最長支付時間Tpay 5) 賣家繳納手續(xù)費(fèi)depositrseller 6) 買家繳納保證金和手續(xù)費(fèi)depositbuyer 7) 驗(yàn)證:押金繳納時間T′ deposit=depositrseller+depositbuyer depositrseller>(Lsc×GtoP)/2 depositbuyer>(Lsc×GtoP)/2+pledge (a) 賬戶配置交易(b) 賣方押金交易 (c) 買方押金交易 (d) 勝方支付交易圖3 區(qū)塊鏈交易結(jié)構(gòu) 2) 拍賣執(zhí)行:當(dāng)收到報價的秘密份額后,A與B將執(zhí)行安全拍賣協(xié)議來完成勝者匹配、定價與虛擬機(jī)分配,主要步驟如協(xié)議3所示。 協(xié)議3隱私保護(hù)拍賣協(xié)議 輸入:A和B中所有秘密分享的報價。 輸出:秘密分享形式的拍賣結(jié)果。 1)for1≤i≤N 2)for1≤m≤K 4)endfor 6)endfor 12)for1≤m≤K 14)endfor 15)A,B,C: 17)for1≤j≤M 19) 〈λj〉←SCMP(〈φ〉,〈δj〉) 23)endfor 24)for1≤j≤M-1 25) 〈ηj〉←〈λj〉-〈Vα1〉 26)endfor 27) 〈ηM〉←〈λM〉 28) 〈j*〉←〈η1〉×〈1〉+〈η2〉×〈2〉+…+〈ηM〉×〈M〉 30)for1≤m≤K 32)endfor λj數(shù)組用于表示j是否小于或者等于關(guān)鍵索引j*,當(dāng)j小于等于j*時,λj=1;否則,λj=0。 ηj數(shù)組用于表示j是否等于關(guān)鍵索引j*,當(dāng)j等于j*時,ηj=1;否則,ηj=0。 為了幫助理解這一設(shè)計,下面給出關(guān)鍵索引和兩個標(biāo)識數(shù)組的具體形式: 2) 退還非獲勝買家的保證金,即發(fā)送pledge給Wbuyer 3) 獲勝買家實(shí)際支付金額cost1 6) 更改cost2的所有權(quán)給Wseller 7) 更改拍賣資源所有權(quán)給Wbuyer 8)differ=cost1-cost2 9) 發(fā)送differ給服務(wù)器WA 10) 退還獲勝者的保證金,即發(fā)送pledge給Wbuyer 11) end if 13) 更改獲勝者押金的所有權(quán)給Wseller 14) end if 15) 發(fā)送手續(xù)費(fèi)Lsc×GtoP給服務(wù)器WA、WB、WC 本節(jié)將對安全計算子協(xié)議、安全拍賣協(xié)議和公平交易智能合約進(jìn)行性能評估。本文實(shí)驗(yàn)環(huán)境為Intel(R) Core(TM) i7-4790U CPU@3.60 GHz,8 GB RAM配置的64位計算機(jī)。對于安全計算協(xié)議部分,使用C++實(shí)現(xiàn),平均網(wǎng)絡(luò)延遲0.04 ms。對于智能合約部分,在本地服務(wù)器上搭建以太坊測試網(wǎng)絡(luò),利用多臺EVM模擬多個以太坊節(jié)點(diǎn)。在該網(wǎng)絡(luò)中,使用Solidity 0.4.24版本進(jìn)行智能合約開發(fā)。本節(jié)對智能合約的性能分析主要針對的是以太坊私有測試網(wǎng)絡(luò),其原因是私有網(wǎng)絡(luò)上參與的區(qū)塊鏈節(jié)點(diǎn)是可控的,部署的智能合約是可分析的。這既符合拍賣場景,又便于實(shí)驗(yàn)分析。同時,由于拍賣過程不會產(chǎn)生大量需要記錄上鏈的交易和區(qū)塊,因此本節(jié)不考慮世界狀態(tài)(World State)對以太坊智能合約調(diào)用的影響。 從安全拍賣方案具體步驟可以看出,安全排序是整個拍賣過程中最為重要且最費(fèi)時的操作。圖4展示了安全排序(SST)協(xié)議和其他兩種基于同態(tài)加密[26]和混合式加密[11]解決方案的性能比較。可以看出,隨著元素數(shù)量增加,SST協(xié)議計算時間呈對數(shù)增長,而另外兩種方案接近線性增長。SST協(xié)議相較之前兩種方案具有顯著性能優(yōu)勢,這是因?yàn)槭褂昧溯p量級的加法秘密共享方法執(zhí)行了大部分安全計算操作,并且由于第三方輔助服務(wù)器的存在,極大地減少了同態(tài)加解密與密文域操作的次數(shù)。 圖4 安全排序(SST)協(xié)議計算時間對比 圖5和圖6分別顯示了在一輪拍賣過程中不同數(shù)量的賣家M和買家N情況下安全拍賣協(xié)議的計算時間和通信開銷。對于不同數(shù)量的買家M,計算時間均隨著賣家數(shù)量N的增加以近似線性的速度增加,這與排序協(xié)議中相似。對于通信開銷,可以在圖6中看到相同的趨勢,這是因?yàn)榕判虿僮鞯拈_銷占了整個拍賣開銷的絕大部分。 圖5 不同買家賣家數(shù)量時的安全拍賣協(xié)議計算時間 圖6 不同買家賣家數(shù)量時的安全拍賣協(xié)議通信開銷 主要分析以太坊節(jié)點(diǎn)數(shù)量與拍賣智能合約部署和調(diào)用時延之間的關(guān)聯(lián)關(guān)系,如圖7所示。首先分析智能合約的部署時延,即在初始化時為每個區(qū)塊鏈節(jié)點(diǎn)安裝、配置智能合約的平均時間,如圖7實(shí)線所示。智能合約的部署時延與節(jié)點(diǎn)數(shù)量線性相關(guān),隨節(jié)點(diǎn)數(shù)量的增加而增加。智能合約的執(zhí)行時延,即執(zhí)行合約中輸入/輸出功能的平均時間,如圖7虛線所示。智能合約的執(zhí)行時延隨節(jié)點(diǎn)數(shù)量的增加而增加,但增幅極小。這是由于大多數(shù)以太坊節(jié)點(diǎn)只有在保證金繳納和退還階段調(diào)用智能合約,獲勝者支付階段只有買賣雙方參與智能合約的執(zhí)行。 圖7 不同節(jié)點(diǎn)數(shù)量時的智能合約時延 針對云資源拍賣過程中隱私泄露和公平支付問題,本文基于加法秘密分享提出安全比較和安全排序協(xié)議,并基于此設(shè)計了一種公平高效的安全雙邊云資源拍賣方案。通過采用置亂再計算的設(shè)計策略和第三方代理服務(wù)器的輔助,大幅提升了協(xié)議的計算和通信效率。此外,本文利用智能合約保證了拍賣過程中公平的交易支付。通過實(shí)驗(yàn)對比分析,本文方案相較于之前的工作在拍賣計算時間和通信開銷方面均具有顯著優(yōu)勢。在未來工作中,將繼續(xù)研究支持各種拍賣算法的安全協(xié)議,進(jìn)一步提升協(xié)議的安全性。4 安全雙邊云虛擬機(jī)拍賣
4.1 安全排序協(xié)議
4.2 安全拍賣
4.3 公平交易支付
5 性能評估
5.1 安全計算協(xié)議性能
5.2 智能合約性能
6 結(jié) 語