一种基于区块链的去中心化众包系统及其任务分派方法

文档序号:36126568发布日期:2023-11-22 18:49阅读:195来源:国知局
一种基于区块链的去中心化众包系统及其任务分派方法

本发明涉及区块链技术、众包模式以及众包任务的分派方法,具体是一种基于区块链的去中心化众包系统及其任务分派方法。


背景技术:

1、众包是一种高效地组织劳动力的服务模式,通过互联网把任务分派给闲散的工人们来执行。一些公司用众包的方式重构了传统的商业模式,如数据标注、拼车打车、物流配送等,并取得了巨大的商业成功。但是众包作为一种集成群体劳动力来完成任务的方式,依赖于一个中心化的服务平台,这引发了如下亟待被解决的严峻问题。1)运营不透明:任务分派、信誉更新、支付计算不透明,导致众包服务平台运营不可信;2)高昂的手续费:参与众包的主体,如请求者、工人等,需要向众包服务平台支付高昂的手续费;3)单点故障:众包服务平台的故障导致整个众包业务的故障。

2、区块链的出现使构建安全可信的众包系统成为可能。区块链是一个分布式账本,任何人都可以在其中记录交易,没有人可以篡改历史记录。更重要的是,被称为智能合约的可执行程序可以在区块链上部署运行。一旦智能合约被部署到区块链上,它的执行就会受到所有节点的监管。区块链即服务的解决方案可以帮助开发人员敏捷地构建基于区块链的应用程序。众包服务平台的所有业务都可以用智能合约的形式来实现。分散在各地的众包业务参与实体们为了共同的利益而遵守智能合约,自愿遵守智能合约的实体组合成一个去中心化的自治组织。

3、基于区块链技术来开发众包系统已经成为行业的热点。在基于区块链的众包系统中,任务发布和解决方案提交都由智能合约来负责完成。基于区块链的众包系统采用两种方式来分派任务。其一,由一个链下的中心实体负责任务分派。在分派任务时,中心化的任务分派者倾向于优先指派与其存在利益关联的工人来执行任务并赚取利润,即使该工人的信誉并不高;其二,分派任务的操作交由部署在区块链上的智能合约来执行,从而提高了系统的透明度。但是通常需要复杂的算法才能准确地将任务分派给适当的工人。复杂的算法,如具有大参数的机器学习模型,单次运行就消耗大量的算力,而以智能合约的方式部署的任务分派算法要在区块链的每个节点上都运行一次,这导致以智能合约实现任务分派算法的成本不可接受。当前基于区块链的众包系统无法在保证任务分派不被操控的前提下,采用复杂的算法以低算力消耗精准地分派任务。

4、在此背景下,本发明公开了一种基于区块链的去中心化众包系统及其任务分派方法。所有的众包业务,包括用户管理、发布任务、提交解决方案等都通过部署在区块链上的智能合约来实现。请求者调用这些合约来发布任务,工人调用智能合约来提交解决方案。另外,本专利在众包系统中引入了名为任务分派者的新角色。任务分派者是分散在各地的负责分派任务的实体。任务分派被视为一项众包任务,由任务分派者们来完成。多个任务分派者以离链的方式在本地计算各自的任务分派方案,然后将方案提交到区块链进行竞争。区块链上的智能合约根据任务分派者的过往表现选定最终的方案来指派工人。该方法在支持采用复杂的算法以低算力消耗精准地分派任务的同时,避免了系统被中心化实体恶意操纵的不良后果。另外多个任务分派者相竞争,从而提高了众包系统的运转性能。


技术实现思路

1、传统的众包系统运营不透明、手续费高昂,并面临单点故障的危险。众包系统中的平台所有者拥有过度的权力来操纵众包系统的运营,从而攫取不道德的利润。对此,本发明公开了一种基于区块链的去中心化众包系统及其任务分派方法,把任务分派本身视为一项众包任务,不仅提高了众包系统的运行效率和稳定性,而且避免了系统被中心化实体恶意操纵的不良后果。

2、为实现上述目的,本发明的技术方案是:

3、第一方面,本发明提供一种基于区块链的去中心化众包系统,包括三个实体和三个智能合约,所述三个实体包括请求者、工人、任务分派者,所述三个智能合约包括用户管理合约、任务管理合约、任务分派合约,用户管理、发布任务、分派任务、提交解决方案的操作都通过部署在区块链上的智能合约来实现;

4、具有多个任务分派者,所述任务分派合约用于管理任务分派者提交的任务分派方案,并从多个候选方案中选择最终方案;

5、多个任务分派者以离链的方式在本地计算各自的任务分派方案,然后将任务分派方案提交到区块链进行竞争。

6、所述任务分派合约(tac):任务分派合约中名为scheme的数据结构包括assigner、worker、state属性,用来描述任务分派方案的详情,其中assigner表示提交任务分派方案的任务分派者的标识符,worker表示被选择来执行任务的工人的标识符,state表示任务分派方案是否被选作为最终方案;任务分派合约包括uploadscheme()函数、selectassigner()函数、selectscheme()、updateassignerrep()函数,

7、任务分派者的信誉存储在变量assignerrep中,对于一个任务,任务分派者们提交的任务分派方案中的一个方案被作为最终方案;提交最终方案的任务分派者和该方案被执行的结果存储在变量assignmentlog中;如果最终方案选择的工人完成了任务,则结果记录为true,如果工人取消被分派的任务,则结果为false;变量assignmentlog用于计算任务分派者的信誉assignerrep;任务分派者提交的任务分配方案存储在变量schemes中;

8、任务分派者通过调用函数uploadscheme()向区块链提交各自的任务分派方案进行竞争,函数selectscheme()调用函数selectassigner()来选择一个任务分派者并返回由该任务分派者提交的任务分配方案;任务分派者的信誉越高,其提交的任务分派方案被选中的概率就越高,任务分派者ak被选中的概率prk为:

9、

10、其中,k表示任务分派者的数量,r表示在计算信誉时只考虑任务分派者最近r次作业的结果,这使得信誉能够反映任务分派者的近期表现;任务分派者ak提交的任务分派方案被选作为最终方案,则执行该方案的结果记为如果方案选择的工人成功完成任务,则结果记为true;i(·)是一个指标函数,当·为true时值为1,否则为0;每当一项任务被完成或取消时updateassignerrep()函数就被调用来更新负责分派该任务的任务分派者的信誉。

11、所述基于区块链的去中心化众包系统应用于打车场景、众包数据标注、众包配送等众包场景中。

12、所述基于区块链的去中心化众包系统应用于打车场景,请求者和工人分别代表乘客和司机,

13、所述请求者调用智能合约在区块链上发布叫车任务,然后,智能合约选择一个合格的工人来执行任务,被选中的工人向区块链提交解决方案,对于叫车任务来说,这相当于司机向乘客提供乘车服务并将结果提交给区块链。接受乘车服务后,请求者评估服务质量,并将乘车服务的评估结果提交给区块链;

14、所述工人:智能合约选择工人来执行打车任务,然后工人为请求者提供乘车服务,在请求者确认接受了乘车服务并将质量评估提交给区块链后,工人会因完成任务而获得收入;

15、任务分派者:任务分派者负责将任务分配给适当的工人来执行,众包系统中的任务分派者的数量远少于区块链网络中的节点数量,包含k个任务分派者a={a1,a2,…,ak}。任务分派者ak表示为(idk,rolek,reputationk),其中idk是任务分派者实体的唯一标识符,rolek表明实体的角色是任务分派者,reputationk表示任务分派者的信誉值;任务分派者的信誉值表明其过去在分派任务方面的表现;在请求者发布任务后的一个时间窗内,任务分派者们将各自本地计算出的任务分派方案提交给区块链,任务分派者ak为任务提交的方案表示为在该方案中,工人wn被分派来执行任务;负责分派任务的智能合约,根据任务分派者们过往分派任务时的表现,从任务分派者们提交的任务分派方案中选择最终方案,然后指定相应的工人执行任务,所提交的任务分派方案被选中的任务分配者获得奖励。

16、所述系统具有三个独立的任务分派者,每个任务分派者分别使用以下算法计算任务分配方案;基于距离的任务分配算法(d-taa)、基于神经网络的任务分配算法(nn-taa)和基于随机森林的任务分配算法(rf-taa);基于神经网络的任务分配算法(nn-taa)和基于随机森林的任务分配算法(rf-taa)专门考虑能见度、湿度、风速和降水等天气数据进行设计,用于在恶劣天气状况下预测司机行为,进而再考虑司机与乘客间的距离来分派任务。

17、所述基于神经网络的任务分配算法(nn-taa):nn-taa考虑的天气因素包括能见度、湿度、风速和降水,任务分派者调用任务管理合约(tmc)的gettasks()函数获取过去被分派过的任务的详情来训练nn-taa,任务状态为“取消”和“已完成”的任务被保留;天气信息作为特征与每个司机的身份相结合,输入到nn-taa中,任务的执行结果被用作特征的标签,如果分派的任务被司机取消,则标签为0,否则为1;

18、nn-taa采用多层感知器结构,每层分别包含5、256、512、256和2个神经元,神经网络的每一层使用relu(x)=max(0,x)作为激活函数;softmax函数将神经网络的输出值转换成[0,1]范围内的概率分布,采用交叉熵来计算预测值与标签值之间的损失,优化器adamoptimizer被用来对模型进行训练;

19、任务分派者调用函数getunassignedtasks()来获取待分派的任务,并调用用户管理合约(umc)的getidleworkers()函数来检索待接单的空闲的工人widle,对于一项打车任务,使用nn-taa预测空闲工人的行为,过滤掉被预测为可能取消任务的工人,最后的等待分派任务的工人的集合w'idle为

20、w′idle=widle-wpredict

21、其中,wpredict是被预测为可能取消任务的工人的集合;然后,任务分派者计算w'idle中每个工人与请求者之间的距离,得到距离集合d;选择信誉与距离的比值最大的工人来执行任务;

22、所述基于随机森林的任务分配算法(rf-taa):rf-taa被用来预测司机行为,其包含50个决策树作为基础学习器,采用自举抽样法提取50个数据集,分别送入50棵决策树进行训练,每个决策树都对司机的行为有一个独立的预测,rf-taa利用投票的方式来整合所有决策树的结果;

23、

24、其中x表示输入特征,h(x)为rf-taa的预测结果,y是输入特征的标签集,每个标签包含两个可能的值0和1,分别表示任务被取消或完成;t是决策树的个数;ht表示第t棵决策树;i(·)是一个指标函数,当·为true时为1,否则为0;rf-taa将得票最多的预测作为最终结果;

25、对于一项任务,分派者预测所有待分派任务的工人的行为,并得到最终的空闲工人w'idle;然后,任务分派者计算w'idle中每个工人与请求者之间的距离,把任务分派给距离请求者最近的工人来执行任务。

26、第二方面,本发明提供一种基于区块链的去中心化众包系统的任务分派方法,在基于区块链的众包系统中引入任务分派者这一新角色,把任务分派本身视为一项由任务分派者来执行的众包任务;在分派任务时,多个任务分派者以离链的方式在本地计算一次各自的任务分派方案,然后将任务分派方案提交到区块链进行竞争;区块链上的智能合约根据任务分派者的过往表现选定最终的方案来指派工人,能够在保证任务分派不被单一主体操控的前提下,以低算力消耗精准地分派任务。

27、第三方面,本发明提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述的任务分派方法。

28、与现有技术相比,本发明的有益效果是:

29、本发明基于区块链的去中心化众包系统及其任务分派方法,所有的众包操作,如任务发布、解决方案提交和任务分派,都通过调用部署在区块链上的智能合约来实现。任务分派本身被当做一项众包任务,多个任务分派者以离链方式计算各自的任务分派方案,从而避免在智能合约上部署复杂的算法计算任务分派方案的算力消耗。这些方案随后提交给智能合约进行竞争,以防止中心任务分派者的不端行为。本发明不仅提高了众包效率和系统稳定性,而且避免了系统被恶意操纵的不良后果。

30、本发明任务分派方法摒弃了现有技术中由部署在区块链上的“工作者合约”来分派任务,使得该合约内的任务分派算法在所有节点都要执行一次,当任务分派算法比较复杂时,将消耗大量算力的不足。本发明首次在基于区块链的众包系统中引入了任务分派者这一实体角色,把众包中分派任务这一关键环节给去中心化,在分派任务时,多个任务分派者以离链的方式在本地计算一次各自的任务分派方案,然后将方案提交到区块链根据历史表进行竞争,能够在保证任务分派不被单一主体操控的前提下,采用复杂的算法在本地计算再以低算力消耗精准地分派任务,满足实际复杂的应用场景需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1