亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于安全多方計(jì)算的區(qū)塊鏈智能合約執(zhí)行系統(tǒng)*

        2019-06-10 06:43:58宋曉旭薛顯斌秦博涵劉國(guó)偉
        密碼學(xué)報(bào) 2019年2期
        關(guān)鍵詞:智能

        朱 巖,宋曉旭,薛顯斌,秦博涵,劉國(guó)偉

        1.北京科技大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,北京 100083

        2.北京市經(jīng)濟(jì)和信息化委員會(huì),北京 100029

        1 引言

        區(qū)塊鏈技術(shù)作為一種不可更改、去中心、公開可訪問的交易系統(tǒng),已經(jīng)被認(rèn)為是未來金融、醫(yī)療、保險(xiǎn)、政府等領(lǐng)域的一種潛在革新性的技術(shù).越來越多的研究學(xué)者已認(rèn)識(shí)到了區(qū)塊鏈技術(shù)的顛覆性,并對(duì)區(qū)塊鏈的安全性進(jìn)行分析[1].而近年來一種被稱為智能合約(smart contract)的區(qū)塊鏈技術(shù)已被提出,它作為一種兩方或多方締結(jié)的、具有法律效力的可執(zhí)行計(jì)算機(jī)協(xié)議,正受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注.1994年密碼學(xué)家Nick Szabo[2]首次提出“智能合約”這個(gè)術(shù)語(yǔ),指出“智能合約就是執(zhí)行合約條款的可計(jì)算交易協(xié)議”,他指出計(jì)算機(jī)代碼可以代替手工操作,進(jìn)行自動(dòng)化的復(fù)雜數(shù)字財(cái)產(chǎn)交易,因此在債券、眾籌、物流、金融、計(jì)算法律學(xué)等領(lǐng)域具有廣泛的應(yīng)用前景.

        在概念上,智能合約是各方對(duì)數(shù)字資產(chǎn)轉(zhuǎn)移的一種約定.現(xiàn)有的區(qū)塊鏈技術(shù)僅支持特定指令集上簡(jiǎn)單的腳本式語(yǔ)言,不足以支持復(fù)雜合約的執(zhí)行.為了最大限度的保證協(xié)議方的權(quán)益,避免數(shù)字資產(chǎn)由于合約執(zhí)行而受到非法侵害或包含其中的秘密被泄露,某些情況下要求智能合約的參與方輸入具有隱私性以及合約執(zhí)行過程中對(duì)敵手攻擊具有抵抗能力.然而,現(xiàn)有的交易指令集僅限制在對(duì)合約數(shù)據(jù)的完整性和所有權(quán)認(rèn)證方面,對(duì)于參與方數(shù)據(jù)的隱私性尚不存在必要的安全措施,同時(shí),腳本運(yùn)行安全也存在安全風(fēng)險(xiǎn),例如,2014年3月發(fā)生的Mt.Gox 事件中,敵手針對(duì)Bitcoin 腳本程序進(jìn)行攻擊,使得85 萬(wàn)個(gè)Bitcoin 被盜取.因此,現(xiàn)有交易指令集很難達(dá)到上述目標(biāo).而針對(duì)這一問題已有學(xué)者展開研究,例如,文獻(xiàn)[3]中提出一種“沙箱” 式的智能合約系統(tǒng),通過在區(qū)塊鏈上存儲(chǔ)金融交易的特殊加密形式,從而保護(hù)交易隱私不被泄露,但必須保證“沙箱” 的安全,分布式沙箱的構(gòu)造仍是一個(gè)未解決的問題;文獻(xiàn)[4]中提出了一種被稱為Zerocoin 的比特幣加密擴(kuò)展方案,它通過引入零知識(shí)證明來擴(kuò)展交易協(xié)議,以允許完全匿名的貨幣交易,從而保證貨幣的隱私性,但此方法不能夠支持復(fù)雜的業(yè)務(wù);類似工作又如文獻(xiàn)[5],通過采用數(shù)據(jù)加密方式,構(gòu)建了一種擁有隱私保護(hù)的基于分類賬本的數(shù)字貨幣.文獻(xiàn)[6]提出將數(shù)字資產(chǎn)創(chuàng)建視為評(píng)估行為的過程,搭建基于信譽(yù)值的區(qū)塊鏈系統(tǒng),但評(píng)估不等于具體的安全措施.總之,上述工作對(duì)數(shù)字貨幣的隱私性進(jìn)行了有益探索,但并沒有根本性地解決智能合約的執(zhí)行安全問題.

        安全多方計(jì)算(secure multi-party computation,SMPC)理論及實(shí)現(xiàn)技術(shù)是解決上述問題的一種較好的候選技術(shù).在密碼學(xué)上,SMPC 是指多方能以協(xié)同方式完成一項(xiàng)計(jì)算任務(wù),并保持計(jì)算過程中各方輸入的私密性,以及最終計(jì)算結(jié)果忠誠(chéng)方的一致性.文獻(xiàn)[7]提出了基于同態(tài)加密方式設(shè)計(jì)求解分布式線性方程組的安全兩方計(jì)算協(xié)議和安全多方計(jì)算協(xié)議;文獻(xiàn)[8]中,作者使用SMPC 以及密鑰共享協(xié)議構(gòu)造多租賃用戶模型下的外包計(jì)算協(xié)議.薦于智能合約是對(duì)兩方或多方交易的程序?qū)崿F(xiàn),因此,本文將智能合約的執(zhí)行視為多租賃用戶模型下的外包計(jì)算.

        已有一些文獻(xiàn)提出采用安全多方計(jì)算實(shí)現(xiàn)智能合約,例如,文獻(xiàn)[9]針對(duì)Bitcoin 中的貨幣交易中的忠實(shí)性和隱私性問題,提出一種時(shí)間相關(guān)的承諾(timed commitments)擴(kuò)展Bitcoin 中的指令集,進(jìn)一步保證了貨幣交易的安全.文獻(xiàn)[10]擴(kuò)展了前述工作,實(shí)現(xiàn)了一種更加一般化的安全兩方計(jì)算協(xié)議.文獻(xiàn)[11]采用Bitcoin 網(wǎng)絡(luò)設(shè)計(jì)了一種支持“索賠或退款”(claim-or-refund)的兩方公平協(xié)議,并將其擴(kuò)展到帶有處罰(penalties)的安全多方計(jì)算協(xié)議設(shè)計(jì)中.然而,上述工作主要是針對(duì)Bitcoin 網(wǎng)絡(luò)及其指令集開展的研究,并沒有對(duì)常用的智能合約開發(fā)與安全執(zhí)行進(jìn)行研究,因此需要進(jìn)一步開展安全智能合約執(zhí)行系統(tǒng)領(lǐng)域的研究.

        本文針對(duì)區(qū)塊鏈中智能合約執(zhí)行安全問題開展了研究,通過提出基于SMPC 的智能合約框架、面向線性秘密共享的公平安全多方計(jì)算算法設(shè)計(jì),以及非阻塞信息傳遞接口(non-blocking MPI),系統(tǒng)性地給出了基于SMPC 的智能合約執(zhí)行流程、語(yǔ)言結(jié)構(gòu)以及語(yǔ)法規(guī)范,實(shí)現(xiàn)了具有輸入隱私性和計(jì)算正確性的公平SMPC 方法,保障了計(jì)算節(jié)點(diǎn)錯(cuò)誤下的安全群組通信,上述工作將為未來智能合約語(yǔ)言的設(shè)計(jì)開發(fā)和執(zhí)行安全提供理論基礎(chǔ).

        2 智能合約系統(tǒng)模型

        區(qū)塊鏈技術(shù)的核心是對(duì)交易的支持,通過區(qū)塊鏈交易可實(shí)現(xiàn)數(shù)字資產(chǎn)的創(chuàng)建、轉(zhuǎn)移、變更、終止等過程.文獻(xiàn)[12]中概述了現(xiàn)有加密貨幣中所使用的指令集.現(xiàn)有的交易指令集僅限制在對(duì)合約數(shù)據(jù)的完整性和所有權(quán)認(rèn)證方面,對(duì)于參與方數(shù)據(jù)的隱私性尚不存在必要的安全措施,同時(shí),腳本運(yùn)行也存在安全風(fēng)險(xiǎn).交易指令集是為保證比特幣中交易安全而提出,它是一種基于棧的腳本式語(yǔ)言,具有以下特點(diǎn):簡(jiǎn)單、緊湊、容易理解;不帶有循環(huán)結(jié)構(gòu);支持各種密碼操作;有限的時(shí)間和存儲(chǔ)開銷;非Turing 完全的.

        智能合約是執(zhí)行合約條款的可計(jì)算交易協(xié)議,智能合約不是一段簡(jiǎn)單的可執(zhí)行程序,在程序中包含財(cái)務(wù)和法律屬性.所以智能合約的制定,需要多個(gè)行業(yè)的參與,例如金融、法律以及計(jì)算機(jī)行業(yè)等.為了保證用戶的數(shù)據(jù)隱私和數(shù)據(jù)安全,用戶希望在自身信息不被他人獲取的情況下協(xié)作完成計(jì)算任務(wù).基于這些要求,本文提出了一種新的智能合約執(zhí)行架構(gòu),稱為基于SMPC 的智能合約執(zhí)行架構(gòu)(SMPC-SC).SMPC-SC 將單方執(zhí)行合約擴(kuò)展到多方共同完成合約的執(zhí)行.

        圖1 基于安全多方計(jì)算的智能合約執(zhí)行系統(tǒng)Figure 1 Execution system of smart contract based on SMPC

        當(dāng)合約運(yùn)行時(shí),根據(jù)合約參與方的要求,智能合約的多方執(zhí)行環(huán)境被建立,SMPC 被用來完成智能合約的安全執(zhí)行.本文搭建的智能合約執(zhí)行腳本將智能合約的運(yùn)行環(huán)境配置為SMPC 的執(zhí)行環(huán)境.SMPCSC 的基礎(chǔ)架構(gòu)如圖1 所示.系統(tǒng)由合約層、計(jì)算層和群組通信層組成,分別對(duì)應(yīng)了區(qū)塊鏈結(jié)構(gòu)中的交易層、數(shù)據(jù)層[13]和共識(shí)層.

        (1)合約層:合約層封裝了合約的調(diào)度算法、編輯器以及智能合約.它是實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)的靈活編程和運(yùn)行數(shù)據(jù)的基礎(chǔ).

        (2)安全計(jì)算層:安全計(jì)算層封裝了SMPC 的算法以及密鑰共享算法,在執(zhí)行智能合約的計(jì)算任務(wù)時(shí)調(diào)用SMPC 算法.

        (3)群組通信層:群組通信層封裝了P2P 協(xié)議、MPI 以及拜占庭協(xié)議.P2P 協(xié)議強(qiáng)調(diào)每個(gè)節(jié)點(diǎn)地位對(duì)等,不存在任何中心化特殊節(jié)點(diǎn).系統(tǒng)的數(shù)據(jù)傳播協(xié)議使用的是MPI 協(xié)議.共識(shí)算法采用的是拜占庭協(xié)議.

        智能合約的整個(gè)執(zhí)行過程是建立在區(qū)塊鏈網(wǎng)絡(luò)之上的,當(dāng)智能合約進(jìn)行計(jì)算時(shí),調(diào)用計(jì)算層的SMPC計(jì)算協(xié)議,在SMPC 計(jì)算協(xié)議執(zhí)行過程中,多方之間使用非阻塞MPI 群組通信協(xié)議進(jìn)行通信.

        3 合約層

        執(zhí)行系統(tǒng)中的合約層封裝了執(zhí)行合約的調(diào)度算法,解釋器以及智能合約的相關(guān)算法.在合約層中我們給出了基于SMPC 的智能合約模型,在合約執(zhí)行過程中將調(diào)用安全計(jì)算層的SMPC 算法.

        3.1 智能合約

        區(qū)塊鏈?zhǔn)蔷S護(hù)數(shù)字貨幣交易的基礎(chǔ)技術(shù)[14],區(qū)塊鏈的核心技術(shù)是對(duì)交易的支持,通過使用區(qū)塊鏈技術(shù),數(shù)字資產(chǎn)能夠進(jìn)行創(chuàng)建、交易、更改等操作.區(qū)塊鏈對(duì)數(shù)字資產(chǎn)交易的支持經(jīng)歷了從交易到合約、再到智能合約的過程,三者之間既存在聯(lián)系也存在差異:

        (1)交易:是數(shù)字資產(chǎn)轉(zhuǎn)移的記錄,以腳本代碼的方式在區(qū)塊鏈上被體現(xiàn).區(qū)塊鏈依據(jù)時(shí)間排序記錄了系統(tǒng)中所有的交易信息,因此每個(gè)有效的交易都能夠追溯到上一個(gè)交易.

        (2)合約:涉及到兩方或者多方之間自愿的具有法律效益的協(xié)議,合約通常是記錄未來數(shù)字資產(chǎn)交易的協(xié)議.包括具體交易時(shí)間、交易流程等.

        (3)智能合約:是一種數(shù)字形式的承諾,包括合約參與方執(zhí)行這些承諾的協(xié)議,或者說它是能夠自動(dòng)執(zhí)行合約條款的計(jì)算程序.

        智能合約不是傳統(tǒng)的計(jì)算機(jī)程序,它的本質(zhì)是合約.傳統(tǒng)的計(jì)算機(jī)程序是單方執(zhí)行的,合約是多方達(dá)成的協(xié)議.智能合約是多方共同完成一個(gè)具有法律效益的計(jì)算任務(wù),需要中立的公正機(jī)構(gòu)或仲裁機(jī)構(gòu)參與監(jiān)督合約的運(yùn)行,確立其合法性.智能合約需要一種安全運(yùn)行機(jī)制保證合約的運(yùn)行安全,智能合約應(yīng)該具有以下特性:

        (1)公平性:其他參與方不能比忠誠(chéng)方獲取任何優(yōu)勢(shì)(忠誠(chéng)方是指執(zhí)行過程完全按照指定過程執(zhí)行的參與方).

        (2)正確性:在合約執(zhí)行結(jié)束后,忠誠(chéng)方的結(jié)果是一致的,并且與預(yù)期結(jié)果相同(預(yù)期結(jié)果是指單個(gè)誠(chéng)實(shí)節(jié)點(diǎn)在沒有任何攻擊的情況下執(zhí)行整個(gè)智能合約所得到的執(zhí)行結(jié)果).

        (3)隱私性:對(duì)于每個(gè)參與方的輸入,在合約執(zhí)行期間,任何參與方不能夠獲得他人的敏感信息,并且每個(gè)參與方獲得的輸出只包含計(jì)算后應(yīng)該獲得的信息.

        滿足上述特性的智能合約對(duì)于區(qū)塊鏈來說是很重要的.原因在于數(shù)字資產(chǎn)被記錄在區(qū)塊鏈中,只有這樣一種足夠安全可靠的合約才能被信任去操作區(qū)塊鏈.為此,我們引入了一種密碼技術(shù)安全多方計(jì)算(SMPC),以保證智能合約執(zhí)行的安全性.SMPC 的引入能夠使智能合約滿足上述三種特性:

        (1)SMPC 強(qiáng)調(diào)多方共同參與完成一項(xiàng)計(jì)算任務(wù),以及每一方的計(jì)算任務(wù)相同,這滿足了公平性.

        (2)正確性體現(xiàn)在SMPC 中所有忠誠(chéng)方得到的最終結(jié)果是一致的.

        (3)每一個(gè)SMPC 的參與方都不能獲得其他參與方的輸入,這滿足了隱私性.

        3.2 智能合約模型

        本文通過一個(gè)簡(jiǎn)單的Alice 給Bob 轉(zhuǎn)賬的實(shí)例來介紹基于SMPC 的智能合約模型.假設(shè)Alice 的賬戶余額為AliceVal;Bob 的賬戶余額是BobVal;Alice 給Bob 的轉(zhuǎn)賬金額是X.整個(gè)交易過程是多方參與計(jì)算,Bob 將自己的賬戶余額進(jìn)行秘密共享給參與方,Alice 將自己的賬戶余額以及轉(zhuǎn)賬金額進(jìn)行秘密共享給參與方,參與方拿到密文后,直接對(duì)密文進(jìn)行運(yùn)算,然后將計(jì)算結(jié)果發(fā)送給重構(gòu)方,重構(gòu)方進(jìn)行重構(gòu)得到最終的計(jì)算結(jié)果.圖2 是以轉(zhuǎn)賬智能合約實(shí)例展示了基于SMPC 的智能合約的整體框架.

        本文在智能合約模型中引入了一個(gè)可信方Dealer,它是來管理和監(jiān)督智能合約的執(zhí)行過程.事實(shí)上,Dealer 不會(huì)參與智能合約的計(jì)算,Dealer 在執(zhí)行過程中只是起到了驗(yàn)證和通知的作用,因此Dealer 的存在并不影響智能合約的公平性.為了完成智能合約的執(zhí)行,本文在智能合約語(yǔ)言中引入了幾個(gè)控制字符,在轉(zhuǎn)賬智能模型中有以下四種控制字符:

        (1)@SMPCConfig 定義了基礎(chǔ)的操作環(huán)境,并建立了操作參數(shù),例如,變量ParmSMPC 定義了SMPC 的參數(shù).

        (2)@execute··· 用來規(guī)定下面的函數(shù)執(zhí)行者,其他的參與方來驗(yàn)證執(zhí)行者的身份(例如@execte Dealer 表示,下面的函數(shù)由Dealer 完成執(zhí)行,其他的參與方在函數(shù)執(zhí)行之前,負(fù)責(zé)驗(yàn)證Dealer的身份).

        (3)@before 和@after 表示下面的函數(shù)在特定函數(shù)之前或者之后執(zhí)行.

        圖2 轉(zhuǎn)賬智能合約模型Figure 2 Model of transfer smart contract

        圖3 展示了整個(gè)智能合約在運(yùn)行時(shí)的時(shí)序和狀態(tài)轉(zhuǎn)換.智能合約的執(zhí)行過程要經(jīng)歷四個(gè)階段:初始化階段,對(duì)合約的調(diào)用方進(jìn)行身份驗(yàn)證,初始化合約的執(zhí)行環(huán)境并對(duì)合約的數(shù)據(jù)進(jìn)行初始化;秘密分享階段,調(diào)用方將計(jì)算值進(jìn)行秘密分發(fā)給計(jì)算節(jié)點(diǎn);SMPC 階段,計(jì)算節(jié)點(diǎn)執(zhí)行自己的計(jì)算任務(wù),最后將計(jì)算結(jié)果發(fā)給Dealer;秘密重構(gòu)階段,Dealer 收集計(jì)算結(jié)果并對(duì)其進(jìn)行重構(gòu)得出最終結(jié)果并將結(jié)果傳到賬本中.

        圖3 合約的狀態(tài)轉(zhuǎn)換圖Figure 3 Transfer graph of contract state

        初始化:驗(yàn)證付款方以及收款方的身份,征集參與計(jì)算的節(jié)點(diǎn)并對(duì)執(zhí)行環(huán)境和數(shù)據(jù)進(jìn)行初始化.

        (1)身份認(rèn)證.智能合約使用secp256kl 橢圓曲線[15]派生的公鑰導(dǎo)出地址,通過使用相應(yīng)的私鑰和橢圓曲線數(shù)字簽名算法生成簽名,證明地址所有權(quán),從而來驗(yàn)證Alice 和Bob 的身份.認(rèn)證Alice的身份,驗(yàn)證者Dealer 向Alice 發(fā)送一個(gè)挑戰(zhàn)(challenge),Alice 對(duì)挑戰(zhàn)進(jìn)行簽名,給Dealer 發(fā)送響應(yīng)(response),Dealer 對(duì)Alice 發(fā)送的response 用公鑰進(jìn)行認(rèn)證,從而認(rèn)證Alice 身份;同樣的,認(rèn)證Bob 的身份.

        (2)征集計(jì)算節(jié)點(diǎn).這里需要至少征集100 個(gè)節(jié)點(diǎn),從100 個(gè)節(jié)點(diǎn)中隨機(jī)選取10 個(gè)節(jié)點(diǎn)作為參與者參與計(jì)算(此處征集結(jié)點(diǎn)數(shù)以及隨機(jī)選取節(jié)點(diǎn)數(shù)并非定值,本文為方便描述將其賦值為100 和10);將參與者ip 存入公共存儲(chǔ)區(qū)的“machines” 文件中.

        (3)環(huán)境和數(shù)據(jù)的初始化.連接machines 文件中列出的機(jī)器并啟動(dòng)每臺(tái)機(jī)器的守護(hù)進(jìn)程,以及獲取參與運(yùn)算機(jī)器的數(shù)量,并計(jì)算門限t=2 num/3.

        當(dāng)上面三個(gè)動(dòng)作全部完成后,Dealer 通知調(diào)用者Alice 和Bob 進(jìn)入秘密分享階段.

        秘密分享:對(duì)于Alice 來說,轉(zhuǎn)賬動(dòng)作是付款,是用Alice 賬戶余額減去轉(zhuǎn)賬金額X;對(duì)于Bob 來說,轉(zhuǎn)賬動(dòng)作是收款,是將X加到Bob 賬戶余額中.Alice 和Bob 將參與計(jì)算的值進(jìn)行秘密分享.

        (1)Alice 將自己的賬戶余額AliceVal 以及轉(zhuǎn)賬金額X 進(jìn)行秘密分享,這里需要保證至少t個(gè)節(jié)點(diǎn)成功接收秘密分享片段(這里調(diào)用第4 節(jié)安全多方計(jì)算模型中的SPSharingProtocol( )函數(shù)來進(jìn)行秘密共享).

        (2)Bob 將自己的賬戶余額BobVal 進(jìn)行秘密分享,和Alice 密鑰分享過程相同,這里需要保證至少t個(gè)節(jié)點(diǎn)成功接收秘密分享片段.當(dāng)Alice 和Bob 秘密分享結(jié)束,Dealer 通知所有參與節(jié)點(diǎn)進(jìn)行SMPC.如果少于t個(gè)節(jié)點(diǎn)成功接收了秘密片段,Dealer 通知Alice 和Bob 重新進(jìn)行秘密共享.

        SMPC:計(jì)算節(jié)點(diǎn)調(diào)用安全計(jì)算層的SMPC 算法去完成合約的計(jì)算過程,當(dāng)自己的計(jì)算任務(wù)完成之后,將結(jié)算結(jié)果發(fā)送給重構(gòu)方,如果重構(gòu)方收到的正確的計(jì)算結(jié)果少于t個(gè),那么計(jì)算節(jié)點(diǎn)重新進(jìn)行計(jì)算階段.

        秘密重構(gòu):重構(gòu)方收到計(jì)算節(jié)點(diǎn)發(fā)送的計(jì)算結(jié)果,進(jìn)行秘密重構(gòu)得到最終的結(jié)果.秘密重構(gòu)要求至少有門限值t個(gè)正確的結(jié)果,才能重構(gòu)出正確的最終結(jié)果.在重構(gòu)階段,調(diào)用安全計(jì)算層中的秘密重構(gòu)算法.除此之外,智能合約的計(jì)算結(jié)果上傳到區(qū)塊鏈上,這里涉及到簽名和認(rèn)證過程.

        智能合約是存儲(chǔ)在區(qū)塊鏈中,一旦有人調(diào)用智能合約,區(qū)塊鏈節(jié)點(diǎn)開始執(zhí)行上述操作,完成智能合約的調(diào)用.

        4 安全多方計(jì)算

        安全多方計(jì)算(SMPC)是n個(gè)參與者P1,P2,···,Pn,需要共同執(zhí)行某一個(gè)計(jì)算任務(wù)

        每一方Pi只能得到自己的輸入xi,并且只能獲得自己的輸出yi,SMPC 有以下安全要求:

        (1)忠誠(chéng)性,大部分的參與方是忠誠(chéng)的,忠誠(chéng)是指參與方完全按照規(guī)定執(zhí)行任務(wù).

        (2)終止性,在有限的時(shí)間中,忠誠(chéng)方能夠終止執(zhí)行計(jì)算任務(wù).

        (3)隱私性,任何參與方Pi不能夠得到其他參與方的輸入xj(ij).

        (4)一致性,所有忠誠(chéng)方最終得到相同的輸出y1=y2=···=yn.

        如果對(duì)于大小為n的域中,少于t個(gè)參與方是不誠(chéng)實(shí)的(多數(shù)參與方式忠誠(chéng)的,例如t

        由于智能合約需要中立的公正機(jī)構(gòu)或仲裁機(jī)構(gòu)參與監(jiān)督合約的運(yùn)行,在這里引入SMPC,使公正機(jī)構(gòu)或仲裁機(jī)構(gòu)不僅僅起到一個(gè)監(jiān)督作用,而且還讓它們參與智能合約的執(zhí)行.SMPC 的執(zhí)行過程中,每一方的計(jì)算任務(wù)是一致的,不存在任何中心化特殊節(jié)點(diǎn),由此特性可以保證引入SMPC 的智能合約的公平性.SMPC 隱私性的特性體現(xiàn)到智能合約中,保護(hù)合約各方的輸入信息的私密性,保證了智能合約的隱私性.

        由于MPI 支持非阻塞通信,可以滿足SMPC 中門限是t的要求.如圖4 所示是SMPC 加減法的流程圖.根據(jù)SMPC 的加減法流程圖給出的數(shù)據(jù)流圖,假設(shè)參與方為n個(gè),以計(jì)算a與b的和為例,整體數(shù)據(jù)的流向圖如圖5 所示.

        SMPC 算法的執(zhí)行過程是建立在MPI 多方通信機(jī)制上,但進(jìn)行秘密分享時(shí),由于需要發(fā)送給每方的密鑰片段是不同的,所以調(diào)用MPI 中的散發(fā)函數(shù),將密鑰片段發(fā)送給參與計(jì)算的參與方.當(dāng)各方通過MPI非阻塞通信收到密鑰片段后,對(duì)其進(jìn)行計(jì)算,然后通過MPI 非阻塞通信將計(jì)算結(jié)果發(fā)送給重構(gòu)方.重構(gòu)方通過MPI 中的收集函數(shù)收集其它方的計(jì)算結(jié)果,將收到的結(jié)果進(jìn)行秘密重構(gòu)得出最終結(jié)果.

        SMPC 的加減法運(yùn)算主要分為以下三個(gè)階段:

        (1)秘密分享:利用Shamir 的秘密共享方案[16]使用拉格朗日插值公式完成了基本的(t,n)門限秘密共享,其過程如下:在Fp中,對(duì)于給定的秘密a,隨機(jī)選取t?1 個(gè)隨機(jī)數(shù)(r1,r2,···,rt?1),令r0=a構(gòu)成多項(xiàng)式方程.對(duì)于分布式計(jì)算中的任意具有標(biāo)識(shí)的成員Pi(其中,i∈[1,n])所獲得秘密a的共享值為ai=fa(xi);同樣地,對(duì)于給定的秘密b,隨機(jī)選取t?1個(gè)隨機(jī)數(shù)(l1,l2,···,lt?1),令l0=b構(gòu)成多項(xiàng)式方程對(duì)于分布式計(jì)算中的任意具有標(biāo)識(shí)xi的成員Pi所獲得秘密b的共享值為bi=fb(xi);

        (2)計(jì)算階段:每個(gè)成員Pi通過MPI 非阻塞通信中的接收函數(shù)接收需要計(jì)算的數(shù)值,分別進(jìn)行各自的計(jì)算,得出計(jì)算結(jié)果ci,將計(jì)算結(jié)果通過MPI 非阻塞通信中的發(fā)送函數(shù)發(fā)送;

        (3)秘密重構(gòu):成員使用MPI 通信中的收集函數(shù),收集其他節(jié)點(diǎn)發(fā)送來的結(jié)果,然后進(jìn)行秘密重構(gòu).如果由m(mt)名成員所計(jì)算的結(jié)果{c1,c2,···,cm} 恢復(fù)出原始秘密值c,那么可求解出其中稱(α1,α2,···,αn)為一個(gè)重組向量.偽代碼中使用MPI 通信函數(shù)中的收集函數(shù),收集成員Pi的發(fā)來的ci,然后進(jìn)行秘密重構(gòu),得出最終的結(jié)果.

        圖4 安全多方計(jì)算加減法流程圖Figure 4 Flow chart of SMPC addition and subtraction

        圖5 安全多方計(jì)算加法數(shù)據(jù)流圖Figure 5 Data flow chart of SMPC addition and subtraction

        為了保證上述安全多方計(jì)算過程的抗攻擊性,進(jìn)一步引入可驗(yàn)證秘密共享機(jī)制如下:取乘法群的一個(gè)p階生成元為g獲得循環(huán)子群,采用可驗(yàn)證秘密分享對(duì)a進(jìn)行分享,將(其中p|(q?1))進(jìn)行廣播,那么通過驗(yàn)證等式是否成立即可驗(yàn)證分享fa(x)是否正確.同樣的采用可驗(yàn)證密鑰分享對(duì)b進(jìn)行分享,將進(jìn)行廣播,那么通過驗(yàn)證等式是否成立,即可驗(yàn)證分享fb(x)是否正確.通過驗(yàn)證是否成立即可驗(yàn)證fa(x)+fb(x)的計(jì)算結(jié)果是否正確.這至少有t方計(jì)算結(jié)果正確才能重構(gòu)出最終正確的計(jì)算結(jié)果,即門限值為t.

        5 基于MPI的多方通信機(jī)制

        安全多方計(jì)算中實(shí)現(xiàn)多名參與者之間的高效通信問題是極其重要的,本文采用MPI[17,18]通信機(jī)制,滿足在安全多方計(jì)算過程中的通信要求.

        表1 中的函數(shù)屬于MPI 系統(tǒng)函數(shù),其中Init()初始化MPI 執(zhí)行環(huán)境,建立多個(gè)MPI 進(jìn)程之間的聯(lián)系,為后續(xù)通信做準(zhǔn)備;Finalize()函數(shù)來終止MPI 的執(zhí)行環(huán)境.Size()函數(shù)返回在給定通信域中所包含的進(jìn)程個(gè)數(shù),即參與方個(gè)數(shù);Rank()函數(shù)返回給定通信域中的進(jìn)程號(hào),即給定參與方id.

        表1 MPI 中的系統(tǒng)函數(shù)Table 1 System functions in MPI

        表2 中描述的是調(diào)用的MPI 中的通信函數(shù),MPI 應(yīng)用于多方安全計(jì)算通信時(shí),主要應(yīng)用的函數(shù)是廣播,收集,散發(fā)以及全交換函數(shù).將任務(wù)進(jìn)行秘密的分發(fā)調(diào)用Scatter()函數(shù),將生成的分享片段分發(fā)給參與方;各方調(diào)用Gather()函數(shù)收集密鑰片段;調(diào)用Alltoall()函數(shù)來完成各方之間的完全消息交換.

        表2 MPI 中的通信函數(shù)Table 2 Communication functions in MPI

        在本文的SMPC-SC 執(zhí)行系統(tǒng)中,主要使用上述功能來實(shí)現(xiàn)底層通信.在系統(tǒng)中可能存在兩種攻擊:截?cái)喙粢约巴ㄐ潘矫苄怨?在MPI 中為防止截?cái)喙?這里采用非阻塞范式來解決,而通信私密性問題主要是通過計(jì)算層中的安全多方計(jì)算解決.

        本文通過時(shí)間約束以及門限限制來防止截?cái)喙?

        (1)時(shí)間約束:在一定的時(shí)間內(nèi),完成通信或者結(jié)束通信.

        (2)門限限制:在時(shí)間約束的前提下,增加門限限制.在通信被關(guān)閉之前消息正確傳輸?shù)臄?shù)量必須不少于門限值.

        在MPI-2.2 版本中點(diǎn)對(duì)點(diǎn)通信已經(jīng)滿足了阻塞和非阻塞通信的功能.阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當(dāng)前線程被掛起,直到得到結(jié)果之后才會(huì)返回;非阻塞指在不能得到返回結(jié)果之前,該調(diào)用不會(huì)阻塞當(dāng)前進(jìn)程.對(duì)于一個(gè)有效的非阻塞通信,要求在有限的時(shí)間內(nèi)通信必須被關(guān)閉,同時(shí)要保證忠誠(chéng)方的數(shù)量超過了門限值.安全多方計(jì)算的底層異步通信過于復(fù)雜,不便于描述,下面僅僅對(duì)簡(jiǎn)單的發(fā)送和接收函數(shù)進(jìn)行描述.

        圖6 展示了非阻塞通信的發(fā)送函數(shù)加上時(shí)間約束和門限限制之后的流程圖.首先建立一個(gè)時(shí)間約束,這里假設(shè)在時(shí)間tc內(nèi),使用Isend 函數(shù)向n個(gè)進(jìn)程發(fā)送n條消息.最終所使用的時(shí)間記為tc′,所成功發(fā)送的消息數(shù)量記為n′.在時(shí)間tc內(nèi),n條消息全部發(fā)送,通信被關(guān)閉;當(dāng)tc′tc時(shí),如果超過了n條消息被成功發(fā)送,那么關(guān)閉通信成功,通信被關(guān)閉;其他情況,通信是失敗的.

        實(shí)現(xiàn)的偽代碼如圖7 所示,在偽代碼中,接收函數(shù)和發(fā)送函數(shù)類似,使用進(jìn)程號(hào)去控制0 號(hào)進(jìn)程發(fā)送消息,其他進(jìn)程接收消息.調(diào)用System.currentTimeMillis( )函數(shù)獲取當(dāng)前的時(shí)間time.0 號(hào)進(jìn)程通過for 循環(huán)給其他進(jìn)程發(fā)送100 條消息,然后使用MPI.REQUEST NULL.Test 函數(shù)監(jiān)視發(fā)送狀態(tài).當(dāng)成功發(fā)送的消息數(shù)量超過67=×100并且當(dāng)前時(shí)間小于等于time+10 ms 時(shí),說明成功完成了通信.

        圖6 非阻塞send 函數(shù)流程圖Figure 6 Flowchart of non-blocking send function flowchart

        圖7 MPI 非阻塞發(fā)送和接收函數(shù)偽代碼Figure 7 Pseudo code of MPI non-blocking sending and receiving function

        6 總結(jié)

        智能合約日益成為區(qū)塊鏈技術(shù)研究的熱點(diǎn),然而如何保證智能合約在兩方或多方協(xié)同計(jì)算下的執(zhí)行安全仍然是目前沒有解決的問題,而采用密碼學(xué)中的安全多方計(jì)算技術(shù)來設(shè)計(jì)和實(shí)現(xiàn)智能合約被認(rèn)為是最具潛力的解決方案之一.據(jù)此,本文研究基于安全多方計(jì)算的智能合約,采用MPI 通信機(jī)制中的非阻塞通行方式,支持SMPC 每方計(jì)算過程中的相互通信,滿足至少門限值t個(gè)參與方能夠正確通信.SMPC 引入到智能合約,將SMPC 的特性體現(xiàn)到智能合約的公平性、隱私性以及正確性,從而通過安全多方計(jì)算技術(shù)保證智能合約執(zhí)行系統(tǒng)的安全,本文研究對(duì)未來智能合約設(shè)計(jì)具有一定的理論指導(dǎo)意義.

        猜你喜歡
        智能
        智能與自主
        讓紙變得智能
        一種智能微耕機(jī)的研發(fā)
        智能制造 反思與期望
        智能前沿
        文苑(2018年23期)2018-12-14 01:06:06
        智能前沿
        文苑(2018年19期)2018-11-09 01:30:14
        智能前沿
        文苑(2018年17期)2018-11-09 01:29:26
        智能前沿
        文苑(2018年21期)2018-11-09 01:22:32
        智能制造·AI未來
        商周刊(2018年18期)2018-09-21 09:14:46
        爭(zhēng)渡智能石化
        能源(2018年4期)2018-05-19 01:53:44
        在线观看av国产自拍| 成人免费a级毛片| 天天躁狠狠躁狠狠躁夜夜躁| 99久久久国产精品免费蜜臀| 亚洲AV无码日韩一区二区乱| 国产中文字幕免费视频一区| 台湾佬中文网站| 国产95在线 | 欧美| 国产av一区二区三区区别| 一二三四在线观看韩国视频| 免费无码专区毛片高潮喷水| 国产成人啪精品视频免费软件| 日韩精品一区二区三区在线观看| 无码专区无码专区视频网址| 蕾丝女同一区二区三区| 亚洲av首页在线| 欧美黑人乱大交| 无码流畅无码福利午夜| 日本精品久久不卡一区二区| 亚洲热妇无码av在线播放| 国产精品11p| 高清亚洲成av人片乱码色午夜| 中文字幕一区二区三区的| 亚洲码国产精品高潮在线| 加勒比无码专区中文字幕| 亚洲一区二区三区在线激情| 成人无码一区二区三区| 18禁无遮挡无码网站免费| 亚洲欧美日韩精品香蕉| 日韩人妻免费视频一专区| 九色九九九老阿姨| 国产午夜无码视频免费网站| 国产高清自产拍av在线| 亚洲一区二区三区小说| 精品国产av 无码一区二区三区| 亚洲老熟妇愉情magnet| 亚洲最新精品一区二区| 中文www新版资源在线| 女女同性黄网在线观看| 久久精品人妻中文av| 久久久久亚洲精品无码蜜桃|