吉 原, 蔣凌云
(南京郵電大學(xué)計(jì)算機(jī)學(xué)院, 江蘇 南京 210023)
眾包(Crowdsourcing)[1]是一種面向大眾公開招募任務(wù)工作者的問題解決模式,通過招募具有相應(yīng)技能的個(gè)體,完成一些復(fù)雜難解的任務(wù),這種模式近年受到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注。然而,傳統(tǒng)的基于集中式中央平臺(tái)的眾包模型存在單點(diǎn)故障、隱私泄露、信任風(fēng)險(xiǎn)等問題。區(qū)塊鏈作為一種去中心化的分布式賬本技術(shù),為解決傳統(tǒng)基于集中式中央平臺(tái)的眾包模型存在的問題提供了一種可行方案。本文調(diào)研了基于區(qū)塊鏈的眾包系統(tǒng)的相關(guān)研究工作,首先介紹了眾包和區(qū)塊鏈技術(shù)的概念,其次分析了傳統(tǒng)基于集中式中央平臺(tái)的眾包模型存在的問題,并從架構(gòu)設(shè)計(jì)、安全隱私、共識(shí)機(jī)制、數(shù)據(jù)存儲(chǔ)等方面分析了基于區(qū)塊鏈的眾包系統(tǒng)面臨的主要問題及針對(duì)這些問題常用的解決方案,同時(shí)針對(duì)眾包數(shù)據(jù)質(zhì)量以及共識(shí)協(xié)議通信復(fù)雜度問題,本文給出了基于信譽(yù)系統(tǒng)的解決思路。最后本文對(duì)基于區(qū)塊鏈的眾包系統(tǒng)未來的研究方向進(jìn)行了展望。
HOWE[1]于2006年提出了眾包這一概念,并將其描述為一種將傳統(tǒng)上由員工完成的任務(wù)以公開招募的形式外包給一大群人的想法。通過眾包這種商業(yè)模式,企業(yè)或個(gè)人可以在眾包平臺(tái)上發(fā)布任務(wù)并將任務(wù)分配給有意愿完成此任務(wù)的互聯(lián)網(wǎng)上的大眾,以此尋求任務(wù)解決方案。
典型的眾包系統(tǒng)通常由三組角色組成:任務(wù)請(qǐng)求者、工作者和眾包平臺(tái)(如圖1所示)。任務(wù)請(qǐng)求者在眾包平臺(tái)上描述任務(wù)需求并發(fā)布任務(wù),平臺(tái)中對(duì)該任務(wù)感興趣的、符合技能要求的平臺(tái)用戶報(bào)名參加任務(wù),平臺(tái)或者任務(wù)請(qǐng)求者選擇合適的工作者。被選中的工作者在完成任務(wù)后將結(jié)果提交給平臺(tái),當(dāng)任務(wù)執(zhí)行結(jié)果滿足任務(wù)請(qǐng)求者設(shè)置的要求后,平臺(tái)將最終結(jié)果發(fā)送給任務(wù)請(qǐng)求者,并向相應(yīng)的工作者發(fā)放獎(jiǎng)勵(lì)。設(shè)計(jì)好的激勵(lì)機(jī)制可以吸引更多的平臺(tái)用戶參與眾包任務(wù),因此成為眾包領(lǐng)域的研究熱點(diǎn)。為了保證激勵(lì)機(jī)制的有效執(zhí)行,需要選擇一個(gè)可信的第三方平臺(tái)(也可稱為中介)對(duì)交易和服務(wù)進(jìn)行托管,保證眾包服務(wù)與獎(jiǎng)勵(lì)之間的順利交換。因此,傳統(tǒng)的眾包系統(tǒng)普遍基于集中式的架構(gòu)完成眾包各個(gè)階段任務(wù)的執(zhí)行。
圖1 典型的眾包系統(tǒng)架構(gòu)Fig.1 Typical architecture of crowdsourcing system
區(qū)塊鏈的概念首次出現(xiàn)在比特幣白皮書中,但是該白皮書中并未對(duì)區(qū)塊鏈做出精確定義[2]。目前,學(xué)術(shù)界將區(qū)塊鏈視為一種去中心化、集體維護(hù)的分布式數(shù)據(jù)庫(kù),其數(shù)據(jù)結(jié)構(gòu)由按時(shí)間順序排列的數(shù)據(jù)區(qū)塊組成,每個(gè)區(qū)塊包含一段時(shí)間內(nèi)的事務(wù)信息、相應(yīng)的時(shí)間戳和指向前一個(gè)區(qū)塊的哈希指針等信息,并通過密碼學(xué)技術(shù)加強(qiáng)事務(wù)信息的完整性,避免信息被篡改和偽造[3]。
區(qū)塊鏈賬本由網(wǎng)絡(luò)中的眾多節(jié)點(diǎn)共同維護(hù),系統(tǒng)中的節(jié)點(diǎn)使用點(diǎn)對(duì)點(diǎn)(Peer-To-Peer,P2P)網(wǎng)絡(luò)連接通信,P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)地位平等,不需要中央服務(wù)器集中協(xié)調(diào)。為了保證分布式網(wǎng)絡(luò)中各節(jié)點(diǎn)數(shù)據(jù)的一致性,需要設(shè)計(jì)合理的共識(shí)機(jī)制。共識(shí)的過程就是節(jié)點(diǎn)驗(yàn)證事務(wù)信息并更新區(qū)塊鏈的過程。共識(shí)機(jī)制作為區(qū)塊鏈技術(shù)的核心,對(duì)區(qū)塊鏈的安全性、公平性及效率等方面起著關(guān)鍵作用。
區(qū)塊鏈系統(tǒng)中一個(gè)典型的運(yùn)作流程如下:用戶在區(qū)塊鏈客戶端發(fā)起請(qǐng)求消息,各節(jié)點(diǎn)將消息數(shù)據(jù)在網(wǎng)絡(luò)中廣播,網(wǎng)絡(luò)中參與共識(shí)的節(jié)點(diǎn)驗(yàn)證請(qǐng)求數(shù)據(jù),各節(jié)點(diǎn)根據(jù)共識(shí)機(jī)制完成用戶請(qǐng)求并將一段時(shí)間內(nèi)的請(qǐng)求數(shù)據(jù)打包生成區(qū)塊,節(jié)點(diǎn)將新區(qū)塊在網(wǎng)絡(luò)中廣播,其余節(jié)點(diǎn)驗(yàn)證新區(qū)塊并更新其本地區(qū)塊鏈。
智能合約是一種不需要中介、自我驗(yàn)證、自動(dòng)執(zhí)行合約條款的計(jì)算機(jī)程序,近年來隨著區(qū)塊鏈技術(shù)的廣泛應(yīng)用而備受關(guān)注[4]。智能合約的概念最早于1994年被提出,它被定義為一種能夠按照事先寫好的規(guī)則自主執(zhí)行且不受外界人為干預(yù)的計(jì)算機(jī)程序,但當(dāng)時(shí)無法為智能合約提供可信的執(zhí)行環(huán)境,所以在很長(zhǎng)的一段時(shí)間內(nèi)沒有得到廣泛應(yīng)用[5]。隨著區(qū)塊鏈技術(shù)的出現(xiàn),人們發(fā)現(xiàn)區(qū)塊鏈系統(tǒng)可以為智能合約提供去中心化的可信執(zhí)行環(huán)境,使得智能合約的概念得到實(shí)際應(yīng)用。同時(shí),區(qū)塊鏈系統(tǒng)也可以借助智能合約的可編程特性實(shí)現(xiàn)一些復(fù)雜的交易功能。
區(qū)塊鏈系統(tǒng)中相關(guān)用戶對(duì)規(guī)則進(jìn)行協(xié)商,達(dá)成一致后創(chuàng)建智能合約代碼,并將該合約代碼部署到區(qū)塊鏈上。一旦滿足了合約的觸發(fā)條件,預(yù)定義的合約代碼將自主執(zhí)行,并將執(zhí)行后的結(jié)果打包進(jìn)區(qū)塊,經(jīng)共識(shí)驗(yàn)證之后發(fā)布到區(qū)塊鏈中。通過智能合約,平臺(tái)用戶和陌生人可以在去中心化的環(huán)境中安全、公平地進(jìn)行交易。
基于集中式中央平臺(tái)的眾包模型存在一些問題:首先,中央平臺(tái)容易因分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)或系統(tǒng)故障導(dǎo)致服務(wù)不可用,損害平臺(tái)用戶的利益;其次,中央平臺(tái)并不一定完全公平,可能會(huì)偏向支付服務(wù)費(fèi)的任務(wù)請(qǐng)求者,當(dāng)任務(wù)請(qǐng)求者和工作者之間發(fā)生沖突時(shí),需要依賴平臺(tái)的主觀仲裁,這會(huì)引起公平性方面的風(fēng)險(xiǎn);最后,中央平臺(tái)的數(shù)據(jù)庫(kù)中一般存儲(chǔ)了大量的用戶隱私信息(如姓名、年齡、地理位置、職業(yè)信息等),可能存在用戶隱私泄露的風(fēng)險(xiǎn)。
區(qū)塊鏈為解決上述問題提供了可行的方案。首先,區(qū)塊鏈去中心化機(jī)制可以有效地解決單點(diǎn)故障問題,在沒有集中式中央平臺(tái)的情況下,支持相互不信任的用戶安全地完成交易,解決了中央平臺(tái)存在的公平性問題;其次,區(qū)塊鏈的匿名機(jī)制能在一定程度上保護(hù)用戶的隱私。因此,基于區(qū)塊鏈的眾包系統(tǒng)成為眾包領(lǐng)域重要的研究方向。
本章節(jié)首先討論了基于區(qū)塊鏈的眾包系統(tǒng)的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)流程,其次從安全隱私、共識(shí)機(jī)制和數(shù)據(jù)存儲(chǔ)方面介紹了目前區(qū)塊鏈領(lǐng)域的相關(guān)工作。
一個(gè)典型的基于區(qū)塊鏈的眾包系統(tǒng)流程如圖2所示。任務(wù)請(qǐng)求者一般通過以下步驟發(fā)布需求,進(jìn)而獲得解決方案。
圖2 一個(gè)典型的基于區(qū)塊鏈的眾包系統(tǒng)流程Fig.2 A typical blockchain-based crowdsourcing system process
(1)注冊(cè):任務(wù)請(qǐng)求者和工作者在平臺(tái)上進(jìn)行身份注冊(cè),獲得身份信息,如公私鑰、數(shù)字證書等。
(2)發(fā)布任務(wù):任務(wù)請(qǐng)求者向區(qū)塊鏈中部署眾包智能合約,合約內(nèi)容包括眾包需求信息、任務(wù)請(qǐng)求者公鑰、工作者報(bào)名截止時(shí)間、任務(wù)截止時(shí)間、任務(wù)結(jié)果評(píng)價(jià)規(guī)則、獎(jiǎng)勵(lì)分配規(guī)則等,合約內(nèi)容透明、公開,并且任務(wù)請(qǐng)求者需提前將獎(jiǎng)勵(lì)資金轉(zhuǎn)到智能合約賬戶地址。
(3)申請(qǐng)任務(wù):愿意執(zhí)行眾包任務(wù)的工作者通過任務(wù)請(qǐng)求者發(fā)布的智能合約進(jìn)行報(bào)名、支付押金的操作。
(4)分配任務(wù):智能合約根據(jù)預(yù)定的規(guī)則選擇工作者參與眾包,并通知被選擇的工作者。
(5)執(zhí)行任務(wù):被選中的工作者執(zhí)行眾包任務(wù),使用任務(wù)請(qǐng)求者的公鑰加密任務(wù)數(shù)據(jù),然后發(fā)送至分布式鏈下存儲(chǔ),并將數(shù)據(jù)哈希值和指針存儲(chǔ)在區(qū)塊鏈上。
(6)評(píng)估并分配獎(jiǎng)勵(lì):任務(wù)請(qǐng)求者可以通過指針找到任務(wù)數(shù)據(jù),并用自己的私鑰解密;智能合約根據(jù)事先設(shè)定的規(guī)則評(píng)價(jià)工作者的任務(wù)完成質(zhì)量,確定獎(jiǎng)勵(lì)分配,同時(shí)將押金返還給工作者。
CrowdBC是一個(gè)典型的基于區(qū)塊鏈的眾包平臺(tái),其系統(tǒng)架構(gòu)如圖3所示[6]。CrowdBC架構(gòu)分為應(yīng)用層、區(qū)塊鏈層和存儲(chǔ)層。對(duì)眾包任務(wù)感興趣的工作者可以在應(yīng)用層查詢?nèi)蝿?wù)請(qǐng)求者發(fā)布的任務(wù),并根據(jù)自己具備的相應(yīng)技能報(bào)名相應(yīng)的任務(wù)。區(qū)塊鏈層負(fù)責(zé)對(duì)來自應(yīng)用層的輸入執(zhí)行共識(shí)協(xié)議以達(dá)成共識(shí),并對(duì)眾包任務(wù)最終狀態(tài)達(dá)成一致。在數(shù)據(jù)存儲(chǔ)方面,由于區(qū)塊鏈上的數(shù)據(jù)存儲(chǔ)容量有限,因此CrowdBC單獨(dú)抽離出存儲(chǔ)層,將眾包任務(wù)元數(shù)據(jù)(如數(shù)據(jù)大小、哈希值、所有者、指針)放在鏈上存儲(chǔ),原始數(shù)據(jù)則放在鏈下存儲(chǔ)層,用戶可以通過鏈上的元數(shù)據(jù)驗(yàn)證存儲(chǔ)層數(shù)據(jù)的完整性和真實(shí)性。
圖3 CrowdBC系統(tǒng)架構(gòu)Fig.3 System architecture of CrowdBC
CrowdBC實(shí)現(xiàn)了三種類型的智能合約:用戶注冊(cè)合約、用戶摘要合約、任務(wù)請(qǐng)求者與工作者關(guān)系合約。任務(wù)請(qǐng)求者或工作者使用用戶注冊(cè)合約進(jìn)行注冊(cè),用戶摘要合約為注冊(cè)成功的用戶創(chuàng)建用戶信息(包括技能、職業(yè)、聲譽(yù)等)。任務(wù)請(qǐng)求者與工作者關(guān)系合約則實(shí)現(xiàn)了任務(wù)請(qǐng)求者與工作者之間的協(xié)議,描述了任務(wù)發(fā)布、任務(wù)分配、方案收集和獎(jiǎng)勵(lì)分配的過程。
使用去中心化的智能合約描述復(fù)雜的眾包邏輯,可以降低對(duì)集中式中央平臺(tái)的依賴性,并增強(qiáng)眾包的靈活性。例如,GAO等[7]構(gòu)建了一種基于區(qū)塊鏈技術(shù)的新型眾包模型,在智能合約中部署工作者選擇策略,實(shí)現(xiàn)可靠的任務(wù)分配。余春堂等[8]提出了基于區(qū)塊鏈的眾包物流分級(jí)多層智能服務(wù)交易監(jiān)管架構(gòu),通過編寫智能合約實(shí)現(xiàn)與區(qū)塊鏈網(wǎng)絡(luò)的交互。KADADHA等[9]提出了基于區(qū)塊鏈和拍賣機(jī)制的眾包框架ABCrowd,設(shè)計(jì)了拍賣算法激勵(lì)工作者公布其真實(shí)成本以獲得最高效用,通過以太坊智能合約保證任務(wù)請(qǐng)求者和工作者之間的可信交互以及拍賣機(jī)制的可信執(zhí)行。
為了解決工作者能力水平參差帶來的眾包任務(wù)數(shù)據(jù)質(zhì)量問題,可以將信譽(yù)系統(tǒng)引入眾包模型中,使用信譽(yù)作為衡量工作者能力的指標(biāo),確保所選工作者的能力滿足任務(wù)要求。許多眾包研究工作將工作者的信譽(yù)評(píng)分建立在眾包任務(wù)請(qǐng)求者的反饋上,然而眾包任務(wù)請(qǐng)求者作為利益相關(guān)方可能會(huì)提交不真實(shí)的反饋。為了解決該問題,可以考慮招募第三方驗(yàn)證者負(fù)責(zé)評(píng)價(jià)眾包工作者完成任務(wù)的質(zhì)量,并在此基礎(chǔ)上建立針對(duì)工作者的信譽(yù)系統(tǒng)。為了激勵(lì)第三方驗(yàn)證者提交誠(chéng)實(shí)的評(píng)價(jià)報(bào)告,眾包模型可以將驗(yàn)證者的評(píng)價(jià)過程建模為同步報(bào)告博弈,使用對(duì)等預(yù)測(cè)和對(duì)數(shù)打分規(guī)則衡量驗(yàn)證者報(bào)告的誠(chéng)實(shí)性,在此基礎(chǔ)上設(shè)計(jì)針對(duì)驗(yàn)證者的信譽(yù)系統(tǒng)。
在傳統(tǒng)的基于集中式中央平臺(tái)的眾包系統(tǒng)中,當(dāng)任務(wù)請(qǐng)求者和工作者進(jìn)行交易時(shí),相關(guān)數(shù)據(jù)由中央平臺(tái)進(jìn)行管理,這不僅增加了眾包成本,也帶來了數(shù)據(jù)被偽造或篡改的風(fēng)險(xiǎn)。因此,一個(gè)安全可信的眾包系統(tǒng)必須保證相關(guān)數(shù)據(jù)的一致性,防止被非法用戶篡改。同時(shí),眾包系統(tǒng)的用戶應(yīng)該可以在任何時(shí)間或者地點(diǎn)訪問系統(tǒng),然而傳統(tǒng)的基于集中式中央平臺(tái)的眾包系統(tǒng)面對(duì)網(wǎng)絡(luò)攻擊或者其他系統(tǒng)故障時(shí),容易造成系統(tǒng)不可用。朱向榮等[10]提出一個(gè)基于區(qū)塊鏈的眾包知識(shí)融合系統(tǒng)FactChain,區(qū)塊鏈的去中心化特性和開放性保證了系統(tǒng)的單點(diǎn)崩潰容錯(cuò)性;區(qū)塊鏈的開放透明、可溯源和不可篡改性使得知識(shí)的貢獻(xiàn)者和更新流程可追溯。FactChain還利用智能合約實(shí)現(xiàn)鏈上的知識(shí)融合邏輯,保證了鏈上知識(shí)的一致性訪問。
區(qū)塊鏈的開放性和透明性保證了事務(wù)信息的可溯源和不可篡改,是區(qū)塊鏈技術(shù)重要的優(yōu)點(diǎn)之一,然而這一優(yōu)點(diǎn)可能會(huì)影響對(duì)眾包用戶的隱私保護(hù)。雖然區(qū)塊鏈系統(tǒng)的匿名機(jī)制允許用戶使用與真實(shí)身份信息無關(guān)的公鑰標(biāo)識(shí)身份參與眾包,但是由于區(qū)塊鏈網(wǎng)絡(luò)環(huán)境的開放性,導(dǎo)致惡意用戶可以通過分析鏈上公開的眾包交易記錄推斷目標(biāo)用戶的個(gè)人信息(如真實(shí)身份、地理位置等),這造成了極大的隱私泄露風(fēng)險(xiǎn)。YANG等[11]提出了一種基于區(qū)塊鏈的隱私保護(hù)眾包系統(tǒng),可以保護(hù)工作者的位置隱私。為了防止通過重識(shí)別進(jìn)行攻擊,該系統(tǒng)使用多個(gè)私有區(qū)塊鏈分散眾包參與者的交易記錄,不愿透露位置信息的工作者可以從各種私有區(qū)塊鏈中選擇任務(wù),因此攻擊者無法通過觀察相應(yīng)的事務(wù)歷史推斷工作者的身份和位置信息。ZHANG等[12]提出了一種基于區(qū)塊鏈的新型隱私保護(hù)車輛感知眾包方案PRVB,通過保障車輛與感知數(shù)據(jù)之間的不可鏈接性達(dá)到保護(hù)數(shù)據(jù)隱私的目的。針對(duì)眾包任務(wù)信息的隱私保護(hù),TONG等[13]提出了一個(gè)混合區(qū)塊鏈眾包平臺(tái)CHChain。CHChain的核心是其混合式區(qū)塊鏈結(jié)構(gòu),它由多個(gè)私有任務(wù)鏈和一個(gè)公共鏈組成,將每個(gè)任務(wù)的私有信息(如任務(wù)響應(yīng)、評(píng)估、反饋等)隔離到只有任務(wù)參與者可以訪問的私有任務(wù)鏈中,將所有任務(wù)的公共信息(如任務(wù)ID、獎(jiǎng)勵(lì)、截止日期等)記錄到一個(gè)公共鏈中。CHChain在實(shí)現(xiàn)眾包數(shù)據(jù)分布式透明存儲(chǔ)的同時(shí),還在一定程度上保證了任務(wù)敏感信息的私密性。
基于集中式中央平臺(tái)的眾包系統(tǒng)缺乏有效的信任機(jī)制,無法確保平臺(tái)的公平性,也無法有效應(yīng)對(duì)任務(wù)請(qǐng)求者或工作者可能存在的不誠(chéng)實(shí)行為。在去中心化的眾包系統(tǒng)中設(shè)計(jì)安全、公平的共識(shí)機(jī)制是解決上述問題的有效方法。共識(shí)機(jī)制是區(qū)塊鏈系統(tǒng)建立信任的基礎(chǔ),比特幣使用工作量證明(Proof of Work,PoW)作為底層共識(shí)協(xié)議,但該協(xié)議吞吐量低、資源消耗大等缺點(diǎn)限制了其廣泛應(yīng)用,其他共識(shí)算法[14][如基于實(shí)用拜占庭容錯(cuò)算法(Practical Byzantine Fault Tolerance,PBFT)、權(quán)益證明(Proof of Stake,PoS)等]也存在諸如拓展性差或缺乏公平性等問題。因此,設(shè)計(jì)共識(shí)機(jī)制是實(shí)現(xiàn)基于區(qū)塊鏈的眾包系統(tǒng)的關(guān)鍵,通過設(shè)計(jì)適用于眾包場(chǎng)景下的共識(shí)算法,可以提升基于區(qū)塊鏈的眾包系統(tǒng)的可拓展性、公平性和安全性。
ZOU等[15]提出了一種信任證明(Proof of Trust,PoT)共識(shí)協(xié)議,適用于眾包和一般的在線服務(wù)行業(yè),基于眾包工作者的信任值選擇交易驗(yàn)證者,使用Raft算法選取共識(shí)領(lǐng)導(dǎo)者,該協(xié)議既避免了PoW機(jī)制的低吞吐量、高計(jì)算消耗問題,也解決了PBFT共識(shí)算法的可拓展性問題。但是,該協(xié)議使用Raft算法選出的唯一共識(shí)領(lǐng)導(dǎo)者可能不可靠,這會(huì)增加節(jié)點(diǎn)實(shí)施惡意行為的概率。ZHU等[16]針對(duì)此問題提出了改進(jìn)的信任證明共識(shí)方案,設(shè)計(jì)了一種適用于眾包場(chǎng)景的信譽(yù)算法。該共識(shí)方案基于節(jié)點(diǎn)信譽(yù)值選擇共識(shí)節(jié)點(diǎn)參與共識(shí)過程,一方面可以保證共識(shí)節(jié)點(diǎn)是動(dòng)態(tài)變化的,另一方面大大降低惡意節(jié)點(diǎn)影響共識(shí)的概率。與其他共識(shí)協(xié)議相比,該協(xié)議具有更高的安全性和可擴(kuò)展性。FENG等[17]提出了MCS-Chain區(qū)塊鏈眾包系統(tǒng),該系統(tǒng)使用了一種新的區(qū)塊生成共識(shí)機(jī)制,當(dāng)?shù)却涗浀较乱粋€(gè)區(qū)塊中的累計(jì)支付金額超過預(yù)先定義的閾值時(shí),就會(huì)生成一個(gè)新區(qū)塊,并保證即使多個(gè)區(qū)塊同時(shí)出現(xiàn),也可以確定唯一的塊,從而大大降低了計(jì)算開銷。AN等[18]在基于區(qū)塊鏈的眾包模型中引入了雙共識(shí)機(jī)制,第一個(gè)共識(shí)保證了工作者與任務(wù)請(qǐng)求者之間的雇傭關(guān)系,第二個(gè)共識(shí)保證了工作者和報(bào)酬之間的對(duì)應(yīng)關(guān)系,雙共識(shí)方法避免了欺詐行為的發(fā)生。
P2P網(wǎng)絡(luò)的開放性和動(dòng)態(tài)性(節(jié)點(diǎn)的加入和退出)大大增加了其安全風(fēng)險(xiǎn),在這樣的網(wǎng)絡(luò)中,沒有集中的權(quán)力驗(yàn)證節(jié)點(diǎn)和管理網(wǎng)絡(luò)。因此,有必要設(shè)計(jì)一套信譽(yù)系統(tǒng)約束共識(shí)節(jié)點(diǎn)的行為,可以基于信譽(yù)對(duì)節(jié)點(diǎn)進(jìn)行分組,形成包含多個(gè)子集群的底層網(wǎng)絡(luò)和包含主集群的上層網(wǎng)絡(luò),將節(jié)點(diǎn)共識(shí)通信限制在單個(gè)集群內(nèi),多個(gè)子集群獨(dú)立、并發(fā)地執(zhí)行共識(shí)協(xié)議,避免了每個(gè)節(jié)點(diǎn)向全網(wǎng)所有節(jié)點(diǎn)廣播消息,從而大大降低了通信的復(fù)雜度。
使用區(qū)塊鏈存儲(chǔ)眾包數(shù)據(jù)存在一些問題:首先,區(qū)塊過大會(huì)增加區(qū)塊鏈中全節(jié)點(diǎn)的壓力,這可能會(huì)導(dǎo)致全節(jié)點(diǎn)的減少和區(qū)塊鏈的集中化;其次,向區(qū)塊鏈提交事務(wù)、達(dá)成共識(shí)的成本昂貴[19]。區(qū)塊鏈提供的優(yōu)勢(shì)可以應(yīng)用于鏈下存儲(chǔ),例如可以將眾包任務(wù)數(shù)據(jù)的哈希值存儲(chǔ)在鏈上,原始數(shù)據(jù)存儲(chǔ)在鏈下。由于哈希值相對(duì)較小,因此相應(yīng)的存儲(chǔ)成本不高。
星際文件系統(tǒng)(Inter Planetary File System,IPFS)是區(qū)塊鏈應(yīng)用中常見的鏈下存儲(chǔ)方案之一。IPFS是一種分布式數(shù)據(jù)存儲(chǔ)協(xié)議,支持高容量存儲(chǔ)和高并發(fā)訪問[20]。IPFS是內(nèi)容可尋址的,為每個(gè)存儲(chǔ)的文件分配一個(gè)唯一的哈希值,它具有良好的重復(fù)數(shù)據(jù)消除機(jī)制,沒有中央服務(wù)器限制,上傳到系統(tǒng)中的數(shù)據(jù)可以永久保存。對(duì)于高頻查詢的數(shù)據(jù),IPFS可以沿著查詢路徑創(chuàng)建重復(fù)數(shù)據(jù),以便在下一次查詢時(shí)直接從本地加載。區(qū)塊鏈應(yīng)用中的事務(wù)數(shù)據(jù)的大小可達(dá)數(shù)萬字節(jié),而IPFS哈希值只有幾十個(gè)字節(jié)。因此,可將IPFS作為基于區(qū)塊鏈的眾包系統(tǒng)的鏈下存儲(chǔ)方案,將眾包數(shù)據(jù)存儲(chǔ)在IPFS中,并將IPFS哈希值存儲(chǔ)在區(qū)塊中,從而大大節(jié)省了區(qū)塊鏈的存儲(chǔ)空間。MUGHAL等[21]提出了基于區(qū)塊鏈的河流流量數(shù)據(jù)采集眾包系統(tǒng),將河流流量聚合數(shù)據(jù)存儲(chǔ)到IPFS,實(shí)現(xiàn)高效的分布式存儲(chǔ)和共享機(jī)制。除此之外,還有許多研究將IPFS作為區(qū)塊鏈眾包系統(tǒng)的鏈下存儲(chǔ)方案[22-24]。將IPFS分布式鏈下存儲(chǔ)與區(qū)塊鏈相結(jié)合,能在去中心化的同時(shí)起到擴(kuò)展擴(kuò)容、減輕鏈上負(fù)擔(dān)的作用。
除了IPFS技術(shù),其他的存儲(chǔ)技術(shù)(例如中央云服務(wù)器、BitTorrent文件系統(tǒng)、Storj、Swarm等)也可用于區(qū)塊鏈眾包系統(tǒng)的線下存儲(chǔ),例如MA等[25]提出的區(qū)塊鏈眾包系統(tǒng)將非敏感元數(shù)據(jù)記錄在區(qū)塊鏈上,敏感元數(shù)據(jù)和加密數(shù)據(jù)被存儲(chǔ)在鏈下的安全云服務(wù)器中。
除了上文梳理的研究角度,基于區(qū)塊鏈的眾包系統(tǒng)未來的研究方向還包括如下內(nèi)容。
(1)智能合約的安全性。智能合約是基于區(qū)塊鏈的眾包系統(tǒng)的關(guān)鍵組成部分,并且由于區(qū)塊鏈的不可篡改特性,使智能合約部署到區(qū)塊鏈上后便無法修改,所以一旦智能合約出現(xiàn)代碼漏洞并被不法分子利用,將會(huì)造成巨大的損失。因此,在將智能合約部署上鏈之前,有必要對(duì)合約代碼進(jìn)行檢查,分析其是否存在潛在的安全問題。
(2)用戶身份認(rèn)證。惡意攻擊者可能會(huì)偽造生成多個(gè)身份參與共識(shí)過程以影響共識(shí)結(jié)果,即所謂的女巫攻擊。為了保證基于區(qū)塊鏈的眾包系統(tǒng)的安全性,設(shè)計(jì)更加復(fù)雜的節(jié)點(diǎn)身份認(rèn)證機(jī)制,增大發(fā)動(dòng)女巫攻擊的難度和成本,是未來重要的研究方向。
基于區(qū)塊鏈的眾包系統(tǒng)作為眾包技術(shù)的一個(gè)研究領(lǐng)域,有許多需要深入研究的問題。本文梳理了近年來的相關(guān)研究工作,并從架構(gòu)設(shè)計(jì)、安全隱私、共識(shí)機(jī)制和數(shù)據(jù)存儲(chǔ)四個(gè)方面分析了基于區(qū)塊鏈的眾包系統(tǒng)設(shè)計(jì)所面臨的問題及其對(duì)應(yīng)的解決方案,并對(duì)未來的研究方向進(jìn)行了展望。希望本文的研究可以對(duì)未來的研究工作提供有益參考。