摘 要:為解決眾包面臨的信任問(wèn)題、不對(duì)稱貢獻(xiàn)與收益關(guān)系以及數(shù)據(jù)安全性共享等挑戰(zhàn),提出一種基于信譽(yù)模型與受控代理重加密(PRE)的眾包模型鏈,即RPC-Chain。RPC-Chain基于超級(jí)賬本Fabric,將眾包模型的交易流程抽象化。首先,完善信譽(yù)機(jī)制提高系統(tǒng)整體的效率與公平;其次,引入受控代理重加密以確保數(shù)據(jù)安全共享服務(wù);最后,使用Fabric搭建眾包區(qū)塊鏈仿真平臺(tái)并進(jìn)行了相關(guān)測(cè)試。實(shí)驗(yàn)表明,該方案在模型設(shè)計(jì)、數(shù)據(jù)安全加密共享和信譽(yù)模型的激勵(lì)效果等方面顯示出一定優(yōu)勢(shì)。
關(guān)鍵詞:區(qū)塊鏈;代理重加密;信譽(yù)機(jī)制;智能合約;眾包
中圖分類號(hào):TP391"" 文獻(xiàn)標(biāo)志碼:A"" 文章編號(hào):1001-3695(2025)01-005-0036-06
doi: 10.19734/j.issn.1001-3695.2024.05.0173
RPC-Chain: crowdsourcing model chain based on reputation mechanism and controlled PRE
Abstract: This paper addressed the challenges of trust issues, asymmetric contribution and benefit relationships, and data security sharing in crowdsourcing by proposing an RPC-Chain, a crowdsourcing model chain based on a reputation model and proxy re-encryption (PRE). RPC-Chain abstracted the transaction process of the crowdsourcing model based on Hyperledger Fabric. Firstly, it improved the reputation mechanism to enhance the overall efficiency and fairness of the system. Secondly, it introduced proxy re-encryption to ensure secure data sharing services. Finally, it built a crowdsourcing blockchain simulation platform using Fabric, and conducted related tests. The experiments demonstrate that the proposed scheme shows certain advantages in model design, secure data encryption sharing, and the incentive effect of the reputation model.
Key words:blockchain; proxy re-encryption (PRE); reputation mechanism; smart contract; crowdsourcing
0 引言
眾包是一種通過(guò)向廣大的、通常是未知的人群請(qǐng)求幫助來(lái)完成任務(wù)、解決問(wèn)題的方式[1],不管是人機(jī)交互領(lǐng)域、數(shù)據(jù)庫(kù)領(lǐng)域,還是自然語(yǔ)言處理領(lǐng)域、機(jī)器學(xué)習(xí)領(lǐng)域都有眾包的身影[2]。但眾包在快速發(fā)展的過(guò)程中出現(xiàn)了一系列物理與邏輯上的問(wèn)題[3]:傳統(tǒng)的眾包平臺(tái)屬于中心化管理機(jī)制,中心節(jié)點(diǎn)受到攻擊或者發(fā)生意外后數(shù)據(jù)易丟失;請(qǐng)求者與工人之間存在搭便車與不真實(shí)報(bào)告問(wèn)題,影響整個(gè)項(xiàng)目的公平性;參與者的數(shù)據(jù)交互涉及個(gè)人隱私需要安全共享與使用。其中,中心化問(wèn)題隨著去中心化的區(qū)塊鏈引入,得到了基本解決,比如More等人[4]設(shè)計(jì)了基于公有鏈的眾包模型系統(tǒng),意在使用區(qū)塊鏈解決眾包的數(shù)據(jù)可竄改、中心化風(fēng)險(xiǎn)、信任問(wèn)題,但基于公有鏈的模型系統(tǒng)存在一定的性能問(wèn)題。對(duì)于搭便車與不真實(shí)報(bào)告問(wèn)題、數(shù)據(jù)安全共享問(wèn)題的解決還十分棘手。朱向榮等人[5]針對(duì)眾包知識(shí)融合系統(tǒng)進(jìn)行了設(shè)計(jì),提出了一種基于置信度加權(quán)投票算法和一種壟斷分紅算法以自動(dòng)化地執(zhí)行眾包知識(shí)融合中的真值驗(yàn)證和激勵(lì)過(guò)程。褚佳靜等人[6]提出基于信譽(yù)模型的眾包質(zhì)量控制算法,根據(jù)可信因子和懲罰因子建立信譽(yù)模型,基于工人信譽(yù)值和對(duì)任務(wù)的熟悉度提出一種工人選擇機(jī)制。對(duì)于數(shù)據(jù)安全共享問(wèn)題,陽(yáng)真等人[7]針對(duì)眾測(cè)知識(shí)產(chǎn)權(quán)保護(hù)進(jìn)行了研究,使用改進(jìn)的CP-ABE技術(shù)和AES算法對(duì)測(cè)試任務(wù)與被測(cè)代碼進(jìn)行細(xì)粒度的訪問(wèn)控制,以解決測(cè)試任務(wù)和代碼的隱私保護(hù)問(wèn)題。但現(xiàn)有實(shí)現(xiàn)只是使用了基本的信譽(yù)模型,通過(guò)提高置信度或是可信因子來(lái)保證參與者的分紅或獎(jiǎng)勵(lì),對(duì)眾包流程的包容性不夠完善,對(duì)作惡者的懲罰粒度較低,數(shù)據(jù)安全方面雖然提供了細(xì)粒度訪問(wèn)機(jī)制,但不利于數(shù)據(jù)范圍共享。本文提出了基于信譽(yù)模型與受控PRE的眾包模型鏈(repu-tation controlled proxy re-encryption crowdsourcing chain, RPC-Chain),選擇使用聯(lián)盟鏈Hyperledger Fabric實(shí)現(xiàn),相較于公有鏈[8],聯(lián)盟鏈更便于監(jiān)管、性能更強(qiáng)。同時(shí)為解決搭便車與不真實(shí)報(bào)告問(wèn)題,提高眾包的效率與公平性,RPC-Chain改善了基于信譽(yù)的激勵(lì)機(jī)制與懲罰機(jī)制,RPC-Chain的信譽(yù)機(jī)制由審查者篩選算法、審查納什均衡算法、DS行為評(píng)定算法和信譽(yù)獎(jiǎng)懲更新算法組成,在保證足夠靈活的同時(shí),增大請(qǐng)求方惡意刷單的成本。數(shù)據(jù)安全共享方面,RPC-Chain提供了受控代理重加密(proxy re-encryption, PRE)的數(shù)據(jù)共享服務(wù),通過(guò)增加規(guī)則列表,在保證數(shù)據(jù)共享安全且高效的同時(shí),也保證了選擇審查人的篩選結(jié)果無(wú)偏。
1 相關(guān)知識(shí)
1.1 搭便車與不真實(shí)報(bào)告問(wèn)題
任務(wù)請(qǐng)求者的目的是為了以更低的代價(jià)獲取更高質(zhì)量的回報(bào),而工人的目的是使用最少的時(shí)間或精力去獲得更多的報(bào)酬,因此任務(wù)請(qǐng)求者與工人的目的是對(duì)立矛盾的。
眾包系統(tǒng)中存在搭便車與不真實(shí)報(bào)告問(wèn)題。
搭便車問(wèn)題[9]是指工人在眾包平臺(tái)上利用其他參與者的努力或資源而無(wú)須作出相應(yīng)的貢獻(xiàn)卻反而獲得了報(bào)酬,或是指任務(wù)請(qǐng)求者獲得了滿意的結(jié)果卻不付出或是少付出報(bào)酬(不誠(chéng)實(shí)的黃金標(biāo)準(zhǔn))。搭便車者從其他參與者的工作中受益,但沒(méi)有為此付出相應(yīng)的勞動(dòng)或貢獻(xiàn),任其發(fā)展會(huì)影響普通參與者的積極性,進(jìn)而影響到平臺(tái)的運(yùn)營(yíng)。
不真實(shí)報(bào)告問(wèn)題是指在眾包平臺(tái)上,參與者故意提供虛假或不準(zhǔn)確的報(bào)告或反饋信息的行為。這種行為出于不當(dāng)?shù)膭?dòng)機(jī),例如試圖破壞他人聲譽(yù)、獲得不當(dāng)利益或扭曲真實(shí)情況,這種行為平臺(tái)也應(yīng)該盡力打擊。
搭便車與不真實(shí)報(bào)告問(wèn)題違背了公平原則和契約精神,會(huì)對(duì)眾包生態(tài)環(huán)境造成不利的影響,RPC-Chain引入了信譽(yù)機(jī)制來(lái)懲罰作惡參與者的作惡行為,維護(hù)善良參與者的權(quán)益。
1.2 超級(jí)賬本
Hyperledger Fabric是一個(gè)開(kāi)源的企業(yè)級(jí)超級(jí)賬本框架[10],其各個(gè)組件模塊均可定制化。智能合約是控制世界狀態(tài)中業(yè)務(wù)對(duì)象生命周期的交易邏輯。在Fabric中額外有鏈碼的概念,智能合約會(huì)被打包進(jìn)鏈碼,鏈碼會(huì)被部署到區(qū)塊鏈網(wǎng)絡(luò)中??梢詫⒅悄芎霞s看成交易的管理者,而鏈碼則管理著如何將智能合約打包以便用于部署。
RPC-Chain是一個(gè)基于超級(jí)賬本的鏈,超級(jí)賬本提供了強(qiáng)大的隱私性和權(quán)限控制功能。其2.0版本使用RAFT協(xié)議[11]作為共識(shí)協(xié)議,且Peer節(jié)點(diǎn)之間使用Gossip協(xié)議[12]進(jìn)行傳輸數(shù)據(jù),它允許在區(qū)塊鏈網(wǎng)絡(luò)中創(chuàng)建私有鏈和通道,并定義訪問(wèn)權(quán)限和數(shù)據(jù)共享策略。
1.3 代理重加密算法
Blaze等人[13]在歐密會(huì)上提出了代理重加密。代理重加密是一種密碼學(xué)技術(shù),用于實(shí)現(xiàn)數(shù)據(jù)的安全共享和委托訪問(wèn)控制。它允許一個(gè)代理對(duì)加密的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,從一個(gè)密鑰持有者的加密密鑰轉(zhuǎn)換為另一個(gè)密鑰持有者的加密密鑰,同時(shí)保持?jǐn)?shù)據(jù)的機(jī)密性和完整性。針對(duì)非對(duì)稱密鑰加密大文件的速度問(wèn)題,引入了對(duì)稱密鑰來(lái)進(jìn)行改善。
代理重加密算法由六種算法組成:
a)系統(tǒng)建立算法。GlobalSetup(λ)→param,其中λ是系統(tǒng)安全參數(shù),param為生成的系統(tǒng)全局參數(shù)。
b)密鑰生成算法。KeyGen(param,i)→Ui(pki,ski) ,給用戶Ui生成獲得密鑰對(duì)(pki,ski)。
c)重加密密鑰算法。ReKeyGen(param,ski,pkj)→rki→j,用戶Ui使用此算法,輸入私鑰ski以及用戶Uj的公鑰pkj,獲得重加密密鑰rki→j。
d)加密算法。encrypt(param,pk,m)→CT,輸入公鑰pk、明文m,獲得密文CT。
e)重加密算法。ReEncrypt(param,CTi,rki→j)→CTj,對(duì)加密算法生成的密文CTi,使用重加密密鑰rki→j生成密文CTj。
f)解密算法。decrypt(param,CT,sk)→m,使用私鑰解密密文CT,得到明文m,或是錯(cuò)誤符號(hào)⊥。
2 RPC-Chain設(shè)計(jì)
2.1 角色描述
RPC-Chain主要由證書(shū)授權(quán)中心(CA)、云存儲(chǔ)代理(pro-xy)、組織(organization)和超級(jí)賬本(hyperledger)四種角色構(gòu)成,其架構(gòu)如圖1所示。
a)證書(shū)授權(quán)中心。RPC-Chain是需要許可的鏈,CA機(jī)構(gòu)負(fù)責(zé)給參與者生成、分發(fā)與管理數(shù)字證書(shū)。身份證書(shū)包括非對(duì)稱加密的公鑰與私鑰,用于參與者的身份認(rèn)證、數(shù)字證書(shū)、數(shù)據(jù)加密。除此之外,參與者在獲得身份證書(shū)的同時(shí),還會(huì)初始化一個(gè)信譽(yù)值,信譽(yù)值會(huì)根據(jù)參與者今后的活動(dòng)狀態(tài)進(jìn)行更新。
b)云存儲(chǔ)代理。代理是一個(gè)被半信任的角色,在數(shù)據(jù)共享過(guò)程中,承擔(dān)將一個(gè)密鑰持有者的加密密鑰轉(zhuǎn)換為另一個(gè)密鑰持有者的加密密鑰的作用,RPC-Chain的云存儲(chǔ)代理由peer節(jié)點(diǎn)來(lái)承擔(dān),一是可以快速地訪問(wèn)區(qū)塊鏈,二是可以定時(shí)隨機(jī)切換,防止代理被入侵。
c)組織。在RPC-Chain中組織有任務(wù)請(qǐng)求者組織、工人組織、審查組織,任務(wù)請(qǐng)求者組織發(fā)起眾包任務(wù),工人負(fù)責(zé)完成任務(wù)請(qǐng)求者發(fā)布的任務(wù),審查組織負(fù)責(zé)對(duì)工人完成的任務(wù)進(jìn)行審核,對(duì)任務(wù)請(qǐng)求者的行為進(jìn)行監(jiān)測(cè),更新和維護(hù)他們的信譽(yù)值,多個(gè)組織互相分工配合以保證系統(tǒng)的正常運(yùn)行。
d)超級(jí)賬本。RPC-Chain提供了賬本子系統(tǒng),其包括世界狀態(tài)與交易日志兩個(gè)組件。其中世界狀態(tài)指的是給定時(shí)間點(diǎn)的賬本狀態(tài),交易日志記錄了產(chǎn)生當(dāng)前世界狀態(tài)的所有交易。值得注意的是,世界狀態(tài)其本質(zhì)是一個(gè)鍵值數(shù)據(jù)庫(kù),而交易日志則是一個(gè)區(qū)塊鏈。
2.2 交易流程
RPC-Chain由三層架構(gòu)構(gòu)成,第一層屬于眾包模型的抽象邏輯交易過(guò)程,第二層屬于Fabric網(wǎng)絡(luò)的構(gòu)成部分,第三層屬于任務(wù)鏈、成果鏈、信譽(yù)鏈的底層存儲(chǔ)結(jié)構(gòu)。下文將以請(qǐng)求者發(fā)布任務(wù),工人完成任務(wù)為主線進(jìn)行完整交易流程的闡述,同時(shí)算法的執(zhí)行順序如圖1序號(hào)所示。
a)系統(tǒng)初始化階段。系統(tǒng)執(zhí)行PRE算法的GlobalSetup算法,輸入系統(tǒng)安全參數(shù)λ,生成系統(tǒng)的全局參數(shù)param,此參數(shù)會(huì)涉及到之后數(shù)據(jù)的安全共享。
b)參與者注冊(cè)階段。任務(wù)請(qǐng)求者與工人都需要在CA上申請(qǐng)注冊(cè),請(qǐng)求會(huì)交由Fabric-CA進(jìn)行數(shù)字簽名,生成的證書(shū)以X.509證書(shū)格式返回。參與者成功獲得證書(shū)后,執(zhí)行PRE的KeyGen算法,輸入系統(tǒng)初始化階段生成的全局參數(shù)param,得到公私密鑰對(duì)以及生成一個(gè)對(duì)稱密鑰,此部分如圖1序號(hào)①。
c)任務(wù)請(qǐng)求階段。任務(wù)請(qǐng)求者需要在系統(tǒng)中發(fā)起任務(wù),調(diào)用CreateTask智能合約來(lái)開(kāi)啟一筆新的交易,智能合約需要的參數(shù)有任務(wù)的詳細(xì)信息、發(fā)布者信譽(yù)、發(fā)布者愿意支付的押金、任務(wù)的獎(jiǎng)金等信息。任務(wù)請(qǐng)求者的任務(wù)可能會(huì)涉及到法律文件、代碼軟件、電子病歷等體積較大且需要隱私保護(hù)的文件,這類文件會(huì)使用云存儲(chǔ)代理來(lái)進(jìn)行存儲(chǔ)與共享,發(fā)送前需要先使用任務(wù)請(qǐng)求者的對(duì)稱密鑰對(duì)文件進(jìn)行加密,然后上傳云存儲(chǔ)代理,云存儲(chǔ)代理同時(shí)會(huì)生成一個(gè)存儲(chǔ)地址,此地址會(huì)被保存于任務(wù)的詳細(xì)信息中。調(diào)用CreateTask智能合約后,此部分如圖1序號(hào)②,該交易會(huì)在Fabric網(wǎng)絡(luò)中進(jìn)行背書(shū)、排序、共識(shí)的過(guò)程,然后提交打包上鏈。此外,任務(wù)會(huì)以發(fā)布訂閱模型的方式發(fā)布,此部分如圖1序號(hào)③④,工人關(guān)注對(duì)應(yīng)的主題,即可獲取到對(duì)應(yīng)主題下的所有待消費(fèi)的任務(wù)。
算法1 CreateTask
輸入: IDsend,TaskMsg,Reward。 //發(fā)送者ID、任務(wù)信息、獎(jiǎng)金
輸出: IDtask。 //返回任務(wù)ID
if IDsend is none or Rewardlt;Rewardlimit: /*校驗(yàn)ID是否為空,獎(jiǎng)金是否小于閾值*/
throw;
end if
Repsend←ReputationChain.query(IDsend); //查詢?cè)摪l(fā)送人信譽(yù)
if Repsendlt;Replimit: //信譽(yù)小于閾值不提供服務(wù)
throw;
end if
if TaskMsg.privatefile is not none then: /*如果存在私人數(shù)據(jù)文件,使用代理重加密安全共享*/
addr←Proxy.shareInSafe(TaskMsg.privatefile);
TaskMsg.privateAddr←addr; //返回上傳后的地址
IDtask←taskChain.add(IDsend,TaskMsg); /*任務(wù)鏈添加該任務(wù)信息*/
send IDtaskto Pub/Sub;// 發(fā)送到發(fā)布訂閱模型
end if
return IDtask
d)任務(wù)完成階段。工人在找到自己有意愿完成的任務(wù)后,向任務(wù)請(qǐng)求者發(fā)起一個(gè)請(qǐng)求授權(quán)的請(qǐng)求,任務(wù)請(qǐng)求者同意授權(quán)后,如圖1中序號(hào)⑤,工人就可以從云存儲(chǔ)代理安全的共享任務(wù)的相關(guān)數(shù)據(jù)文件,完成任務(wù)后,調(diào)用SubmitTask智能合約來(lái)完成任務(wù)的提交上鏈,其過(guò)程與任務(wù)請(qǐng)求者發(fā)布任務(wù)的邏輯基本相同,不再贅述。此外,任務(wù)的請(qǐng)求與完成階段涉及到云存儲(chǔ)代理重加密共享的具體過(guò)程,將在下一節(jié)介紹。
算法2 SubmitTask
輸入: IDtask,IDsend,Deposit。 //任務(wù)ID、發(fā)送者ID、押金
輸出: 1。
if IDtask is none: //校驗(yàn)ID非空
throw;
end if
Repsend←ReputationChain.query(IDsend);//查詢發(fā)送人信譽(yù)
if Repsendlt;Replimit: //信譽(yù)小于閾值不提供服務(wù)
throw;
end if
TaskMsg←taskChain.query(IDtask); //獲取任務(wù)信息
judgeScore←GenerateJudgement(TaskMsg,IDtask);//生成審查者組
reputationChain.updateRep(IDsend,JudgeScore,Deposit);//更新信譽(yù)
if TaskMsg.state is done://如果狀態(tài)為成功結(jié)束,進(jìn)行獎(jiǎng)勵(lì)
reward(IDtask);
end if
e)審查結(jié)算階段。在一項(xiàng)任務(wù)執(zhí)行完成后,審查組會(huì)進(jìn)行審查,如圖1中序號(hào)⑥。審查組由審查者篩選算法組成,從了解該任務(wù)且與該任務(wù)無(wú)關(guān)且信譽(yù)度高的任務(wù)請(qǐng)求者或工人中隨機(jī)選擇組成,通過(guò)信譽(yù)機(jī)制對(duì)參與者的信譽(yù)值進(jìn)行更新。對(duì)于積極的參與者會(huì)提高其信譽(yù)值,對(duì)于作惡的參與者,其信譽(yù)值與押金均會(huì)扣除。
2.3 云存儲(chǔ)代理重加密受控共享
在眾包交易流程中涉及到任務(wù)請(qǐng)求者與工人之間傳輸重要的隱私數(shù)據(jù)文件,如何將隱私數(shù)據(jù)進(jìn)行安全的共享需要工人十分審慎的設(shè)計(jì)。RPC-Chain使用的云存儲(chǔ)代理重加密,在IBPRE(基于身份的PRE)加密算法的基礎(chǔ)上額外提供規(guī)則列表來(lái)確保只有得到許可的參與者才能獲取到對(duì)應(yīng)資源,規(guī)則列表不僅體現(xiàn)了數(shù)據(jù)的可見(jiàn)域也為后文選擇審查人提供了一層篩查條件。
本文的云存儲(chǔ)代理重加密受控共享方案如圖2所示。圖中任務(wù)請(qǐng)求者發(fā)起一項(xiàng)眾包任務(wù),需要通過(guò)云存儲(chǔ)代理將重加密信息共享給工人。
a)系統(tǒng)初始化。GlobalSetup(λ)→param根據(jù)安全參數(shù)λ生成p、q、E、G。其中p、q為兩個(gè)大素?cái)?shù),E為有限域Fp上的一個(gè)橢圓曲線,且Q為橢圓曲線上一點(diǎn), G為q階的循環(huán)群。定義兩個(gè)抗碰撞哈希函數(shù)H1、H2:{0,1}*→Z*q,系統(tǒng)參數(shù)param={p,q,E,G,H1,H2}。
b)用戶注冊(cè)初始化階段。在系統(tǒng)全局初始化完成后,任務(wù)請(qǐng)求者和參與者需要在CA進(jìn)行注冊(cè),之后調(diào)用KeyGen算法生成公私鑰對(duì),KeyGen(param,i)→Ui(pki,ski):輸入公開(kāi)參數(shù)param,選擇一個(gè)隨機(jī)數(shù)k∈Z*q,用戶Ui得到私鑰ski=k,公鑰pki=kQ。然后任務(wù)請(qǐng)求者需要初始化授權(quán)列表RuleList,RuleList包括的數(shù)據(jù)字段有請(qǐng)求授權(quán)時(shí)間、請(qǐng)求者ID、請(qǐng)求訪問(wèn)的任務(wù)ID,并調(diào)用加密算法encrypt(param,pk,m)→CT將明文m加密為加密文件CT,并上傳至云存儲(chǔ)代理。加密運(yùn)算過(guò)程如下,選取o∈G:
c)代理重加密參量生成階段。當(dāng)工人請(qǐng)求訪問(wèn)任務(wù)請(qǐng)求者的數(shù)據(jù)文件時(shí),首先查看RuleList是否含有該工人的ID,如果沒(méi)有則拒絕該用戶的請(qǐng)求,如果存在就構(gòu)造針對(duì)于該工人的重加密密鑰參量:ReKeyParamGen(param,X,pki,pkj)→β,β表示工人的代理重加密密鑰參量且β={Xpki,Xpkj},并需要將工人的信息記錄在規(guī)則列表RuleList并進(jìn)行更新。
f)解密階段。將重加密密文發(fā)送給工人,工人調(diào)用decrypt算法解密重加密密文獲得明文,decrypt(param,CTj,skj,α)→m,解密過(guò)程為
由于代理重加密涉及到代理的選擇,代理如果被侵入,那么有可能會(huì)泄露用戶的數(shù)據(jù)隱私。為解決此類問(wèn)題,RPC-Chain的代理會(huì)從同級(jí)peer節(jié)點(diǎn)中定期隨機(jī)更換。
2.4 信譽(yù)機(jī)制
RPC-Chain的信譽(yù)機(jī)制由審查者篩選算法、審查納什均衡算法、DS行為評(píng)定算法和信譽(yù)獎(jiǎng)懲更新算法組成。審查者篩選算法用于對(duì)每一個(gè)不同的任務(wù)請(qǐng)求都求出一個(gè)審查者池,確保審查者對(duì)該任務(wù)沒(méi)有利益關(guān)系。納什均衡算法利用博弈論提高審查者的審查結(jié)果的可靠性,DS行為評(píng)定算法決定工人此次參與眾包的行為是積極還是消極,最后信譽(yù)獎(jiǎng)懲更新算法用于更新信譽(yù)值,以此四種算法完成RPC-Chain的信譽(yù)體系建設(shè),達(dá)成良好的信譽(yù)更新循環(huán)。重要符號(hào)及其表述如表1所示。
1)審查者篩選算法
審查者必須是無(wú)偏的且對(duì)于該任務(wù)需要有一定的了解。審查者篩選算法有三層篩選制度。首先RPC-Chain從所有的參與者之中獲取到對(duì)應(yīng)任務(wù)主題下的所有參與者,這是第一重篩選,得到ReviewPool1;審查者還必須是無(wú)偏的,他們必須與當(dāng)前所要評(píng)價(jià)的任務(wù)無(wú)任何利益關(guān)系,RPC-Chain在云存儲(chǔ)代理重加密受控共享中提到了規(guī)則列表,此列表不僅體現(xiàn)了當(dāng)前任務(wù)的可見(jiàn)域,還體現(xiàn)了利益關(guān)系網(wǎng),由于規(guī)則列表也是在更新的,為了保證審查者無(wú)偏,需要調(diào)出在任務(wù)創(chuàng)建終止期間規(guī)則列表涉及到的所有參與者,好在Fabric的區(qū)塊確定是在排序后就完成的,不會(huì)涉及到最長(zhǎng)鏈的判斷問(wèn)題,規(guī)則列表的范圍取兩個(gè)區(qū)塊的timestamp之間的并集即可,RPC-Chain會(huì)從ReviewPool1篩除掉所有的利益相關(guān)者,得到ReviewPool2作為最終的審查者篩選組,這是第二層篩選;最后一層篩選會(huì)從ReviewPool2抽取其中信譽(yù)值大于TH的N位參與者作為最終的關(guān)于該任務(wù)的審查組,定義為集合RSet={R1,R2,R3,…,RN}。
2)審查者納什均衡算法
由審查者篩選算法得到了N位審查人集合RSet={R1,R2,R3,…,RN},為了進(jìn)一步提純合格審查人,在每一位審查人給出對(duì)當(dāng)前任務(wù)完成質(zhì)量的審查分?jǐn)?shù)后,每一位審查人都可以對(duì)其他審查人的分?jǐn)?shù)進(jìn)行查看并進(jìn)行舉報(bào)。
假設(shè)審查者Ri放棄舉報(bào),那么策略集合就為V-i={V1,V2,V3,…,Vi-1,Vi+1,…,VN},其中策略向量為Θi={VTtruei,VT1i}。當(dāng)且僅當(dāng)半數(shù)以上N/2的審查人給出舉報(bào)時(shí),認(rèn)定該審查人存在爭(zhēng)議時(shí),其審查分?jǐn)?shù)無(wú)效。小于半數(shù)以上時(shí),認(rèn)為該審查人合格,其審查分?jǐn)?shù)有效,則有以下納什均衡策略:首先定義一個(gè)舉報(bào)集合RSettrue和放棄集合RSet1。
當(dāng)審查人存在爭(zhēng)議時(shí):
當(dāng)審查人合格時(shí):
假設(shè)對(duì)于一個(gè)審查者Ri,已知他人策略為V′-i時(shí)的最佳策略是V′i,則有
這說(shuō)明在此博弈中,納什平衡點(diǎn)只有兩個(gè):
審查者為了利益最大化,都不會(huì)選擇對(duì)自己不利的行為。因此如果一個(gè)審查者的分?jǐn)?shù)確實(shí)是不合理的,那么審查者Ri為了自己利益最大,就會(huì)選擇舉報(bào)該不合理的審查分?jǐn)?shù)。
3)DS行為評(píng)定算法
在得到多個(gè)審查者給出的信譽(yù)值后,采用Dempster-Shafer理論結(jié)合多個(gè)審查者的審查分?jǐn)?shù)來(lái)認(rèn)定該工人此次的行為是積極還是消極,以便后續(xù)進(jìn)行信譽(yù)值的獎(jiǎng)懲更新。
其中:X為真屬于H的假設(shè)。設(shè)m1,m2,…,mn分別為n個(gè)審查者的BPA,現(xiàn)對(duì)前兩個(gè)BPA進(jìn)行組合,規(guī)則為
其中:K為沖突度;B與C分別為第一、二個(gè)證據(jù)來(lái)源的子集。相應(yīng)地,將m12與第三個(gè)評(píng)審者m3進(jìn)行類似的組合,遍歷所有審查者的審查分,然后根據(jù)信任函數(shù)Bel(H)與似真函數(shù)Pl(X)最終判定該工人此次的行為是否積極。本文的具體判定規(guī)則為,如果其信任函數(shù)Bel(H)結(jié)果值大于0.5,則認(rèn)為該工人此次進(jìn)行了積極行為。
4)信譽(yù)獎(jiǎng)懲更新算法
審查者給出的分?jǐn)?shù)都要給參與者的信譽(yù)作出獎(jiǎng)懲。信譽(yù)獎(jiǎng)懲更新算法由激勵(lì)機(jī)制與懲罰機(jī)制雙方組成。RPC-Chain信譽(yù)機(jī)制中的激勵(lì)機(jī)制的計(jì)算如式(4)所示。
信譽(yù)值的更新基于用戶的持續(xù)因子,其中numN表示用戶最近獲得的評(píng)價(jià)個(gè)數(shù),x表示用戶在最近N次行為中連續(xù)獲得積極評(píng)價(jià)的個(gè)數(shù),RPC-Chain獎(jiǎng)勵(lì)那些持續(xù)進(jìn)行友善行為的參與者,參與者連續(xù)獲得積極評(píng)價(jià)會(huì)讓他的持續(xù)因子更大,導(dǎo)致一次友善行為獲得的信譽(yù)值更多。受以太坊質(zhì)押(staking)概念的啟發(fā),在激勵(lì)函數(shù)中引入了質(zhì)押比s,表示參與者的質(zhì)押數(shù)占所有當(dāng)前任務(wù)參與者質(zhì)押數(shù)的占比,占比越大,代表參與者對(duì)完成該任務(wù)的把握更大,RPC-Chain也將對(duì)質(zhì)押比更大的用戶給予更多的信譽(yù)值增值獎(jiǎng)勵(lì)。
為了更好地激勵(lì)參與者的積極參與度,RPC-Chain引入了兩個(gè)閾值,其中TH表示參與者高信譽(yù)閾值,大于此值,參與者每次獲得積極評(píng)價(jià)會(huì)獲得1.5倍的增值;TL表示參與者低信譽(yù)閾值,低于此值,參與者每次獲得積極評(píng)價(jià)只會(huì)獲得正常獎(jiǎng)勵(lì)的0.25倍獎(jiǎng)勵(lì);在TH與TL兩值之間,稱為審核區(qū)域,審核區(qū)域的參與者可能會(huì)進(jìn)行友善行為,但是作惡的可能也還很大,此部分的參與者只會(huì)獲得0.8倍的信譽(yù)值增值獎(jiǎng)勵(lì)。閾值使用權(quán)w表示,如式(5)所示。
懲罰函數(shù)基于懲罰因子,RPC-Chain選用了sigmoid函數(shù),它可以提供一種平滑的懲罰方式,并根據(jù)行為的嚴(yán)重程度進(jìn)行適度的懲罰。其中y表示參與者連續(xù)獲得消極評(píng)價(jià)的次數(shù),參數(shù)k表示sigmoid函數(shù)的斜率參數(shù),通過(guò)調(diào)整sigmoid函數(shù)的斜率參數(shù)k,可以控制懲罰的陡峭程度和敏感度。由此,可以得到RPC-Chain的懲罰函數(shù),如式(6)所示。此外,作惡行為除了會(huì)扣除信譽(yù)值,還會(huì)扣除在參與眾包活動(dòng)前給出的質(zhì)押金,進(jìn)一步增大作惡成本以真正懲戒到作惡者。
3 實(shí)驗(yàn)分析與討論
本章對(duì)RPC-Chain設(shè)計(jì)并進(jìn)行了實(shí)驗(yàn),驗(yàn)證其可用性與實(shí)用性。具體對(duì)比了區(qū)塊鏈性能、信譽(yù)激勵(lì)調(diào)節(jié)、代理重加密三方面的機(jī)制。
3.1 方案對(duì)比
本文方案與其他相關(guān)文獻(xiàn)進(jìn)行了對(duì)比,比較去中心化、鏈不存在分叉問(wèn)題、身份驗(yàn)證、信譽(yù)機(jī)制、額外隱私保護(hù)、基于智能合約共六個(gè)方面。如果某方案具有某個(gè)屬性則標(biāo)記√,否則標(biāo)記×,比較結(jié)果如表2所示。通過(guò)表2可以得出結(jié)論,本文方案具有更多優(yōu)勢(shì)。
3.2 實(shí)驗(yàn)環(huán)境
本文的實(shí)驗(yàn)環(huán)境使用了一臺(tái)CPU型號(hào)為Intel CoreTM i5-8300H CPU @ 2.30 GHz的計(jì)算機(jī),并使用虛擬機(jī)VMware搭建了Linux操作系統(tǒng)環(huán)境,Linux發(fā)行版本及其版本號(hào)為Ubuntu 22.04.1 LTS,虛擬機(jī)分配了4個(gè)處理器,每個(gè)處理器有2個(gè)核心、4 GB的內(nèi)存及40 GB的磁盤(pán)存儲(chǔ)空間。RPC-Chain的智能合約使用Java語(yǔ)言編寫(xiě),實(shí)驗(yàn)使用的Hyperledger Fabric版本為2.4.1,CA版本為1.5.2,2.4.1版本的Fabric使用的共識(shí)機(jī)制為RAFT。
3.3 性能分析
本節(jié)使用Hyperledger Fabric官方提供的性能測(cè)試工具Caliper對(duì)RPC-Chain的性能進(jìn)行了測(cè)試。本實(shí)驗(yàn)使用的Caliper版本為0.4.2,并編寫(xiě)了基準(zhǔn)配置文件、網(wǎng)絡(luò)配置文件、工作負(fù)載模塊以保證Caliper測(cè)試的正常運(yùn)行?;鶞?zhǔn)配置文件參數(shù)簡(jiǎn)要描述如表3所示。
實(shí)驗(yàn)使用4個(gè)執(zhí)行工作負(fù)載的工作進(jìn)程,每回合中提交事務(wù)數(shù)量為1 000個(gè),以不同的固定速率fixed-rate測(cè)試了Create-Task與SubmitTask兩個(gè)主要的鏈碼在不同發(fā)送速率下的鏈碼吞吐量。如圖3所示,其中CreateTask在發(fā)送速率不斷增大的條件下,穩(wěn)定在40 TPS左右,而SubmitTask基本穩(wěn)定在80 TPS。從實(shí)驗(yàn)結(jié)果可以看出,RPC-Chain可以可靠且穩(wěn)定地使用。
3.4 信譽(yù)機(jī)制對(duì)比分析
為了驗(yàn)證信譽(yù)模型的有效性,設(shè)計(jì)實(shí)驗(yàn)測(cè)試了本文信譽(yù)機(jī)制的信譽(yù)變化,并與文獻(xiàn)[14]提出的模型RCIM、文獻(xiàn)[15,16]提出的信譽(yù)模型Rep-M進(jìn)行了比較。
從圖4可以看出,在前五次參與者進(jìn)行正面行為時(shí),參與者的信譽(yù)值會(huì)不斷的增加。由于本文的信譽(yù)機(jī)制引入了審核區(qū)域,在審核線以下時(shí),本文方案與其他文獻(xiàn)相比,其增速較慢,在越過(guò)審核線后,信譽(yù)值增速變快。在第5~8次工作中,由于參與者進(jìn)行不正當(dāng)行為,所以其信譽(yù)值會(huì)降低,本文使用的懲罰函數(shù)可以通過(guò)提交參數(shù)k控制降速。從圖中還可以看出,RCIM并不能通過(guò)基線過(guò)濾出惡意參與者,而Rep-M與本文方案都可以過(guò)濾出惡意參與者。由此,本文的信譽(yù)模型更加靈活,適合不同眾包場(chǎng)景下的信譽(yù)變化控制。
激勵(lì)函數(shù)與懲罰函數(shù)的力度不能一致,否則故意輪替的惡意參與者就會(huì)一直存在于系統(tǒng)中。本文進(jìn)行了8次善意與惡意交替行為,實(shí)驗(yàn)結(jié)果如圖5所示,RCIM對(duì)于這種行為并不能進(jìn)行正確的懲罰,Rep-M雖然進(jìn)行了懲罰,但是并不能自由控制懲罰粒度。本文的激勵(lì)機(jī)制彌補(bǔ)了上述兩個(gè)文獻(xiàn)的缺陷,可以更好地篩選出善意與惡意操作輪替進(jìn)行的工人。
3.5 代理重加密時(shí)間分析
本文使用10~100 MB的文件模擬眾包過(guò)程中的用戶數(shù)據(jù),使用本文的加解密方式對(duì)其進(jìn)行1 000次實(shí)驗(yàn),最后計(jì)算其平均值,實(shí)驗(yàn)結(jié)果如圖6所示。隨著文件大小的不斷增大,加密與解密時(shí)間也不斷增大,解密時(shí)間略長(zhǎng)于加密時(shí)間,總體呈線性增長(zhǎng),而重加密時(shí)間基本穩(wěn)定在15~20 ms,對(duì)比加密時(shí)間與解密時(shí)間來(lái)說(shuō),基本可以忽略不計(jì)。
4 結(jié)束語(yǔ)
本文提出了一種新的眾包模型鏈,用于構(gòu)建更加可靠的眾包平臺(tái)。RPC-Chain基于Hyperledger Fabric,使用受控云存儲(chǔ)代理重加密實(shí)現(xiàn)數(shù)據(jù)受控共享,使用信譽(yù)機(jī)制完善系統(tǒng)的公平性。實(shí)驗(yàn)結(jié)果表明,RPC-Chain可以可靠穩(wěn)定地運(yùn)行,提供的PRE數(shù)據(jù)共享方案安全高效。與同類方案相比,本文改進(jìn)的信譽(yù)機(jī)制增大了惡意參與者惡意行為成本,提高了普通參與者的積極性,使信譽(yù)激勵(lì)管理更加靈活。綜上,RPC-Chain為軟件眾包領(lǐng)域提供了一種新的可行解決方案,有望實(shí)現(xiàn)更高效、公平和安全的眾包系統(tǒng)。
為了進(jìn)一步完善眾包場(chǎng)景下的區(qū)塊鏈應(yīng)用,下一步的可研究方向可以考慮從區(qū)塊鏈的共識(shí)機(jī)制入手,使用信譽(yù)機(jī)制改進(jìn)眾包下的共識(shí)過(guò)程以減少系統(tǒng)的通信成本。
參考文獻(xiàn):
[1]Liu Dianting, Liang Dong. A blockchain approach of model architecture for crowdsourcing design services under the context of social manufacturing [J]. Machines, 2023, 11(1): 69.
[2]Cibin N, Albano M. Blockchain-based platform for crowdsourcing machine learning models design and training, while incentivizing continuous improvement [C]// Proc of IEEE International Conference on Decentralized Applications and Infrastructures. Piscataway, NJ: IEEE Press, 2023: 31-37.
[3]李玉, 段宏岳, 殷昱煜,等. 基于區(qū)塊鏈的去中心化眾包技術(shù)綜述 [J]. 計(jì)算機(jī)科學(xué), 2021, 48(11): 12-27. (Li Yu, Duan Hongyue, Yin Yuyu, et al. Overview of decentralized crowdsourcing technology based on blockchain [J]. Computer Science, 2021, 48(11): 12-27.)
[4]More N, Motwani D. A blockchain-based decentralized framework for crowdsourcing [M]// Chen J I Z, Tarares J M R S, Shakya S, et al. Image Processing and Capsule Networks. Cham:Springer, 2021: 448-460.
[5]朱向榮, 吳鴻祜, 胡偉. FactChain: 一個(gè)基于區(qū)塊鏈的眾包知識(shí)融合系統(tǒng) [J]. 軟件學(xué)報(bào), 2022, 33(10): 3546-3564. (Zhu Xiangrong, Wu Honghu, Hu Wei. FactChain: a blockchain based crowdsourcing knowledge fusion system [J]. Journal of Software, 2022, 33(10): 3546-3564.)
[6]褚佳靜, 潘慶先, 潘亞楠,等. 基于信譽(yù)模型的眾包質(zhì)量控制算法 [J]. 山東大學(xué)學(xué)報(bào):工學(xué)版, 2023, 53(2): 93-101. (Chu Jiajing, Pan Qingxian, Pan Yanan, et al. Crowdsourcing quality control algorithm based on reputation model [J]. Journal of Shandong University:Engineering Edition, 2023, 53(2): 93-101.)
[7]陽(yáng)真, 黃松, 鄭長(zhǎng)友. 基于區(qū)塊鏈與改進(jìn)CP-ABE的眾測(cè)知識(shí)產(chǎn)權(quán)保護(hù)技術(shù)研究 [J]. 計(jì)算機(jī)科學(xué), 2022, 49(5): 325-332. (Yang Zhen, Huang Song, Zheng Changyou. Research on crowdsourced intellectual property protection technology based on blockchain and improved CP-ABE [J]. Computer Science, 2022, 49(5): 325 332.)
[8]Lin I C, Liao T C. A survey of blockchain security issues and challenges [J]. International Journal of Networking and Security, 2017, 19(5): 653-659.
[9]Sun Lijun, Yang Qian, Chen Xiao, et al. RC-chain: reputation-based crowdsourcing blockchain for vehicular networks [J]. Journal of Network and Computer Applications, 2021, 176: 102956.
[10]Androulaki E, Barger A, Bortnikov V, et al. Hyperledger fabric: a distributed operating system for permissioned blockchains [C]// Proc of the 13th EuroSys Conference. New York: ACM Press, 2018: article No.30.
[11]王嘉瑤, 王婷, 袁文亮,等. 分布式賬本技術(shù)的發(fā)展歷程研究綜述 [J]. 計(jì)算機(jī)應(yīng)用研究, 2023, 40(3): 641-648. (Wang Jiayao, Wang Ting, Yuan Wenliang, et al. A review of the development history of distributed ledger technology [J]. Application Research of Computers, 2023, 40(3): 641-648.)
[12]Santiago C, Lee C. Accelerating message propagation in blockchain networks [C]// Proc of International Conference on Information and Communication Technology Convergence. Piscataway, NJ: IEEE Press, 2020: 157-160.
[13]Blaze M, Bleumer G, Strauss M. Divertible protocols and atomic proxy cryptography [C]//Proc of International Conference on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 1998: 127-144.
[14]高麗萍, 程添, 高麗. 區(qū)塊鏈環(huán)境下基于細(xì)粒度授權(quán)隱私保護(hù)的空間眾包任務(wù)分配模型 [J]. 小型微型計(jì)算機(jī)系統(tǒng), 2022, 43(4): 759-766. (Gao Liping, Cheng Tian, Gao Li. Spatial crowdsourcing task allocation model based on fine-grained authorization privacy protection in blockchain environment [J]. Small Micro Computer System, 2022, 43(4): 759-766.)
[15]劉賀. 基于區(qū)塊鏈的眾包質(zhì)量評(píng)估模型的研究 [D]. 天津:天津大學(xué), 2020. (Liu He. Research on crowdsourcing quality evaluation model based on blockchain [D]. Tianjin:Tianjin University, 2020.)
[16]芮蘭蘭, 張攀, 黃豪球,等. 一種面向眾包的基于信譽(yù)值的激勵(lì)機(jī)制 [J]. 電子與信息學(xué)報(bào), 2016, 38(7): 1808-1815. (Rui Lanlan, Zhang Pan, Huang Haoqiu, et al. A reputation based incentive mechanism for crowdsourcing [J]. Journal of Electronics and Information Technology, 2016, 38(7): 1808-1815.)