区块链环境下基于细粒度授权隐私保护的空间众包任务分配模型

2022-05-09 10:59高丽萍
小型微型计算机系统 2022年4期
关键词:加密合约区块

高丽萍,程 添,高 丽

1(上海理工大学 光电信息与计算机工程学院,上海 200093)

2(复旦大学 上海数据科学重点实验室,上海 200093)

3(上海理工大学 图书馆,上海 200093)

1 引 言

空间众包[1]作为是一种新的众包模式,它的兴起带动了Uber、滴滴等主流平台的发展.空间众包基本模型如图1所示:首先,请求者在平台上发布地理位置相关的任务,然后,对该任务感兴趣的工人申请执行任务并向平台提交任务答案.最后,请求者选择满意的任务答案并支付给相应工人任务报酬.

图1 传统众包模型示意图Fig.1 System model of traditional crowdsourcing

然而,这种传统的模型虽然能解决复杂的计算问题,但1)中心化的服务器易收到分布式拒绝服务攻击DDoS[2]或服务器单点故障无法正常运作;2)平台交易不透明导致公平性无法保证进而无法确定任务分配合理性;3)集中式数据存储也存在隐私泄露的风险(1)http://www.smh.com.au/business/freelancer-contests-20000-privacy-breach-fine-from-oaic20160112-gm4aw2;4)系统无资金锁定机制,若出现大量恶意工人将导致任务无法完整执行.

考虑到区块链去中心化、以太坊平台智能合约自动执行的特性,基于区块链环境的众包模型应运而生.大多数区块链环境下的移动众包模型的隐私保护方案[3,4]旨在保护用户的身份信息隐私,然而众包平台可以通过结合用户的查询动作和任务的内容,来推断出用户的兴趣集.为了保护隐私,有些学者[5]利用可搜索加密进行众包平台的任务匹配,但当系统中存在大量任务时,用户并不能对任务进行数据级控制.由于区块链的计算规模限制,大量计算过程仍然在链下执行.而文献[6]提出了一个完全分布式的众包框架,在区块链上执行拍卖,利用区块链以太坊的智能合约代替中心化的拍卖平台.但该模型只考虑到投标价格和工人与任务距离,忽略了工人声誉、完成时间等重要因素.同时若系统中大量工人申请执行任务但没有提交,会造成任务分配后无法及时完成.

本文提出了一个区块链环境下的去中心化的众包模型,采用基于密文策略的属性加密实现细粒度授权从而加强隐私保护,在任务分配过程中设计投标分数阈值动态变化的拍卖机制,综合考虑工人的距离、赔偿、报价和声誉来进行选择,保证任务分配的合理性.另外,首次提出资金锁定机制在账户中锁定工人的赔偿资金,有效预防大量恶意工人涌入系统破坏交易.

本文的主要贡献有如下几点:

1)提出了一种于区块链环境下实现细粒度授权的空间众包模型:BFP-Crowd.请求者利用基于密文策略的属性加密,生成基于任务属性的秘钥,加密任务内容,可以加强保护任务隐私.

2)提出了BFP-Crowd模型具体的解决方案,设计智能合约执行我们提出的投标分数阈值动态变化的拍卖机制,根据工人的声誉、赔付金额、距离、报价综合选择工人,比其他的基于区块链的众包任务分配机制更具有合理性.

3)通过真实数据集,在本地的以太坊私有链上验证提出的方案的可行性和扩展性.实验结果表明,我们提出的BFP-Crowd模型在相同任务集的情况下工人总行驶路径更短,当系统中存在等比例的恶意工人时任务请求者的损失更小.

本文剩余部分结构如下:第2部分介绍相关工作;第3部分将我们提出的模型和框架以及系统工作流程公式化,并提出我们设计的基于细粒度授权的隐私保护方案,同时给出相关的安全假设;第4部分设计本模型在区块链下的智能合约以及拍卖模型的任务分配算法;第5部分进行试验验证模型的合理性、可用性以及创新性;第6部分总结和展望.

2 相关工作

本文相关工作的研究主要有区块链、隐私保护和任务分配3个方向.

2.1 区块链环境下的众包模型

为了保证众包系统的分布式存储,满足去中心化的性质,文献[7]提出众包中基于区块链环境下实现去中心化的概念,一些科研学者在区块链的环境下进行众包.文献[8]提出信任服务机制,在区块链内转移资产进行付款,证明没有中央机构的众包系统服务机制更具有有效性和适用性.

但大多数基于区块链系统会遭受分叉问题和集中化问题,文献[9]提出了一种新颖的区块共生机制,大幅度降低计算开销实现完全分布式和分散式管理.

2.2 隐私保护

为了加强隐私保护,文献[10]基于差分隐私和地理广播机制,通过动态和静态工人数据集提出一种保障隐私的有效众包服务,并且不会产生明显的性能开销.文献[11]提出一种差分k匿名位置隐私保护方法实现移动众包中用户的位置隐私保护.然而这两种机制着重保护用户隐私,而忽略了任务分配中工人选择的过程.

在预算约束下,有学者研究多技能空间众包,寻找最佳工作人员和最优匹配策略并且收益最大化[12].文献[13]解决了除特定空间约束外,每个任务操作复杂行、预算限制和所需工人数量等多约束条件下异构空间任务分配任务问题.而考虑位置隐私保护问题,在维护空间众包系统功能等同时保护工作人员和任务请求者隐私,有效实现加密数据任务分配所需的复杂操作[14].

区块链环境下实现隐私保护的任务分配模型[5],采用可搜索加密保护任务隐私,采取匿名方式保护用户身份信息,并根据工人的兴趣集进行任务分配,该模型在保护用户和任务隐私的基础上根据用户兴趣集的相关度实现了任务的可靠分配.然而可搜索加密有在多用户环境下秘钥管理难度大、难以实现细粒度授权等缺点.

文献[15]使用区块链环境保证众包服务的完整性和参与者的身份隐私,在该模型中,利用区块链的哈希算法验证信息的可靠性,然而当系统超过51%的用户被攻击后,便无法保证信息的可靠性.

2.3 众包的任务分配策略

目前基于区块链的众包模型在任务分配策略的选择上大多数仅仅根据工人兴趣集分配任务,在无法保证工人信息可靠性即系统中存在大量恶意工人的前提下,并不是一种可靠的任务分配方式.具有任务分配方案的模型[15]是根据工人请求的时间的先后顺序进行任务分配,没有保证工人的任务分配合理性的最大化.

一些区块链环境下的众包模型结合拍卖模式进行任务分配[6],使用重复投标人竞标机制,在区块链环境下部署拍卖算法,优化任务分配策略,但是没有保护用户隐私并且投标的选择工人标准中仅仅考虑位置因素,而忽略了其他的重要属性工人声誉、赔偿等.

综合分析,目前没有任何一个框架能够在区块链的环境下实现隐私保护中任务控制的细粒度授权的同时,保证任务分配方案的合理性.我们从是否保证中心化、隐私性和优化任务分配方案3个维度来将我们提出的BFP-Crowd与一些众包模型进行对比,并把结果展示在表1中.

表1 众包系统对比表Table 1 Comparison of crowdsourcing platforms

3 BFP-Crowd系统模型和框架

在本节中,我们提出了BFP-Crowd系统模型,并基于此模型构建了BFP-Crowd框架.接下来详细的介绍BFP-Crowd的执行过程.最后提出系统安全威胁模型,并给出系统安全假设.在模型中使用的符号列出如表2所示.

表2 变量名称含义说明表Table 2 Description of Variable

3.1 BFP-Crowd系统模型

BFP-Crowd的系统模型如图2所示,在这个系统中有4个主要实体:任务请求者,工人,BFP-Crowd客户端,区块链服务器和云存储服务器.与传统的众包模型(图1)相比,使用区块链服务器替换传统中心化平台,并将任务密文上传到可靠的第三方云存储服务器.

图2 BFP-Crowd系统模型Fig.2 BFP-Crowd system model

3.1.1 任务请求者

3.1.2 工人

3.1.3 BFP-Crowd客户端

作为BFP-Crowd的中间媒介,客户端是可视化操作软件,由用户(任务请求者和工人)在本地下载.任务请求者注册成功后可以使用BFP-Crowd客户端发布任务、工人使用BFP-Crowd客户端选择任务、投标、执行任务、返回结果.

3.1.4 区块链服务器

由于智能合约在以太坊上是自动执行的,因此保证了众包平台的公平性.区块链服务器是BFP-Crowd的主要服务提供商.BFP-Crowd系统中的智能合约依赖以太坊区块链执行.由于区块链自身去中心化、记录不可篡改的特点,BFP-Crowd系统中的交易记录同样不可篡改,有效的加强了系统的鲁棒性.

3.1.5 云存储服务器

云存储服务器为请求者提供存储服务,请求者上传加密后的任务并记录存储地址当申请任务的工人属性满足任务的访问策略时,工人根据地址下载任务密文并利用请求者提供的属性密钥解密获得任务的描述.

3.2 BFP-Crowd的隐私保护机制

假设请求者在BFP-Crowd中的密钥管理系统选定的安全参数是λ,,T是两个素数p阶乘法循环群,并且有映射关系:e:×→T,g∈,有两个哈希函数:H:{0,1}*→,G:{0,1}*→{0,1}λ.

(1)

(2)

工人收到属性秘钥密文后,利用自己的私钥解密属性秘钥密文获得属性私钥.

(3)

(4)

根据对称加密的对称性,工人获得的任务内容与请求者发布的内容一致,并且由于属性秘钥的生成是根据任务访问策略并基于密文策略的属性加密,因此在数据层级上实现了细粒度授权,从而加强了任务内容的隐私保护.

3.3 BFP-Crowd的工作流程

在本节中,我们设计了一个区块链环境下基于细粒度授权的众包任务分配模型,具体流程如下:

步骤1.请求者和工人在使用BFP-Crowd系统前,首先需要进行身份注册.用户(请求者和工人)通过BFP-Crowd客户端(如图2所示)调用用户注册合约(URC),第三方认证机构验证用户的身份信息并将注册结果记录在区块链中.

(5)

(6)

(7)

(8)

(9)

(10)

3.4 安全假设

在BFP-Crowd模型中,不同的区块链特性会影响众包交易中的交互,安全威胁的级别也不同.我们的模型主要包括3类实体:工人、任务请求者和众包平台.它们可能给系统带来不同程度的风险.因此我们假设以下几个条件:

假设1.区块链是完全分布式和不可篡改的,假设不存在51%攻击.

假设2.在众包过程中,系统中有足够的工人供请求者选择来执行任务.

假设3.任务请求者和工人有足够安全的措施保存密码和私钥.

假设4.假设评估工人结果质量的第三方平台完全公平可信.

4 基于区块链环境下的实现细粒度授权加强隐私保护的众包平台

4.1 BFP-Crowd概述

通过结合区块链和基于密文策略的属性加密,我们设计了一个去中心化的众包框架实现细粒度授权的众包平台BFP-Crowd.在BFP-Crowd中,我们设计了4种智能合约:用户注册合约(URC)、交易合约(RWTC)、工人评估合约(WEC)、薪酬分配合约(PDC).

在智能合约中我们主要定义4种重要的算法:用户注册算法addUser(·),任务发布算法publishTask(·),工人评估算法evaluateWorker(·),薪酬分配算法allocatePayment(·).

4.2 智能合约

4.2.1 用户注册合约(URC)

工人或请求者在平台上提交注册申请后,BFP-Crowd系统分配给用户一对密钥(公钥和私钥).注册成功后,用户的身份信息、属性和密钥对与用户的唯一标识信息绑定.

4.2.2 交易合约(RWTC)

4.2.3 工人评估合约(WEC)

工人评估合约(WEC)包含算法evaluateWorker(.).系统通过工人的属性集判断是否满足执行任务条件然后根据工人的投标信息选择执行任务的工人集合.

4.2.4 薪酬分配合约(PDC)

4.3 具体BFP-Crowd方案

在本节中,我们描述了提出的方案具体执行过程过程.在方案中涉及到的符合及含义的具体解释见表3.符号含义说明.

表3 符号含义说明表Table 3 Description of symbol

4.3.1 用户注册

通过用户注册合约(URC),请求者和工人可以在系统中进行注册.工人和请求者注册的过程相似,都是将用户身份信息、属性和密钥对与用户绑定.用户注册的具体的算法见算法1.

算法1.addUser(·)

输入:用户信息

输出:bool,密钥对(bool值为true的情况下)

ifmsg.senderis notcontractOwnerthen

throw;

endif

ifaWihas existthen

returnfalse;

else

userList[newUserAddress] =δi;

generate(pki,ski)

returnpki,ski;

returntrue;

4.3.2 加密任务

假设请求者在发布任务前,将任务内容加密(具体加密过程见3.2),并上传密文至云存储服务器,记录存储位置.

4.3.3 任务发布

请求者将任务描述密文上传后,在系统中发布一条任务的工人招募信息.其中只有工人的属性符合任务访问策略时,才可以执行任务.算法2详细描述了任务发布过程.

算法2.publishTask(·)

输出:bool

ifmsg.senderis not registeredthen

returnfalse;

break;

endif

returnfalse;

break;

endif

settaskList;

taskList.requesterAddr=msg.sender;

returntrue

4.3.4 工人投标

4.3.5 工人评估

在任务的投标阶段结束以后,系统将自动根据工人评估合约(WEC)中的工人评估算法筛选出最终执行任务的工人集合.

工人投标以后,系统会根据工人的投标信息给他们的投标打分,具体的评分见公式(11).

(11)

(12)

有了工人的竞标分数后,我们可以结合算法3将执行任务的工人集合挑选出来.

算法3.evaluateWorker(·)

%工人初筛机制

fori=1,2,…,ndo

endif

endif

endfor

%任务分配机制

endfor

算法3保证了挑选出的众包工人的属性集符合任务的访问策略并且是综合评分最高的工人集合.

4.3.6 提交任务结果

系统确定执行任务的工人集合后,系统根据工人的属性,分配给工人基于属性的密文CTdk,工人用自己的私钥获得属性密钥dk,详见3.2.然后再利用属性密钥解密任务描述密文,获得任务描述后开始执行任务.

4.3.7 薪酬分配

算法4.allocatePayment(·)

endif

endfor

endif

endfor

else

endif

endfor

release locked deposit

5 实验分析

5.1 实验设置

我们应用了一个真实的数据集(2)https://eprints.soton.ac.uk/354861/.任务集的相关参数如表4所示.我们将智能合约部署在本地的私有链上.利用solidity语言进行编程,使用truffle框架和ganache客户端部署智能合约.

表4 实验参数表Table 4 Experiment parameters

5.2 实验结果及分析

5.2.1 任务完成率

在实际的众包过程中,我们认为任务的招标工人数与任务的完成率相关,任务的招标工人数越多,证明完成任务的工人质量越高,相反的,若没有足够的完去符合条件的工人,则任务的完成质量将会大打折扣.随机生成[1,10]的整数作为任务的需求工人数目.工人的位置在表4的范围内随机产生.经过多次实验,我们得到结果如图3所示.

图3 任务完成率随招标工人数变化曲线Fig.3 Curve of task completion rate with the number of bidding workers

根据实验结果我们可以分析得出,任务完成情况与工人的招标数量成正比,随着招标工人数量的增加,任务完成的质量提高.原因是招标工人数量越多,选出来执行任务的工人与任务需求的匹配度越高.

5.2.2 行驶路径长度

工人的平均行驶路径是工人的重要成本之一,在本节中将我们的模型BFP-Crowd与基于区块链的任务分配机制BPTM和基于区块链的空间众包拍卖机制ABCrowd对比.分别在任务数量为100、500、1000、1500、2000时,不同招标工人数量的总行驶路径.其中,工人的赔偿金额为(0,2)之间随机生成的浮点数.当招标工人数量为需求工人数量2倍时,实验结果如图4(a)所示;当招标工人数量为需求工人数量3倍时,实验结果如图4(b)所示;

根据实验结果图4(a),图4(b)我们可以得出,工人的总行驶路径随着任务总数的增加而增加,在与ABCrowd和BPTM对比以后,我们设计的BFP-Crowd模型总行驶路径更短.并且当任务总数增加时,BFP-Crowd模型节省的路径长度增加.

图4 不同机制下工人行驶总路径对比Fig.4 Comparison of total distance

5.2.3 请求者成本损失

我们设计了工人锁定赔偿金的机制,若工人在任务时间截止前没有完成,则会支付请求者赔偿金作为补偿.在这组实验中,假定系统中每个任务的招标人数为需求工人数的2倍.

分别采用100个任务集,结果见图5(a);分别采用500个任务集,结果见图5(b);分别采用1000个任务集,结果见图5(c).

图5 请求者损失与恶意工人比例关系Fig.5 Relationship between loss and malicious workers

由实验结果可知,请求者的成本损失与系统中恶意用户的比例关系成正比(图5).恶意用户比例越高,请求者损失增加,而随着任务数量的增多,请求者损失也相应增加.当系统中存在大量恶意工人时,BPTM将浪费请求者极大的成本,因此BFP-Crowd可以有效的规避系统中存在大量的恶意工人带来的风险.

5.2.4 智能合约成本

我们通过在以太坊上部署BFP-Crowd智能合约来论证了可行性和成本的可接受性.本次投入100个任务,为每个任务随机生成了3倍的需求工人数的投标工人,并根据拍卖算法选择执行任务的工人.操作的执行成本由交易中的gas消耗计算,将1gas设定为5×10-9Ether,1Ether=$371.06(2020年10月21日)(3)https://ethereumprice.org/.表5展示了实验中的几个关键函数在部署时的gas、Ether以及美元消耗.

表5 智能合约消耗表Table 5 Smart contracts consumption

与ABCrowd相比,BFP-Crowd的成本消耗稍微高,这主要由于以太币的价格增长.其中部署合约时只需一次的操作,并不需要其他的花销来维护.addUser(·)是用户在在注册的时候创建的智能合约,只需要支付一次.在系统中有100个任务时,发布、评估和分配薪酬总共消耗的金额是$4.8192,平均每个任务消耗$0.048192.与中心化平台Mechanical Turk(MTurk)来管理任务时需要向平台输入至少20%的成本费相比,BFP-Crowd发布任务所需要花费的成本还是大大降低.

总而言之,将BFP-Crowd部署在智能合约上,所花费的部署和服务成本与传统的中心化众包平台相比大幅度减小.

6 总结与展望

本文将众包和区块链相结合,并利用基于密文策略的属性加密实现细粒度授权,提出了一个区块链环境下的分布式空间众包任务分配框架——BFP-Crowd.与传统的中心化众包平台相比,BFP-Crowd主要解决了3个问题,对众包任务的内容加密实现隐私保护、优化拍卖算法的工人选择策略实现优化任务分配方案和利用去区块链实现去中心化.特别的,BFP-Crowd要求请求者和工人锁定存款,保证提交答案的工人可以分配到以质量为评估标准的酬劳,提高工人参与系统的积极性和公平性,若工人不能及时提交任务,则扣除工人锁定的赔偿金,以保证任务请求者的权益.与针对工人的报价选择执行工人集合的ABCrowd和着重关心隐私保护的BPTM相比,BFP-Crowd系统的工人总行驶路径大大缩短,证明分配的方案更合理.同时与BPTM模式相比,在相同的恶意工人比例下,BFP-Crowd的请求者成本损失更低,证明BFP-Crowd在保证请求者的利益这一点上考虑更为周到.

在未来的优化工作中,我们会将重点放在任务加密以及工人的可搜索加密部分.利用一个新的密钥管理系统,将任务已加密的任务关键字和工人属性集相匹配,这样可搜索加密的处理能够更进一步的保护工人的隐私,将众包结合区块链模式的实用性进一步提高.

猜你喜欢
加密合约区块
保护数据按需创建多种加密磁盘
《红楼梦》的数字化述评——兼及区块链的启示
谷歌禁止加密货币应用程序
一场区块链引发的全民狂欢
区块链助力企业创新
区块链投机者
加密与解密