• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于區(qū)塊鏈的群智網(wǎng)絡(luò)框架*

      2021-05-15 09:56:40張明瑞
      密碼學(xué)報(bào) 2021年2期
      關(guān)鍵詞:群智信譽(yù)合約

      張明瑞, 王 濤, 楊 波

      陜西師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院, 西安710119

      1 引言

      人工智能已經(jīng)進(jìn)入2.0 時(shí)代,群體智能作為其中一個(gè)重要領(lǐng)域得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[1,2].群體智能(crowd intelligence) 提供了一種新型分布式問題解決范式, 群體智能是由大量自主個(gè)體在特定網(wǎng)絡(luò)組織結(jié)構(gòu)下共同努力, 為了完成具有挑戰(zhàn)性的計(jì)算任務(wù)而產(chǎn)生的[3,4]. 群體智能中的一個(gè)基礎(chǔ)問題,就是構(gòu)建群體智能網(wǎng)絡(luò). 據(jù)我們所知, 如何構(gòu)建去中心化的群體智能網(wǎng)絡(luò)還是一個(gè)開放的問題.

      眾包作為群體智能的初級(jí)階段, 主要以解決人智密集型任務(wù)為主[3]. 自從2006 年, 文獻(xiàn)[5] 提出眾包概念以來(lái), 學(xué)術(shù)界對(duì)其進(jìn)行了深入研究, 并將其應(yīng)用在信息共享、投票系統(tǒng)、城市管理、公共安全等領(lǐng)域[6,7]. 部分商業(yè)眾包平臺(tái)已經(jīng)得到部署與應(yīng)用, 例如Upwork[8]、Uber[9]等. 但是, 這些眾包平臺(tái)均為傳統(tǒng)的中心化組織結(jié)構(gòu), 容易遭受各類網(wǎng)絡(luò)攻擊, 存在業(yè)務(wù)失敗的風(fēng)險(xiǎn). 例如DDoS 攻擊、節(jié)點(diǎn)失效故障以及平臺(tái)數(shù)據(jù)泄露等, 這些安全風(fēng)險(xiǎn)已經(jīng)造成了大量的經(jīng)濟(jì)損失[10].

      為了避免中心化組織結(jié)構(gòu)帶來(lái)的安全風(fēng)險(xiǎn). 2013 年, 文獻(xiàn)[11] 提出了一種分布式眾包系統(tǒng), 目的是以協(xié)同的方式完成任務(wù), 提高任務(wù)完成效率. 2015 年, 文獻(xiàn)[12] 提出了一種應(yīng)用于移動(dòng)眾包網(wǎng)絡(luò)的分布式任務(wù)選擇協(xié)議. 但是, 這類分布式的眾包平臺(tái), 只能保證分布式的分發(fā)任務(wù), 任務(wù)收集與供應(yīng)仍然是由中心系統(tǒng)提供服務(wù), 仍然面臨安全風(fēng)險(xiǎn).

      為了提高眾包平臺(tái)組織結(jié)構(gòu)去中心化水平. 2016 年, 隨著以太坊的蓬勃發(fā)展, 區(qū)塊鏈進(jìn)入2.0 時(shí)代,基于區(qū)塊鏈的眾包系統(tǒng)與應(yīng)用被相繼提出. 2016 年, 文獻(xiàn)[13] 提出了一種基于區(qū)塊鏈的專門眾籌平臺(tái)(bounty-based crowdfunding), 這是一個(gè)專門的眾籌平臺(tái), 并不具備通用性. 2017 年, 文獻(xiàn)[14] 提出了一種改進(jìn)的協(xié)議解決眾包系統(tǒng)中的小值交易問題, 該協(xié)議主要的關(guān)注點(diǎn)是小值交易問題, 系統(tǒng)不具備通用性.2018 年, 文獻(xiàn)[15] 提出了構(gòu)建于區(qū)塊鏈上的私有匿名眾包系統(tǒng)(zebraLancer), 設(shè)計(jì)了具體的協(xié)議與方法,有效防止數(shù)據(jù)泄露與身份泄露, 但是所有參與者需要通過專門的身份認(rèn)證機(jī)構(gòu)獲取證書, 專門的身份認(rèn)證機(jī)構(gòu)可能帶來(lái)額外的安全風(fēng)險(xiǎn). 同年, 文獻(xiàn)[10] 提出了基于區(qū)塊鏈的眾包平臺(tái)(crowdbc), 不依賴任何第三方平臺(tái)完成眾包工作. 并提出了一個(gè)具體的方案, 使用智能合約控制業(yè)務(wù)流程, 但是crowdbc 系統(tǒng)主要面向人智密集型任務(wù), 缺少應(yīng)對(duì)機(jī)器智能密集型任務(wù)能力, 使用一種全局智能合約管理所有參與者, 不利于系統(tǒng)擴(kuò)展與維護(hù). 2019 年, 文獻(xiàn)[16] 提出了一種混合式區(qū)塊鏈眾包系統(tǒng)(zkcrowd), 主要關(guān)注的是任務(wù)的隱私保護(hù)問題. zkcrowd 將任務(wù)分為私有任務(wù)與公開任務(wù)兩種類型, 用一條公鏈管理公開類型的任務(wù),對(duì)于私有任務(wù)則使用從公鏈上展開的側(cè)鏈管理, 對(duì)任務(wù)做了多樣化隱私保護(hù), 但是缺乏對(duì)任務(wù)數(shù)據(jù)流向的跟蹤管理. 并且上述幾種基于區(qū)塊鏈的眾包平臺(tái)將數(shù)據(jù)處理委托給第三方平臺(tái), 隨著各類終端智能設(shè)備的加入, 終端節(jié)點(diǎn)感知類數(shù)據(jù)激增, 如果將數(shù)據(jù)全部上傳云平臺(tái)或其他分布式數(shù)據(jù)系統(tǒng), 可能反而會(huì)降低數(shù)據(jù)處理效率[17].

      綜上所述, 基于區(qū)塊鏈的群體智能網(wǎng)絡(luò)當(dāng)前主要面臨的問題有:

      (1) 當(dāng)前基于區(qū)塊鏈的群體智能系統(tǒng)主要是面向特定具體的應(yīng)用, 缺少通用性與擴(kuò)展性. 面對(duì)新的群智應(yīng)用結(jié)合區(qū)塊鏈場(chǎng)景, 往往需要重新設(shè)計(jì)應(yīng)用結(jié)構(gòu), 現(xiàn)有的相關(guān)方案設(shè)計(jì)難以移植與擴(kuò)展.crowdbc[10]作為當(dāng)前最好的基于區(qū)塊鏈的眾包框架方案, 也存在全局控制合約、不利于擴(kuò)展維護(hù)、存在擴(kuò)展性受限的問題.

      (2) 當(dāng)前基于區(qū)塊鏈的群體智能系統(tǒng)主要依靠責(zé)任任務(wù)工人獨(dú)立集中處理數(shù)據(jù), 或者由云服務(wù)器集中處理數(shù)據(jù). 這要求任務(wù)工人具有較高的數(shù)據(jù)處理能力, 導(dǎo)致工人準(zhǔn)入門檻較高, 不利于擴(kuò)大參與者群體. 在處理感知類群智任務(wù)時(shí), 往往任務(wù)數(shù)據(jù)量龐大, 如果不能及時(shí)處理, 可能會(huì)產(chǎn)生數(shù)據(jù)處理效率降低、任務(wù)延時(shí)增大的問題.

      1.1 本文貢獻(xiàn)

      本文主要貢獻(xiàn)如下.

      (1) 針對(duì)當(dāng)前基于區(qū)塊鏈的群智系統(tǒng)缺乏擴(kuò)展性與通用性的問題, 提出了一種基于區(qū)塊鏈的通用群智網(wǎng)絡(luò)框架, 不同于最近被提出的各類基于區(qū)塊鏈面向特定應(yīng)用的眾包方案, 是一種為了提高基于區(qū)塊鏈的群體智能應(yīng)用構(gòu)造效率, 所設(shè)計(jì)的通用群體智能框架. 針對(duì)不同功能層分別設(shè)計(jì)了對(duì)應(yīng)的智能合約. 不設(shè)置全局控制合約, 各層控制合約地位相對(duì)獨(dú)立. 降低了模塊之間的耦合性, 從而提高系統(tǒng)的可擴(kuò)展性, 并且提供了一個(gè)具體的設(shè)計(jì)實(shí)現(xiàn)方案.

      (2) 針對(duì)當(dāng)前基于區(qū)塊鏈的群智系統(tǒng)集中處理數(shù)據(jù)可能導(dǎo)致延時(shí)的問題, 借助邊緣計(jì)算的概念, 允許各類閑置智能設(shè)備作為邊緣處理節(jié)點(diǎn), 分擔(dān)云服務(wù)器的數(shù)據(jù)處理壓力. 擴(kuò)大了參與者范圍, 提高了任務(wù)的實(shí)時(shí)響應(yīng)能力. 將數(shù)據(jù)處理流程獨(dú)立管理, 設(shè)計(jì)了數(shù)據(jù)流控制合約對(duì)邊緣數(shù)據(jù)處理任務(wù)進(jìn)行跟蹤管理, 允許群智任務(wù)主動(dòng)請(qǐng)求邊緣節(jié)點(diǎn)提供數(shù)據(jù)處理服務(wù), 最終達(dá)到降低任務(wù)延遲、降低任務(wù)成本的目的.

      (3) 對(duì)所提基于區(qū)塊鏈的群體智能框架可能遭遇的安全風(fēng)險(xiǎn)進(jìn)行了分析, 對(duì)任務(wù)數(shù)據(jù)的傳輸過程使用密碼工具符號(hào)進(jìn)行了描述. 最后, 使用以太坊智能合約編程語(yǔ)言Solidity 對(duì)所提三種智能合約進(jìn)行了實(shí)現(xiàn)驗(yàn)證, 在以太坊Ropsten 網(wǎng)絡(luò)上進(jìn)行了測(cè)試, 實(shí)驗(yàn)結(jié)果表明了本系統(tǒng)的可行性與可用性.

      2 系統(tǒng)結(jié)構(gòu)

      2.1 系統(tǒng)模型

      在本節(jié)中, 我們將描述基于區(qū)塊鏈的群智網(wǎng)絡(luò)系統(tǒng)模型. 如圖1 所示, 在線上模型中有三個(gè)參與實(shí)體,分別是任務(wù)請(qǐng)求者、任務(wù)工人和礦工. 所有參與實(shí)體均為對(duì)等節(jié)點(diǎn), 三種實(shí)體之間的交互均通過鏈上交易實(shí)現(xiàn). 宏觀模型描述的是各參與實(shí)體與區(qū)塊鏈之間的數(shù)據(jù)傳輸流向, 各參與者實(shí)體也可作為數(shù)據(jù)的處理與傳輸節(jié)點(diǎn). 表1 為本文中主要使用符號(hào)解釋.

      圖1 系統(tǒng)模型圖Figure 1 System model of crowd intelligence

      任務(wù)請(qǐng)求者: 任務(wù)請(qǐng)求者, 即為群智網(wǎng)絡(luò)中群智任務(wù)的發(fā)起者, 群智任務(wù)可以由人類或者機(jī)器請(qǐng)求者發(fā)起. 首先, 任務(wù)請(qǐng)求者部署參與者控制智能合約(user control smart contract, UCSC), 完善身份信息.參與者的身份與身份控制智能合約是一一對(duì)應(yīng)的關(guān)系, 參與者信息被寫入?yún)^(qū)塊鏈不可更改, 允許所有人查詢驗(yàn)證. 然后, 任務(wù)請(qǐng)求者部署任務(wù)控制智能合約(task control smart contract, TCSC), 完善任務(wù)信息并發(fā)布群智任務(wù). TCSC 與群智任務(wù)也是唯一對(duì)應(yīng)關(guān)系. 等待任務(wù)工人向TCSC 發(fā)起交易, 承包符合條件的群智任務(wù). 任務(wù)完成后, TCSC 向參與各方結(jié)算任務(wù)報(bào)酬.

      任務(wù)工人: 任務(wù)工人, 即為執(zhí)行具體任務(wù)的角色, 群智網(wǎng)絡(luò)中的任務(wù)工人類型多樣, 包括職業(yè)人類工人、商業(yè)集群服務(wù)器、終端感知節(jié)點(diǎn)以及其他專門智能系統(tǒng). 任務(wù)工人部署UCSC 后進(jìn)入群智網(wǎng)絡(luò), 根據(jù)其技能、信譽(yù)、歷史信息等指標(biāo), 向匹配的TCSC 發(fā)起交易承包任務(wù). 如果群智任務(wù)需要邊緣數(shù)據(jù)處理支持, 任務(wù)工人還需要根據(jù)TCSC 任務(wù)信息, 部署數(shù)據(jù)流控制合約(data stream control smart contract,DSCSC), 完善邊緣節(jié)點(diǎn)信息以及數(shù)據(jù)處理任務(wù)信息, 監(jiān)管數(shù)據(jù)處理流程. 其他具備數(shù)據(jù)處理?xiàng)l件的工人,承包數(shù)據(jù)處理任務(wù), 任務(wù)完成后由承包任務(wù)的責(zé)任工人支付報(bào)酬.

      表1 主要符號(hào)對(duì)照表Table 1 Symbol description

      礦工: 礦工是系統(tǒng)中的參與實(shí)體, 礦工有兩個(gè)主要任務(wù). 第一, 礦工通過挖礦為區(qū)塊鏈生成區(qū)塊, 將各類交易寫入?yún)^(qū)塊. 第二, 礦工根據(jù)TCSC 提供的數(shù)據(jù)驗(yàn)證方法對(duì)各類任務(wù)數(shù)據(jù)進(jìn)行驗(yàn)證. 礦工也需要完善身份信息并部署UCSC.

      本系統(tǒng)共有三個(gè)參與實(shí)體, 分別為任務(wù)請(qǐng)求者、任務(wù)工人和礦工. 所有參與者都需要部署唯一身份合約UCSC. 每個(gè)群智任務(wù)對(duì)應(yīng)部署一個(gè)任務(wù)合約TCSC, 如果任務(wù)需要邊緣數(shù)據(jù)處理支持, 則還需要部署數(shù)據(jù)控制合約DSCSC. 所有參與者之間的交互全部通過智能合約交易完成.

      2.2 系統(tǒng)分層

      本節(jié)主要描述系統(tǒng)框架分層. 如圖2 所示, 本系統(tǒng)共分為三層, 參與者管理層、任務(wù)管理層以及數(shù)據(jù)流管理層. 在每個(gè)分層中通過UCSC 身份控制合約、TCSC 任務(wù)控制合約和DSCSC 數(shù)據(jù)流控制合約實(shí)現(xiàn)業(yè)務(wù)功能.

      圖2 系統(tǒng)分層圖Figure 2 System architecture

      參與者管理層: 本層主要包括參與者基本信息管理、技能與信譽(yù)評(píng)價(jià)機(jī)制, 參與者隱私保護(hù)等功能.本系統(tǒng)將區(qū)塊鏈作為身份管理的載體, 將身份控制智能合約(UCSC) 作為身份憑證. 與傳統(tǒng)基于證書的PKI 身份認(rèn)證方法相比, 具有查詢效率高、安全可靠、兼容性廣泛的優(yōu)點(diǎn). 當(dāng)前, 信用機(jī)制種類多樣(例如積累信譽(yù)值、提交押金等方式), 本系統(tǒng)將信譽(yù)值作為信譽(yù)評(píng)價(jià)的唯一標(biāo)準(zhǔn), 信譽(yù)值積累越高意味著參與者可靠程度越高. 參與者可以選擇實(shí)名或匿名進(jìn)入網(wǎng)絡(luò), 實(shí)名注冊(cè)可以獲得更多信譽(yù)值獎(jiǎng)勵(lì).

      任務(wù)管理層: 本層主要功能包括任務(wù)信息管理、任務(wù)流程管控、任務(wù)獎(jiǎng)懲機(jī)制以及任務(wù)隱私保護(hù). 任務(wù)請(qǐng)求者部署TCSC 合約, 信息管理與流程管控均通過向該智能合約發(fā)起交易的形式來(lái)執(zhí)行. TCSC 被部署上鏈后, 意味著該任務(wù)被公開發(fā)布, 任務(wù)工人可以向該合約發(fā)起交易承包任務(wù). 任務(wù)獎(jiǎng)勵(lì)-懲罰機(jī)制發(fā)揮著維護(hù)工人與任務(wù)發(fā)布者之間公平交換的重要作用, 本文僅使用信譽(yù)值T 來(lái)作為獎(jiǎng)勵(lì)與懲罰的唯一標(biāo)準(zhǔn). 參與者信譽(yù)值越高即可靠性越高, 參與者信譽(yù)值初始為0, 不同任務(wù)信譽(yù)值獎(jiǎng)勵(lì)值不同, 工人成功完成任務(wù)積累信譽(yù)值. 反之, 任務(wù)失敗扣除相應(yīng)的信譽(yù)值, 工人信譽(yù)值越高就可以接取更高報(bào)酬的任務(wù). 如果任務(wù)發(fā)布者無(wú)故取消任務(wù), 則扣除其相應(yīng)信譽(yù)值, 以上執(zhí)行邏輯均由智能合約實(shí)現(xiàn). 本系統(tǒng)所有交易均有時(shí)間限制, 以區(qū)塊鏈中區(qū)塊誕生數(shù)量為時(shí)間計(jì)量標(biāo)準(zhǔn), 每個(gè)任務(wù)均設(shè)定最終完成時(shí)間與最終支付時(shí)間. 如果超時(shí)未完成任務(wù)或結(jié)果不合格, 工人則無(wú)法獲得報(bào)酬. 如果任務(wù)發(fā)起者違約超時(shí)或未支付結(jié)算報(bào)酬, 則扣除任務(wù)發(fā)起者信譽(yù)值補(bǔ)償工人. 工人獲得所有收益Profit 包含貨幣收益與信譽(yù)值收益. 總收益Profit 計(jì)算方式如公式(1), 任務(wù)數(shù)據(jù)評(píng)估閾值α, 任務(wù)數(shù)據(jù)評(píng)估結(jié)果β, 貨幣報(bào)酬M, 信譽(yù)值獎(jiǎng)勵(lì)值T, 懲罰系數(shù)n, 任務(wù)實(shí)際完成時(shí)間Timetask, 任務(wù)約定完成時(shí)間Timetask-ddl, 實(shí)際支付時(shí)間Timepay, 任務(wù)約定支付報(bào)酬時(shí)限Timepay-ddl. 如果任務(wù)完成超時(shí)或者任務(wù)完成質(zhì)量不合格, 任務(wù)工人不會(huì)得到任何貨幣獎(jiǎng)勵(lì)并且會(huì)被扣除獎(jiǎng)勵(lì)信譽(yù)值. 如果任務(wù)工人完成了任務(wù). 但是任務(wù)發(fā)起者未及時(shí)支付任務(wù)工人報(bào)酬(例如, 取消任務(wù)或余額不足). 則任務(wù)工人可能無(wú)法獲得貨幣報(bào)酬. 但是至少會(huì)得到n 倍信譽(yù)值獎(jiǎng)勵(lì)作為補(bǔ)償. 信譽(yù)值獎(jiǎng)勵(lì)來(lái)自任務(wù)請(qǐng)求者扣除數(shù)量. 以上結(jié)算過程均通過智能合約自動(dòng)按照預(yù)設(shè)條件執(zhí)行.

      所有工人處理任務(wù)數(shù)據(jù)時(shí), 均使用任務(wù)請(qǐng)求者公鑰對(duì)任務(wù)數(shù)據(jù)進(jìn)行加密, 并使用自己的私鑰對(duì)數(shù)據(jù)承諾值簽名以保證數(shù)據(jù)的可靠性.

      數(shù)據(jù)流管理層: 本層主要功能包括節(jié)點(diǎn)信息管理、數(shù)據(jù)流向監(jiān)管、數(shù)據(jù)隱私保護(hù). 隨著大量物聯(lián)網(wǎng)設(shè)備加入網(wǎng)絡(luò), 終端數(shù)據(jù)量急劇增加, 可能會(huì)降低云服務(wù)的數(shù)據(jù)處理效率. 本文借助邊緣計(jì)算概念, 允許邊緣智能設(shè)備參與任務(wù)數(shù)據(jù)的處理, 將部分云任務(wù)下放到網(wǎng)絡(luò)邊緣, 這將為感知類群智任務(wù)提供更好的支持.任務(wù)工人部署數(shù)據(jù)流控制智能合約DSCSC, 確定任務(wù)工人、邊緣節(jié)點(diǎn)、任務(wù)發(fā)布者之間的關(guān)系. 監(jiān)管終端數(shù)據(jù)產(chǎn)生、邊緣數(shù)據(jù)處理、解決方案上傳過程. 任務(wù)報(bào)酬結(jié)算時(shí), 首先由任務(wù)發(fā)布者支付任務(wù)工人報(bào)酬,任務(wù)工人收到報(bào)酬后, 支付數(shù)據(jù)處理節(jié)點(diǎn)報(bào)酬并更新DSCSC 合約狀態(tài). 邊緣節(jié)點(diǎn)最終將處理完成的任務(wù)數(shù)據(jù)發(fā)送到指定地址, 并在對(duì)應(yīng)TCSC 合約中設(shè)定完成標(biāo)志. 所有節(jié)點(diǎn)處理任務(wù)數(shù)據(jù)時(shí), 均使用任務(wù)請(qǐng)求者公鑰對(duì)任務(wù)數(shù)據(jù)進(jìn)行加密, 并使用自己的私鑰對(duì)數(shù)據(jù)承諾值簽名. 任務(wù)工人在群智任務(wù)結(jié)束后, 及時(shí)向邊緣節(jié)點(diǎn)支付報(bào)酬與信譽(yù)值獎(jiǎng)勵(lì). 數(shù)據(jù)處理節(jié)點(diǎn)的收益計(jì)算方法與TCSC 中任務(wù)工人收益計(jì)算方法相同.

      3 方案構(gòu)造

      3.1 智能合約方案

      本節(jié)主要描述系統(tǒng)中智能合約用例及關(guān)系, 如圖3 所示. 每種合約在被部署后即為在線狀態(tài), 業(yè)務(wù)未完成則該狀態(tài)保持不變, 業(yè)務(wù)完成時(shí)最終轉(zhuǎn)移為結(jié)束狀態(tài), 每種合約具有不同的結(jié)束狀態(tài). 身份如果被注銷則UCSC 被修改為撤銷狀態(tài), 群智任務(wù)結(jié)束時(shí), TCSC 可能進(jìn)入成功結(jié)束狀態(tài)或失敗結(jié)束狀態(tài), 邊緣數(shù)據(jù)處理失敗時(shí)則DSCSC 可能進(jìn)入成功結(jié)束狀態(tài)或失敗結(jié)束狀態(tài). 以上成功結(jié)束意味著任務(wù)完成, 失敗結(jié)束則表明任務(wù)失敗. 失敗原因有多種, 例如任務(wù)被取消, 請(qǐng)求者無(wú)法支付, 系統(tǒng)故障等. 任何系統(tǒng)與合約狀態(tài)的改變均由交易觸發(fā). UCSC、TCSC、DSCSC 合約用例描述如下.

      UCSC (Address,State,Skill,pre_work,Um,T) 中主要狀態(tài)變量描述如下. Address 參與者外部賬戶地址. State 參與者當(dāng)前狀態(tài), 指示工作狀態(tài). Skill 參與者技能指標(biāo), 描述參與者技能信息. pre_work參與者上一次參與任務(wù)的地址, 記錄上一次參與完成的任務(wù)地址, 可形成工人的歷史任務(wù)鏈接. Um 參與者模式, 包括主動(dòng)參與模式(用戶可以自主選擇符合條件的任務(wù))、被動(dòng)參與模式(用戶只接受系統(tǒng)自動(dòng)分配的任務(wù)). T 信譽(yù)值, 初始為0, 需要不斷完成任務(wù)積累, 也是承包任務(wù)資格重要條件. 參與者信息管理由上述變量實(shí)現(xiàn), 技能與信譽(yù)評(píng)價(jià)機(jī)制是模塊化可替換的, 可以根據(jù)系統(tǒng)的具體要求變更. UCSC 合約與參與者是一一對(duì)應(yīng)關(guān)系, 任何時(shí)刻只允許參與者有唯一有效UCSC 合約存在于網(wǎng)絡(luò)中.

      圖3 智能合約用例圖Figure 3 Structure of smart contracts

      TCSC (UCSC, State, Skill, Set_[], Set_prework[], Dm, T, M, Eva_fun(), Timetask-ddl, Addrdata,Timepay-ddl)中主要狀態(tài)變量描述如下. UCSC 任務(wù)發(fā)布者身份合約地址. State 指示當(dāng)前任務(wù)狀態(tài). Skill任務(wù)技能要求. T 參與工人信譽(yù)值要求. M 任務(wù)報(bào)酬. Dm 任務(wù)數(shù)據(jù)處理模式, 即是否需要邊緣數(shù)據(jù)處理支持. Set_worker[] 參與者UCSC 地址集合. Set_prework[] 參與者上一次任務(wù)地址. 任務(wù)評(píng)估函數(shù)Eva_fun(), 文獻(xiàn)[10] 提出了一種任務(wù)評(píng)估函數(shù)設(shè)置方法, 即由任務(wù)發(fā)起者提供任務(wù)數(shù)據(jù)驗(yàn)證函數(shù), 當(dāng)工人提交任務(wù)數(shù)據(jù)后, 礦工可以在不知道數(shù)據(jù)細(xì)節(jié)的條件下, 使用由請(qǐng)求者提供的驗(yàn)證方法進(jìn)行評(píng)估, 請(qǐng)求者最終根據(jù)評(píng)估結(jié)果向工人支付報(bào)酬. Timetask-ddl任務(wù)數(shù)據(jù)提交截止時(shí)間, Timepay-ddl任務(wù)清算截止時(shí)間. Addrdata任務(wù)數(shù)據(jù)存儲(chǔ)地址. 每個(gè)任務(wù)存在唯一與之對(duì)應(yīng)的TCSC 合約, 任務(wù)狀態(tài)變更只能通過向合約發(fā)起交易來(lái)改變.

      DSCSC(AddressData-in,AddressData-out,UCSC,TCSC,State,Skill,T,M,Timetask-ddl,Timepay-ddl)中主要狀態(tài)變量描述如下. TCSC 任務(wù)合約地址, UCSC 發(fā)布者身份合約地址. State 當(dāng)前節(jié)點(diǎn)狀態(tài),Skill 節(jié)點(diǎn)數(shù)據(jù)處理能力. T 參與節(jié)點(diǎn)信譽(yù)值要求, M 任務(wù)報(bào)酬. AddressData-in待處理數(shù)據(jù)來(lái)源地址,AddressData-out處理結(jié)果傳出地址. Timetask-ddl任務(wù)數(shù)據(jù)提交截止時(shí)間. Timepay-ddl任務(wù)清算截止時(shí)間. 合約狀態(tài)變更智能通過向合約發(fā)起交易改變.

      3.2 業(yè)務(wù)流程

      本節(jié)主要描述整個(gè)系統(tǒng)的業(yè)務(wù)流程. 第一部分描述業(yè)務(wù)的執(zhí)行流程, 第二部分描述群智任務(wù)數(shù)據(jù)的傳輸流程. 如圖4 所示, 本系統(tǒng)主流程共分為三個(gè)階段. 參與者事務(wù)管理階段, 所有參與者分別部署自己的身份合約UCSC. 任務(wù)請(qǐng)求者可以通過部署TCSC 發(fā)布群智任務(wù), 任務(wù)工人向匹配的TCSC 發(fā)起交易承包任務(wù), 如果任務(wù)需要邊緣數(shù)據(jù)處理, 進(jìn)入數(shù)據(jù)流控制階段, 任務(wù)工人選擇符合要求的邊緣節(jié)點(diǎn), 并部署DSCSC 監(jiān)管邊緣數(shù)據(jù)處理過程.

      本系統(tǒng)的一次完整的詳細(xì)時(shí)序流程如圖5 所示. 從任務(wù)流程執(zhí)行的角度看, 步驟1–6 屬于參與者事務(wù)管理階段. 步驟7–10、20–26、29–32 屬于任務(wù)控制階段, 步驟11–19、27–28 屬于數(shù)據(jù)流控制階段.

      (1) 步驟1–6, 請(qǐng)求者、任務(wù)工人(邊緣節(jié)點(diǎn))、礦工調(diào)用信息注冊(cè)腳本算法Register_Info() 部署自己的身份合約UCSC, 身份合約即為群智網(wǎng)絡(luò)中唯一有效的身份標(biāo)識(shí).

      (2) 步驟7–8, 請(qǐng)求者發(fā)起群智任務(wù), 完善任務(wù)信息并部署TCSC 合約.

      (3) 步驟 9–10, 任務(wù)工人遍歷區(qū)塊發(fā)現(xiàn)在線群智任務(wù), 任務(wù)工人調(diào)用承包任務(wù)算法 Getwork_FromTcsc, 輸入自己的技能、信譽(yù)等相關(guān)信息. 檢驗(yàn)是否符合任務(wù)要求, 如果符合任務(wù)要求,則增加自己的UCSC 地址到TCSC 合約工人集合中, 任務(wù)承包完成.

      (4) 如果群智任務(wù)需要邊緣數(shù)據(jù)處理支持, 則繼續(xù)執(zhí)行步驟11–19, 任務(wù)工人部署數(shù)據(jù)合約DSCSC,完善數(shù)據(jù)處理節(jié)點(diǎn)信息, 任務(wù)指派在這里有兩種方式, 由任務(wù)工人部署DSCSC 時(shí)選定符合條件的節(jié)點(diǎn)直接指派任務(wù); 或者先由工人部署DSCSC 合約, 等待符合條件的節(jié)點(diǎn)調(diào)用邊緣任務(wù)承包算法Getwork_FromDscsc 主動(dòng)承接任務(wù). 邊緣節(jié)點(diǎn)將處理完成的任務(wù)數(shù)據(jù)上傳至該任務(wù)對(duì)應(yīng)TCSC 指定地址, 設(shè)置任務(wù)完成標(biāo)志, 等待驗(yàn)證節(jié)點(diǎn)驗(yàn)證數(shù)據(jù). 當(dāng)驗(yàn)證節(jié)點(diǎn)驗(yàn)證完成后, 上傳驗(yàn)證結(jié)果, 并設(shè)置驗(yàn)證完成標(biāo)志位.

      (5) 步驟20–26, 任務(wù)工人上傳任務(wù)數(shù)據(jù), 表示工人工作完成, 等待礦工驗(yàn)證工人成果, 礦工根據(jù)合約中的任務(wù)數(shù)據(jù)驗(yàn)證方法對(duì)數(shù)據(jù)進(jìn)行評(píng)估, 評(píng)估完成后上傳驗(yàn)證結(jié)果. 當(dāng)所有任務(wù)均完成或者到達(dá)最后截止時(shí)間, 則結(jié)算工人報(bào)酬.

      (6) 步驟27–28, 任務(wù)工人給參與任務(wù)的邊緣節(jié)點(diǎn)結(jié)算報(bào)酬.

      (7) 步驟29–32, 群智任務(wù)流程結(jié)束, 任務(wù)成功設(shè)置TCSC、DSCSC 為關(guān)閉狀態(tài).

      圖4 系統(tǒng)業(yè)務(wù)流程圖Figure 4 Flow diagram

      圖5 系統(tǒng)業(yè)務(wù)時(shí)許圖Figure 5 Sequence diagram

      線下數(shù)據(jù)傳輸流程:

      (1) 任務(wù)發(fā)布者或數(shù)據(jù)采集者生成原始數(shù)據(jù)Dataorign.

      (2) 數(shù)據(jù)生產(chǎn)者對(duì)原始數(shù)據(jù)進(jìn)行簽名, 用數(shù)據(jù)處理者公鑰對(duì)原始數(shù)據(jù)加密, 將簽名與加密數(shù)據(jù)作為待處理數(shù)據(jù)Datawait-p, 發(fā)送至云端或者邊緣處理節(jié)點(diǎn), 描述如下:

      (3) 云端或者數(shù)據(jù)處理節(jié)點(diǎn)處理完成數(shù)據(jù)后得到最終結(jié)果Datafin, 對(duì)最終結(jié)果哈希值進(jìn)行簽名, 用任務(wù)發(fā)起者公鑰進(jìn)行加密, 得到待驗(yàn)證數(shù)據(jù)Datawait-v, 發(fā)送至任務(wù)請(qǐng)求者指定位置, 描述如下:

      (4) 任務(wù)發(fā)布者收到任務(wù)數(shù)據(jù)后, 礦工即可請(qǐng)求驗(yàn)證, 此處將上式兩個(gè)簽名簡(jiǎn)寫為Sign1、Sign2. 礦工驗(yàn)證兩個(gè)簽名, 使用任務(wù)發(fā)布者提供的驗(yàn)證函數(shù)進(jìn)行驗(yàn)證, 得到驗(yàn)證結(jié)果Datafin-r, 描述如下:

      3.3 主要方法

      信息發(fā)布: 本系統(tǒng)中身份注冊(cè)、群智任務(wù)注冊(cè)、數(shù)據(jù)任務(wù)注冊(cè)全部通過部署相應(yīng)合約實(shí)現(xiàn). 參與者通過客戶端發(fā)起部署合約交易. 參與者明確所注冊(cè)數(shù)據(jù)信息, 將這些數(shù)據(jù)作為智能合約初始化參數(shù), 生成并部署對(duì)應(yīng)的智能合約. 信息注冊(cè)算法流程描述如腳本算法1 Register_Info 所示. 輸入為參與者需要部署相應(yīng)合約的初始化信息Ucsc_info、Tcsc_info、Dscsc_info. 參與者可分別部署三種合約, 并調(diào)用相應(yīng)合約的初始化方法, 輸出為參與者需要部署的合約UCSC, TCSC, DSCSC 地址.

      任務(wù)評(píng)估與結(jié)算: 任務(wù)評(píng)估與結(jié)算流程, 如腳本算法2 Evl_Pay_Task 所示, 輸入為Tcsc、Dscsc、Ucsc 合約地址. 當(dāng)工人完成任務(wù)時(shí),將任務(wù)數(shù)據(jù)上傳至指定地址, 并將當(dāng)前任務(wù)完成的時(shí)間(區(qū)塊編號(hào))寫入Tcsc 合約. 當(dāng)數(shù)據(jù)處理節(jié)點(diǎn)完成任務(wù)時(shí), 將任務(wù)數(shù)據(jù)上傳至指定地址, 并將當(dāng)前任務(wù)完成的區(qū)塊編號(hào)寫入Tcsc 合約. 任務(wù)數(shù)據(jù)由礦工或其他參與者請(qǐng)求驗(yàn)證, 驗(yàn)證者將驗(yàn)證結(jié)果寫入Tcsc 合約. 當(dāng)任務(wù)時(shí)間截止或所有任務(wù)均完成, 調(diào)用支付算法結(jié)算各任務(wù)參與者報(bào)酬, 完成任務(wù)評(píng)估與結(jié)算. 更新任務(wù)合約內(nèi)容, 返回任務(wù)合約地址Tcsc.

      算法1 Register_Info()Input: Ucsc_info, Tcsc_info, Dscsc_info Output: Ucsc,Tcsc,Dscsc 1 User Call:2 Deployed Ucsc;3 Ucsc →setinfo(Ucsc_info);4 User Call:5 Deployed Tcsc 6 Tcsc →setinfo(Tcsc_info);7 Tcsc →init(Tcsc_info);8 User Call:9 Deployed Dscsc;10 Dscsc →setinfo(Ucsc_info,Tcsc_info);11 Return Ucsc,Tcsc,Dscsc;

      Output: Tcsc 1 Worker Call:2 Tcsc →upload_by_ucsc(Ucsc);3 Tcsc →upload_by_dscsc(Dscsc);4 Verifier Call:5 Tcsc →require_verify(Ucsc);6 Tcsc →upload_result(Ucsc,res);7 TaskOwner or Auto Call:8 Tcsc →check_task_complete();9 Tcsc →payment();10 final;11 Return Tcsc;算法2 Evl_Pay_Task()Input: Tcsc, Dscsc, Ucsc

      工人承包任務(wù): 任務(wù)發(fā)現(xiàn)合適任務(wù)則向?qū)?yīng)任務(wù)TCSC 發(fā)起承包任務(wù)交易. 工人承包任務(wù)流程如算法3 Getwork_FromTcsc 所示, 輸入為工人身份Ucsc 地址、目標(biāo)任務(wù)Tcsc 地址, 依次檢查當(dāng)前任務(wù)狀態(tài)、工人技能是否符合任務(wù)要求, 工人信譽(yù)值是否達(dá)到任務(wù)要求. 如果以上基本條件工人均滿足, 則將工人地址寫入任務(wù)合約中工人地址集合, 更新當(dāng)前任務(wù)參與人數(shù), 更新合約中工人任務(wù)記錄表, 更新Tcsc 合約狀態(tài), 返回更新任務(wù)合約地址Tcsc, 完成任務(wù)承包流程.

      節(jié)點(diǎn)數(shù)據(jù)處理任務(wù)承包: 空閑節(jié)點(diǎn)發(fā)現(xiàn)合適的數(shù)據(jù)處理任務(wù), 向?qū)?yīng)Dscsc 合約發(fā)起承包數(shù)據(jù)處理任務(wù)交易, 如算法4 Getwork_FromDscsc 所示, 輸入為請(qǐng)求任務(wù)工人Ucsc 地址、目標(biāo)數(shù)據(jù)處理合約Dscsc地址以及對(duì)應(yīng)任務(wù)Tcsc 地址. 依次檢查當(dāng)前任務(wù)狀態(tài)、節(jié)點(diǎn)是否具備要求數(shù)據(jù)處理能力、節(jié)點(diǎn)信譽(yù)值是否符合要求等準(zhǔn)入條件. 如果均符合上述條件, 則更新Dscsc 數(shù)據(jù)輸出地址為目標(biāo)任務(wù)Tcsc 數(shù)據(jù)上傳地址, 更新Dscsc 數(shù)據(jù)來(lái)源地址為任務(wù)工人地址, 設(shè)置該Dscsc 合約擁有者的支付標(biāo)志位, 方便該任務(wù)完成后, 向邊緣數(shù)據(jù)處理任務(wù)承包者結(jié)算報(bào)酬, 返回dscsc 地址.

      算法3 Getwork_FromTcsc Input: Tcsc, Ucsc Output: Tcsc 1 if !Check_Status() then 2 goto final;3 end 4 if !Check_Id(Ucsc.addr) then 5 goto final;6 end 7 if !Check_Skill(Ucsc.Skill) then 8 goto final;9 end 10 if !Check_Trust(Ucsc.T) then 11 goto final;12 end 13 Tcsc.Set[index] = Ucsc.addr;14 Tcsc.Set_count += 1;15 Tcsc.Set_prework[index] = Ucsc.prework;16 final;17 Return Tcsc;

      Input: Tcsc, Ucsc, Dscsc Output: Dscsc 1 if !Check_Id(Ucsc.addr) then 2 goto final;3 end 4 if !Check_TaskStatus() then 5 goto final;6 end 7 if !Check_Skill_edge(Ucsc.Skill) then 8 goto final;9 end 10 if !Check_Trust_edge(Ucsc.T) then 11 goto final;12 end 13 Dscsc.addrData?in = Ucsc.Dataaddr ;14 Dscsc.addrData?out = Tcsc.Dataaddr ;15 UcscDscscOwner.dscsc = Thisdscsc;16 UcscDscscOwner.dscscflag = 1;17 final;算法4 Getwork_FromDscsc 18 Return Dscsc;

      4 安全分析

      本節(jié)主要對(duì)可能出現(xiàn)的安全風(fēng)險(xiǎn)進(jìn)行分析, 基于區(qū)塊鏈的在線工作平臺(tái)主要面臨兩類安全風(fēng)險(xiǎn), 區(qū)塊鏈安全、系統(tǒng)業(yè)務(wù)安全. 第一種為對(duì)區(qū)塊鏈系統(tǒng)本身的攻擊, 例如51% 攻擊、Sybil 攻擊、Eclipse 攻擊等, 本質(zhì)是破壞區(qū)塊鏈系統(tǒng)本身, 文獻(xiàn)[18] 對(duì)這類攻擊有詳細(xì)介紹與安全分析. 第二種為系統(tǒng)業(yè)務(wù)面臨的安全風(fēng)險(xiǎn), 例如節(jié)點(diǎn)失效故障、DDoS 攻擊、惡意評(píng)判攻擊等.

      惡意參與者欺詐攻擊: 惡意的參與者在獲得記賬權(quán)后拒絕廣播, 企圖使當(dāng)前的區(qū)塊鏈分叉破壞區(qū)塊鏈安全. 本系統(tǒng)假設(shè)多數(shù)參與者都是誠(chéng)實(shí)的, 使用POW 工作量證明機(jī)制的區(qū)塊鏈模型如下, 定義p 為參與者在一輪挖礦中獲得記賬權(quán)的概率, q 為一輪挖礦計(jì)算中調(diào)用哈希算法Hash() 的總次數(shù), u 為參與者總數(shù), v 為誠(chéng)實(shí)參與者比率, α=pquv 為誠(chéng)實(shí)參與者的計(jì)算能力, β =pq(1 ?v)u 為惡意參與者計(jì)算能力, γ為誠(chéng)實(shí)參與者合法獲得一個(gè)區(qū)塊的下界.

      其中, 誠(chéng)實(shí)參與者在一輪挖礦中至少獲得一個(gè)區(qū)塊的概率為: 1 ?(1 ?p)quv?1 ?e?α?γ. 誠(chéng)實(shí)參與者在一輪挖礦中只獲得一個(gè)區(qū)塊的概率為: uvpq(1 ?p)quv?1?α(1 ?α+p)?γ.

      定理1 假設(shè)f =(α+β)<1,γ ?(1+δ)λβ, 存在δ ∈(0,1) 和λ ?1 (例如, λ2?fλ ?1 ?0). 定義S 為在一個(gè)給定區(qū)塊鏈協(xié)議執(zhí)行輪數(shù)時(shí)當(dāng)前鏈上誠(chéng)實(shí)參與者的集合. 那么S 在參數(shù)k 下不滿足公共前綴屬性的概率至多為e??(δ3k).

      文獻(xiàn)[19] 證明了定理1, 使用POW 工作量證明機(jī)制的區(qū)塊鏈系統(tǒng)在多數(shù)參與者誠(chéng)實(shí)條件下, 遭遇惡意參與者欺詐攻擊的概率至多為e??(δ3k). 因此, 本方案選擇使用POW 工作量證明的區(qū)塊鏈系統(tǒng)也是可以抵抗惡意參與者欺詐攻擊的.

      節(jié)點(diǎn)失效故障: 基于區(qū)塊鏈的群智網(wǎng)絡(luò)是一種無(wú)中心的群智工作平臺(tái), 整個(gè)系統(tǒng)可以在不依賴任意第三方的條件下工作, 并且不設(shè)置數(shù)據(jù)中心. 根據(jù)區(qū)塊鏈基本原理, 所有參與者均為平等的實(shí)體節(jié)點(diǎn). 每個(gè)節(jié)點(diǎn)都保存了網(wǎng)絡(luò)中全部的訂單信息, 即使部分節(jié)點(diǎn)遭遇故障無(wú)法提供服務(wù), 也不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行,完全可以避免節(jié)點(diǎn)失效故障.

      DDoS 攻擊: 本系統(tǒng)中所有的業(yè)務(wù)流程全部由智能合約實(shí)現(xiàn), 采用累加信譽(yù)值的方式對(duì)參與者能力進(jìn)行評(píng)估, 任何參與者只能通過不斷完成任務(wù), 積累信譽(yù)的方式提升網(wǎng)絡(luò)中被認(rèn)可度. 認(rèn)可度越高則承包高報(bào)酬任務(wù)的機(jī)會(huì)越大. 惡意參與者如果想要發(fā)動(dòng)DDoS 攻擊, 首先需要注冊(cè)大量賬號(hào), 不斷完成任務(wù)積累信譽(yù)值, 才可能獲取承包更高報(bào)酬任務(wù)的參與機(jī)會(huì), 并且一次違約會(huì)受到較大的信譽(yù)值懲罰. 一個(gè)賬號(hào)信譽(yù)值積累速度是比較緩慢的, 但是一次違約則可能被扣除大量的信譽(yù)值, 并且大量賬號(hào)交易產(chǎn)生的交易費(fèi)也是較大的, 以此大幅增加惡意參與者發(fā)起攻擊的成本.

      參與者匿名: 本系統(tǒng)允許用戶匿名注冊(cè)參與和實(shí)名注冊(cè)參與兩種方式. 本系統(tǒng)采用信譽(yù)值為唯一的信任評(píng)級(jí)方法, 匿名與實(shí)名用戶初始智能獲得默認(rèn)等級(jí), 需要不斷完成任務(wù)提高自己的信譽(yù)值, 但是實(shí)名用戶在完成任務(wù)時(shí)可額外獲取信譽(yù)值. 信譽(yù)值是系統(tǒng)對(duì)參與者評(píng)價(jià)的唯一標(biāo)準(zhǔn). 本系統(tǒng)中, 參與者信譽(yù)值只能由任務(wù)控制智能合約或數(shù)據(jù)流控制智能合約更新, 即完成任務(wù)才會(huì)被更新信譽(yù)值, 不能由用戶自己更新.

      惡意評(píng)判: 任務(wù)發(fā)布者可能會(huì)惡意評(píng)判結(jié)果, 惡意減少支付報(bào)酬. 由任務(wù)發(fā)布者公開的提供驗(yàn)證函數(shù),礦工或其他驗(yàn)證者可以在不知道數(shù)據(jù)細(xì)節(jié)的情況下驗(yàn)證結(jié)果. 當(dāng)任務(wù)完成時(shí), 由礦工或其他驗(yàn)證者評(píng)價(jià)工人的解決方案, 避免任務(wù)發(fā)布者單方面評(píng)判工人成果, 造成不公平結(jié)果. 如果任務(wù)發(fā)布者惡意評(píng)判工人的成果, 則扣除相應(yīng)的信譽(yù)值執(zhí)行懲罰措施.

      超時(shí)或拒絕支付: 本系統(tǒng)中共有兩種支付情景. 第一種, 任務(wù)發(fā)布者支付任務(wù)工人報(bào)酬, 任務(wù)發(fā)布者必須按時(shí)向完成了任務(wù)的工人支付報(bào)酬, 否則將補(bǔ)償信譽(yù)值給工人. 第二種, 任務(wù)工人向邊緣節(jié)點(diǎn)支付任務(wù)報(bào)酬, 由于邊緣數(shù)據(jù)處理任務(wù)是由任務(wù)工人發(fā)布的, 所以邊緣節(jié)點(diǎn)的報(bào)酬最終由任務(wù)工人支付. DSCSC 合約確定任務(wù)工人與邊緣節(jié)點(diǎn)關(guān)系, 任務(wù)工人需要在任務(wù)結(jié)束后的一定時(shí)間內(nèi)支付邊緣節(jié)點(diǎn)報(bào)酬. 如果超時(shí)未支付, 則對(duì)任務(wù)工人進(jìn)行懲罰. 計(jì)時(shí)機(jī)制由統(tǒng)計(jì)區(qū)塊誕生數(shù)量來(lái)實(shí)現(xiàn).

      本文提出的方案基于區(qū)塊鏈公有鏈技術(shù)實(shí)現(xiàn), 整個(gè)系統(tǒng)公開向所有的參與者開放. 對(duì)于當(dāng)前廣泛應(yīng)用的聯(lián)盟鏈架構(gòu)而言, 上述方案的安全性依然能夠得到保證. 原因在于, 聯(lián)盟鏈主要面向特定組織群體, 例如, 有些項(xiàng)目參與組織為政府、銀行等權(quán)威機(jī)構(gòu), 這將為系統(tǒng)業(yè)務(wù)安全提供了更多的保障. 例如, 當(dāng)接入政府的身份認(rèn)證系統(tǒng), 能更好的過濾惡意參與者等. 在由權(quán)威組織背書的聯(lián)盟鏈上構(gòu)建這樣的系統(tǒng), 安全性應(yīng)該是更有保障的, 但是整個(gè)系統(tǒng)去中心化程度會(huì)降低.

      5 實(shí)驗(yàn)分析

      我們對(duì)本文的三個(gè)智能合約進(jìn)行了仿真實(shí)驗(yàn)1https://github.com/zmr961006/Blockchain-CI. 采用以太坊集成開發(fā)環(huán)境Remix-Ethereum IDE 作為開發(fā)平臺(tái), 使用智能合約語(yǔ)言Solidity(0.5.16) 開發(fā), MetaMask 作為錢包客戶端, Ropsten 以太坊公開測(cè)試網(wǎng)絡(luò)作為測(cè)試環(huán)境, Ropsten 網(wǎng)絡(luò)為以太坊官方提供的公開測(cè)試網(wǎng)絡(luò), 采用POW 共識(shí)機(jī)制. 表2 為實(shí)驗(yàn)平臺(tái)信息, 實(shí)驗(yàn)運(yùn)行于虛擬機(jī)環(huán)境. 虛擬機(jī)使用Ubuntu 18.04 操作系統(tǒng), 1 核心處理器, 2 GB 內(nèi)存以及25 GB SSD 磁盤.

      表2 仿真系統(tǒng)環(huán)境表Table 2 Testing environment

      我們統(tǒng)計(jì)了身份控制合約USCU、任務(wù)控制合約TSCS、數(shù)據(jù)流控制合約DSCSC, 三個(gè)智能合約在公共測(cè)試網(wǎng)絡(luò)Ropsten 中部署交易的Gas 消耗. 如圖6 所示, UCSC、TCSC、DSCSC 這三種智能合約的Gas 使用分別為998 993、2522 316、1208 976. 如圖7 所示, 我們展示了在Ropsten 網(wǎng)絡(luò)中, 隨著參與者的不斷增加, TCSC 合約初始化所需要的Gas 數(shù)量不斷增加, 合約中狀態(tài)變量的初始化Gas 消耗量與參與人數(shù)成正比, 當(dāng)參與人數(shù)為50 人時(shí), 需要消耗Gas 數(shù)量達(dá)到952 987.

      圖6 智能合約部署在Ropsten 網(wǎng)絡(luò)中Gas 消耗Figure 6 Contract deployed transaction cost on Ropsten

      圖7 TCSC 合約初始化在Ropsten 網(wǎng)絡(luò)中Gas 消耗Figure 7 TCSC init transaction cost on Ropsten

      我們使用Turffle 開發(fā)框架與ganache-cli 客戶端, 對(duì)這三個(gè)智能合約的部署時(shí)間及其主要方法執(zhí)行時(shí)間消耗進(jìn)行了測(cè)量. 在圖8 中, 主要包含UCSC 合約部署方法、TCSC 合約部署方法、DSCSC 合約部署方法、群智任務(wù)承包方法、數(shù)據(jù)任務(wù)承包方法的執(zhí)行時(shí)間消耗(運(yùn)行15 次平均時(shí)間). 在圖9 中, 我們展示了隨著參與者人數(shù)的增多, 群智任務(wù)結(jié)算時(shí)間也隨著增長(zhǎng), 當(dāng)一個(gè)任務(wù)參與者為120 人時(shí), 消耗時(shí)間為2174 ms (運(yùn)行5 次平均時(shí)間). 實(shí)驗(yàn)結(jié)果表明了系統(tǒng)的可行性.

      6 總結(jié)

      本文提出了一種基于區(qū)塊鏈的通用群智網(wǎng)絡(luò)框架, 將整個(gè)系統(tǒng)分為三個(gè)部分, 身份管理、群智任務(wù)管理、數(shù)據(jù)流管理. 每個(gè)部分由一個(gè)智能合約管理, 將傳統(tǒng)的業(yè)務(wù)流程全部使用智能合約的交易代替. 在群智網(wǎng)絡(luò)中設(shè)置邊緣節(jié)點(diǎn), 進(jìn)一步降低了任務(wù)時(shí)延與成本. 當(dāng)前聯(lián)盟鏈發(fā)展迅速, 越來(lái)越多的聯(lián)盟鏈產(chǎn)品落地商業(yè)化, 在未來(lái)的工作中, 我們將聚焦基于聯(lián)盟鏈技術(shù)構(gòu)建群智網(wǎng)絡(luò)框架, 并且在工程實(shí)現(xiàn)方面做更多的探索與研究.

      圖8 業(yè)務(wù)各階段主要方法時(shí)間消耗Figure 8 Run time of each stage

      圖9 群智任務(wù)支付階段時(shí)間消耗Figure 9 Run time of payment

      猜你喜歡
      群智信譽(yù)合約
      軟件眾測(cè)服務(wù)模式探索與實(shí)踐
      以質(zhì)量求發(fā)展 以信譽(yù)贏市場(chǎng)
      物聯(lián)網(wǎng)時(shí)代移動(dòng)群智感知技術(shù)中的安全問題淺析
      線上教學(xué)平臺(tái)評(píng)價(jià)主體多元化的發(fā)展趨勢(shì)
      基于開源和群智的軟件工程實(shí)踐教學(xué)方法
      信譽(yù)如“金”
      江蘇德盛德旺食品:信譽(yù)為翅飛五洲
      合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過高期望
      大渡口区| 彭州市| 工布江达县| 青河县| 舟山市| 沾化县| 淮安市| 惠安县| 吴堡县| 丹寨县| 永昌县| 威海市| 文山县| 巴中市| 石嘴山市| 谷城县| 温宿县| 项城市| 平阳县| 闽侯县| 洪泽县| 泊头市| 将乐县| 定边县| 三河市| 张掖市| 隆林| 故城县| 罗山县| 北川| 朝阳县| 崇文区| 犍为县| 武威市| 杭州市| 上饶县| 合川市| 读书| 大化| 屏山县| 石门县|