• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 事迹材料
  • 申请书
  • 作文大全
  • 读后感
  • 调查报告
  • 励志歌曲
  • 请假条
  • 创先争优
  • 毕业实习
  • 财神节
  • 高中主题
  • 小学一年
  • 名人名言
  • 财务工作
  • 小说/有
  • 承揽合同
  • 寒假计划
  • 外贸信函
  • 励志电影
  • 个人写作
  • 其它相关
  • 生活常识
  • 安全稳定
  • 心情短语
  • 爱情短信
  • 工会工作
  • 小学五年
  • 金融类工
  • 搞笑短信
  • 医务工作
  • 党团工作
  • 党校学习
  • 学习体会
  • 下半年工
  • 买卖合同
  • qq空间
  • 食品广告
  • 办公室工
  • 保险合同
  • 儿童英语
  • 软件下载
  • 广告合同
  • 服装广告
  • 学生会工
  • 文明礼仪
  • 农村工作
  • 人大政协
  • 创意广告
  • 您现在的位置:六七范文网 > 其它相关 > 正文

    基于承诺方案的去中心化可信众包平台设计与实现

    来源:六七范文网 时间:2023-06-03 21:30:10 点击:

    王华建,黎人玮,周 寰,阳国贵

    国防科技大学计算机学院,湖南 长沙 410073

    随着互联网技术的发展,外包行为逐渐进化为任务发起方(发包者)将其自身不能解决的问题以自由自愿的形式公布到互联网平台(中介机构),进而传递到非特定大众的新形式。该形式下的任务通常由个人承担,且涉及到多个承担人个体(接包者)。这种一对多的外包形式可定义为众包[1]。

    众包是一种分布式解决问题的机制,也是一种新兴的商业模式。目前,已涌现出UPWork、Freelancer、Amazon Mechanical Turk 等一批规模较大且高度标准化的众包平台。这些平台各有特点,但都遵循相同的交付流程,由于涉及到报酬的交付,在实际操作中面临许多信誉问题,主要集中在以下三方面:1)缺乏有效的接包者筛选和结果提交机制;
    2)缺乏有效的合约执行状况监管机制;
    3)缺乏全过程自动化支持。

    总的来说,众包活动中多方利益保护的核心矛盾在于:如何在开放的互联网环境下建立接包者和发包者对于平台的多方信任,以提高众包任务的完成质量。对于发包者,需要保证其任务得到有效完成而不被特定接包者群体串谋骗取薪酬;
    对于接包者,需要保证其结果数据不被其他接包者轻易窃取,并能获得相应薪酬。

    区块链技术[2]和智能合约[3]技术为众包活动的权益保护提供了新的解决思路。本文旨在利用区块链技术和共识算法[4]在确认权利、保存证据和可追溯性方面的优势,设计一种安全、公平、可靠的基于智能合约的众包活动全过程监控方法和系统。具体而言,首先结合智能合约和承诺机制[5]为众包系统设计一种两阶段提交机制,保障了数据隐私,提高了结果数据的质量,消除了随机欺诈和抄袭现象;
    然后基于承诺方案进一步设计了一种无偏随机选择算法,以保证任务分配的公平、公开、透明和可信度;
    最后,实现了基于以太坊公共测试网络Ropsten 的系统,以验证整体方案的可行性。

    本方案中涉及4 种实体角色:普通用户、发包者R、接包者W和接包者委员会C。本节将介绍本方案的整体系统架构和众包任务周期。

    本方案由4 个基于区块链的智能合约实现:用户管理(user management,UM)合约、众包(crowd-sourcing,CS)合约、众包管理(crowd-sourcing management,CSM)合约、两阶段提交(two-phase submission,TPS)合约。其中:用户只要在UM 和CS 中操作即可,而TPS和CSM 能为众包参与者提供相关接口。参与系统的接包者越多,系统就越可靠,越可信。图1给出了本方案的总体设计架构和整体流程。

    为了便于理解本方案,可将整个众包活动分为两部分:任务创建和任务执行。前者包括任务设置、接包者登记、无偏随机选择、接包者反馈、任务分配等,如图1中的步骤①~③所示。

    在任务创建阶段,R首先使用UM 生成CS。发布任务之前,发包者R应该仔细考虑众包任务的详细条款,尤其是委员会成员数量N。接包者越多,众包结果越可信,但需要支付更多的报酬。发布任务之后,在线的W可以阅读合约中的任务介绍,然后根据自己的情况决定是否报名参加众包任务。当报名时间结束或报名人数达到一定数量时,可使用无偏随机选择算法选择N个独立的接包者组成C。挑选过程由UM 和TPS 共同实施,一旦被选择,W就可以在一个时间窗口内选择接受或拒绝。W在接受任务时需要支付一笔承诺费用,拒绝接受任务或没有反馈都会受到惩罚。

    若成功接受任务的接包者数量达到预定要求,则C组建成功,系统进入任务执行阶段,包括结果提交、质量评价、质量奖励等,如图1中的步骤④~⑥所示。R启动任务时需要发布任务的细节,并支付可能的最大奖励。任务开始后,接包者W独立在链下完成任务并生成结果,然后将结果不加篡改地提交给TPS。任务提交时间结束后,由R检测W提交状态。在这一环节中,未能按时提交承诺和结果的接包者将受到惩罚。若没有接包者成功提交结果,则表明任务失败,C将被解散。完成任务的R和W可以收回奖励和承诺费。注意,R只能在所有W都取款后才能取出剩余的押金。

    图1 去中心化的众包平台设计架构和整体流程Figure 1 Decentralized crowdsourcing platform design architecture and overall flow

    本方案主要基于区块链智能合约来实现,虽然没有中心化的第三方平台运行整个框架,但同样可以分为前端和后端来实现。其中,后端依托于运行在区块链网络中的智能合约,前端则通过浏览器访问可视化界面,简化用户调用智能合约接口的难度。

    2.1 后端关键技术

    在本方案的设计中,后端主要是基于区块链智能合约实现的,采用了一些关键技术来保证发包者的数据隐私和接包者之间的信息独立性,并且可以自动检查众包任务的质量。首先,本文提出了一种两阶段提交机制,以保证用户信息和提交结果的隐私;
    然后提出了一种无偏随机选择算法,以保证接包者委员会的选择具有随机性和独立性。

    2.1.1 两阶段提交机制

    在本方案中,基于承诺的两阶段提交方案是确保接包者相互独立、互不串谋的关键技术,也是提交任务结果数据时避免接包者互相抄袭的重要手段。两阶段提交机制在第1 阶段通过加密信息确保任何W并不知晓其他接包者的真实信息,在第2 阶段使信息公开,确保每个接包者提交的信息是诚实且不能篡改的。图2显示了基于承诺方案的两阶段提交机制。

    图2 基于承诺方案的两阶段提交机制Figure 2 Two-phase commit mechanism based on commitment scheme

    第1 个阶段是存证提交阶段,属于预提交。每个接包者提交自己的结果Pk,其内容是结果数据加随机数据的哈希值,即Pk=Hash(sk,mk)。秘密随机值sk是由wk自己生成的。在此期间,sk的值是保密的,以防止其他接包者根据sk推断出任务结果。此外,如果两个不同的接包者提交了相同的结果,TPS 就会将这种情况归类为剽窃。后提交的承诺将被拒绝,该接包者必须重新选择sk生成新的承诺。由于sk的随机性和隐私性,在接包者Wk提交承诺Pk后,其他接包者Wo即使得到Pk也不能获取相应的mk,从而保证了结果数据的安全性。在这个阶段,接包者仅凭承诺内容无法知晓除了自己结果外的其他详细结果,却可以确保其他人都不可篡改地完成他们各自的工作。

    第2 阶段是验证提交阶段,属于正式提交。接包者可以将原始结果和随机数值上传到TPS。在这个阶段,TPS 将判断mk、sk、Pk的值是否满足Hash(sk,mk)=Pk。只有满足这个公式的结果数据才会被合约接受,这样就保证了接包者在承诺阶段无法修改提交的结果数据,否则验证将失败,从而消除了作弊的可能性。

    2.1.2 无偏随机选取

    无偏随机地为委员会挑选接包者是至关重要的。无偏性强调的是任何人在选择委员会时都不会有优势,而随机性则是指被选择的接包者不能串通一气。如果要求接包者在报名时提交一定的注册费,就可以在一定程度上避免女巫攻击的可能性。基于2.1.1 中描述的两阶段提交方案,本文在文献[6]中选择算法的基础上提出了新的无偏随机选人算法。在该算法中,各方先通过两阶段报名机制提交私密的随机数,再由智能合约进行无偏随机选人。算法细节如算法1 所示。

    在两阶段提交机制的支持下,接包者提交Hash(Rk)。该数为预报名阶段的一个随机数哈希,可以与其他接包者提交的数据相同,即每个人只需提交自己的数据,而不必关心是否与他人提交的数据相同。原始随机数将在正式报名阶段公布。在确定Rk满足承诺后,TPS 将在选择算法中保存Rk,并将其作为随机种子的一个组成部分。接包者只有在成功注册后才能进入Wselected。此外,还要注意以下几点:

    1)R也要参与报名,因为他也需要提供一定的随机性。

    2)每个报名者只能提供一个随机数,若在第1 阶段多次提交,则TPS 只保留最新的一个随机数。

    3)接包者正式报名时需要支付报名费,以防止恶意R或机构发起女巫攻击。

    4)以非对称加密的方式来分配任务。考虑到每个接包者的子任务各不相同,发包者会以对应的公钥加密他们的子任务。接包者收到子任务后用私钥解密,以获得子任务的内容,从而避免接包者互相知晓对方的工作内容,确保每个接包者工作的独立性。这样设计既可以有效防止接包者之间的抄袭,又能保护发包者的数据隐私。

    算法1无偏随机选人算法

    2.2 前端设计

    为了便于使用,本文设计更人性化的前端界面,如各种角色的注册、登录及使用,并能在后端与智能合约更好地配合,实现与区块链的数据交互。

    2.2.1 登录和注册

    去中心化服务没有服务器和数据库,故难以使用传统的账号密码登录。平台以区块链钱包登录的方式进行用户的注册和登录,如浏览器插件Metamask 等。用户在访问界面时读取浏览器上区块链钱包的信息以确定身份,如图3所示。

    图3 用户操作示意图Figure 3 User operation schematic diagram

    用户在本地运行代码后加入区块链网络,再通过浏览器访问页面。在页面中用户可以选择自己的区块链钱包进行登录,系统会识别该用户是否已经注册;
    未注册的用户可以选择在智能合约UM 中进行注册,获得初始信用值后加入系统。

    2.2.2 前后端功能配合

    平台的后端主要由各种智能合约组成。用户在前端页面的各种操作会调用智能合约的各个接口,实现各种不同的功能。智能合约的使用能保证数据的可靠性和安全性,同时也能提升效率,降低成本。

    数据存储在区块链上,用户可以使用前端界面读取区块链上的数据,同时也可以向区块链上传数据。同样地,智能合约也从区块链上读取数据进行后端计算,再将计算结果上传到区块链。使用区块链存储数据能够保证所有用户数据的一致性,避免恶意篡改的现象发生。

    在区块链和智能合约主导的系统中,所有的数据和服务都由全部用户共同提供。每个人既是客户端又是服务端,只要有了平台的代码,就可以在任何一台电脑上操作。

    如图4所示,整个平台可以分为4 个模块,自顶向下分别为前端、Web3.js、智能合约和以太坊,包含用户注册、众包报名、无偏选人、提交数据、质量检测等业务功能。图中列举了部分业务功能,其中“接受/拒绝”“提交数据”只允许发包者操作,“无偏选人”“质量检测”只允许接包者进行操作,而“用户注册”“众包报名”是接包者和发包者都需要进行的操作。Web3.js是一个JavaScript 的API 库,可以提供Web3 对象,其中Web3.eth 是专门与以太坊区块链交互的eth 对象,打通了前端操作和智能合约,能使去中心化应用在以太坊上运行。智能合约上每一笔成功的交易都会保存至底层的区块链平台,若用户操作不当造成交易失败也会返回提示信息。

    图4 平台交互示意图Figure 4 Platform interaction diagram

    2.2.3 任务流程

    以标注图像的工作为例,发包者发布任务并进行任务描述时需要提供含有所需标注图像的网址,其余用户选择参加并进行报名。发包者可以看到报名人数并选择提前结束报名。

    在正式报名阶段,发包者和接包者都输入并提交一个随机数进行选举,接包者需要使用区块链钱包支付保证金。平台根据算法1 选出接包者委员会,为每个接包者分配所需标注的图像。每个接包者需要标注不同的图像,且每幅图像可以被多个不同的接包者标注。

    接包者根据发包者发出的网站完成自身任务,到达提交时间后提交自己的结果。对于一幅图像,系统会以多数人提供的答案作为正确答案进行评判,然后根据每位接包者的结果进行报酬和信用的奖惩。

    2.3 威胁者模型

    本文分析了接包者和发包者在众包过程中可能存在的恶意行为,给出了几种典型的威胁者模型,并通过信誉和押金机制规范参与者的行为。

    2.3.1 发包者威胁模型

    2.3.1.1 女巫攻击

    发包者或者恶意机构可以利用多个地址在系统中报名的方式发动女巫攻击,以操控众包结果,获取奖励。因此,报名者正式报名时会支付一笔在众包流程结束后可以返还的报名费。这笔报名费对正常参与者来说代价很小,但是对恶意方来说,大量的恶意账户同时提交报名费将会是一笔较大的开支。

    2.3.1.2 慵懒发包者

    区块链上的智能合约无法自行运行,其状态转换必须由某些接口触发,并且接口执行会花费一些成本。如果不对发包者的行为进行检测,就可能出现行政不作为的发包者甚至出现恶意发包者骗取接包者信息的情况。因此,平台设计最大的受益角色来修改状态,因为他们有动力执行状态转换。发包者有推进众包活动顺利进行的义务,必须在规定时间内进行指定操作。这些时间信息在众包任务开始前就告知接包者。

    2.3.2 接包者威胁模型

    2.3.2.1 骗取信息

    发包者发布的任务很多时候涉及自己的知识产权,包含的数据通常较为敏感。这些敏感数据对发包者来说是有价值的,因此发包者并不希望自己的数据被竞争对手或者接包者窃取。为解决这个问题,主要采取了两点措施:1)在发放每个接包者的任务时采用非对称加密的方式,以确保每个接包者只拿到部分任务信息,避免发包者信息泄露。2)如果不对接包者进行约束,很有可能出现某些接包者只是为了窃取发包者的信息而接受任务的现象,而这些恶意接包者并不在意一次任务失败所造成的信誉值损失。因此,接包者接受任务时应提交一份承诺费,若如实完成工作,则承诺费可以返还;
    若在提交过程发生恶意行为,则承诺费将被扣除。

    2.3.2.2 超时未反馈

    除了发包者的慵懒行为之外,接包者也有可能出现超时未反馈的情况。接包者如果不按时进行操作,就会对发包者和其他接包者造成损害。比如说某接包者被算法1 选中却迟迟没有响应或者拒绝任务,会导致发包者重新发布任务,而已加入委员会的其他接包者需要等待委员会组建成功之后才能开展任务。此外,不按时提交结果数据也会损害众包结果的可靠性。

    2.3.3 信誉机制

    为使众包有序进行,本文设计了接包者与发包者能够交叉检验对方行为状况的机制。接包者在调用相关接口时,CSM 合约会自动检测接包者的状态,并对违规者进行相应惩罚。同样地,如果接包者发现发包者未进行相关操作,可以调用CSM 中的相关接口对其处罚。表1列举了接包者和发包者的违规行为。在本模型中,合约会根据恶意行为对他人的损害大小而扣除恶意方的信誉值和押金,并将扣除的押金补偿给受损害方。发包者的声誉降为0 时就不能再发布任务,接包者则会被算法1 拒绝。因此,这些恶意参与者将很快被系统封锁。

    表1 用户恶意行为惩罚Table 1 User malicious behavior penalty

    本文根据两阶段提交机制和支付功能,实现了一个基于Solidity 编程的智能合约的原型系统。

    3.1 算法随机性验证

    算法1 的无偏性由运行在区块链上的两阶段提交机制保证。为验证算法的随机性,本文设计了如下实验。该实验测试一个由10 名接包者参与的众包任务,报名者有100 人(不包括发包者),即一个从100 个报名者中选取10 名接包者的实验。本文分别模拟了100 个报名者中包含1~5 名恶意者的情况,并对每种情况进行10 组实验。每组实验结果记录10 000 次随机选取中恶意者被选中的次数,然后计算出恶意者入选比例。由于该项实验只是验证算法的随机性,为提升模拟效率,本文使用Java 实现了同样的选人算法逻辑,而并非在区块链上人工操作。

    本实验选取的候选者中包含至少一名恶意者,才能视为恶意者入选,如此便可以将该实验转化为如下的概率论问题:报名池中有100 人,其中包含n名恶意者,从中选取10 人求恶意者入选的概率。假设选中每一个报名者的概率是相等的,则恶意者入选概率Pn=1−其中表示10 个候选者都不是恶意者的概率。绘制理论值和实验结果如图5所示,可以看出算法1 的结果已经与理论值相当接近,有效验证了算法的随机性。

    图5 恶意者入选比例Figure 5 Proportion of malevolent persons selected

    3.2 系统可行性验证

    为了验证本方案的所有功能,本文将已实现的智能合约本地区块链调试成功后部署在以太坊区块链Rospten 的测试网络上。这是一个供全球区块链开发者调试智能合约的网络,其加密货币Ether 没有真正的价值。本文创建了多个账户模拟发包者和接包者,并测试了所有可能的场景以开发和验证不同接口的功能。由于两阶段提交机制和无偏随机算法保证了系统的可靠性,因此本文主要分析一些从实验中得到的性能信息。性能是指接口的复杂性,它决定了用户需要支付给以太坊矿工的交易费用Gas。接口越复杂,矿工在执行交易时消耗的算力越大,用户支付的Gas 也就越多。无论是在主网还是在测试网,所消耗的Gas 几乎是一样的,于是本文记录了实验过程中每个接口消耗的Gas。实验案例是一个由5 名接包者参与的50 幅图像的标注任务,每一名接包者标注40 幅图像。

    本文测试了在众包过程中每一种可能出现的情况,记录了每个接口使用的Gas,并取10组测试的平均值如图6和7 所示。UM 中的大部分接口是接包者和发包者都需要调用的,Gas消耗普遍较低;
    generateCS 只能由发包者调用,这是因为该接口需要更多的存储空间来生成和部署新的CS 合约,所以消耗的Gas 也最多。

    图6 UM 合约中各接口的平均Gas 量Figure 6 Average Gas volume per interface in UM contracts

    在CS 合约中,有些接口只需发包者调用,而有些则需接包者单独调用,在图7中分别用竖线和斜线表示。在W的所有接口中,acceptCS 接口消耗的Gas 最多。因为当W接受任务时,TPS 需要为其初始化数据,这涉及到较多的存储操作,而在以太坊上的存储操作会消耗较多的Gas。在一般情况下,发包者调用的接口比W调用的接口耗费更多的Gas,显然符合模型设计和实际情况,这是因为在大多数情况下,发包者获得的众包数据会给它带来更大的收益。与诚实回答的回报相比,W消耗的Gas 是微不足道的,这足以说服潜在用户在系统中注册并参与众包。

    图7 CS 合约中各接口的平均Gas 量Figure 7 Average Gas volume per interface in CS contracts

    现有的基于区块链和智能合约的相关安全技术处于萌芽发展阶段,尚未形成完整的应用监管体系,特别是在众包场景中还没有成熟的应用。只有对于一些特定的场景或环节,比如众包系统中的数据隐私、任务分配、工资支付等问题,已有一些解决方案。

    文献[7-13]解决了集中式众包系统中任务匹配的稳定性和隐私性问题;
    文献[14-18]采用声誉机制,解决了集中式系统中恶意参与者的问题;
    文献[19-20]将博弈论应用于区块链系统,建立了可信的分布式系统;
    文献[21-26]也提出了一些去中心化众包系统:以上系统的详细比较如表2所示。经综合分析表明,这些系统并不是完全可信的,其原因在于:现有方法或是只注重于众包任务建设,或是只注重于薪酬托管,或是只注重于数据管理,而这些都只是众包活动的一个环节而已。

    表2 现有众包平台特点Table 2 Features of existing crowdsourcing platforms

    本文针对众包系统提出了一种基于承诺机制的两阶段提交机制,进而设计了一种可以保证接包者独立性的无偏随机算法,最后通过智能合约在以太坊上实现了原型系统,并通过实验证明了所提出平台的可行性。

    对于未来的工作,我们有两个主要目标:完善系统和提高性能。一方面会扩展更多的功能,让系统适合更多的众包场景;
    设计更人性化的界面,便于用户操作。另一方面将进一步优化acceptCS 等接口的实现,减少Gas 消耗,降低用户成本。一个可行的想法是引入能反映接包者专业技能的标准,并将其作为选择算法和声誉体系的参考。这个标准不仅可以丰富现有系统的功能,而且能让接包者更容易利用自己的优势,让发包者找到更专业的相关接包者,大大提高众包的效率。

    猜你喜欢合约区块阶段关于基础教育阶段实验教学的几点看法科学与社会(2022年1期)2022-04-19区块链:一个改变未来的幽灵科学(2020年5期)2020-11-26区块链:主要角色和衍生应用科学(2020年6期)2020-02-06在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。莫愁(2019年36期)2019-11-13区块链+媒体业的N种可能传媒评论(2018年4期)2018-06-27读懂区块链现代企业文化(2018年13期)2018-06-09大热的O2O三个阶段,你在哪?营销界(2015年22期)2015-02-28两岸婚恋迈入全新阶段海峡姐妹(2015年6期)2015-02-27合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望中国工程咨询(2011年4期)2011-02-14

    推荐访问:承诺 信众 方案