基于区块链和信誉评估的工业网络可信任务机制

2022-10-28 08:09严玉权陈中育林飞龙王晓虎马永进
关键词:发布者信誉工作者

严玉权, 陈中育, 林飞龙, 王晓虎, 马永进

(浙江师范大学 数学与计算机科学学院,浙江 金华 321004)

0 引 言

当前,越来越多的国家和地区将推进数字化转型作为传统产业改造升级的重要抓手,以生产要素数据化为依托,推动制造业向自动化、数字化、智能化转型[1].根据IDC(互联网数据中心)的调查结果,全球1 000强企业中有67%的企业将数字化转型作为核心发展战略,这意味着数字化转型是现代企业生存和发展的必由之路[2].从中国的国情出发,积极推动制造业转型升级,通过数字化转型来实现产业的高质量发展,对我国的经济发展具有重要意义.然而,如何确保数据信息可信与安全存储,成了工业数字网络的挑战性问题.

区块链技术[3]是近年来出现的一种新型去中心化可信网络技术,通过共识机制、智能合约、分布式冗余账本技术,构建任意点对点可信交互机制,实现数据存储的安全与可靠.区块链技术已成为当前各领域的研究热点.Asiri等[4]通过物联网设备和区块链的结合,利用智能合约对设备的信誉分进行计算,只有信誉分大于临界值,交易提议才会被接受.这在一定程度上降低了恶意设备带来的影响.Dedeoglu等[5]为了确保记录在区块链的数据来自可靠的数据源,为基于区块链的物联网应用搭建了一个分层的可信架构.通过对数据源的不断观察,对数据源的可靠性进行评估.Malik等[6]在食品供应链场景下提出了一个三层的信任管理框架.通过信誉模型来评估商品的质量及供应链参与实体的可信性,以此来确保记录在区块链上的数据都是可信的.所有交易实体的信誉分都由智能合约完成计算,当交易实体信誉分低于阈值时,便不能参与到交易中来.Yang等[7]提出了一个基于区块链的信誉系统,用于车辆网络中的数据可靠性评估.如果发送消息的车辆拥有高信誉,那么消息的接收者认为该消息是可靠的并接受此消息.Chen等[8]提出了一种在车联网场景下的质量驱动的激励机制,通过EM算法(expectation-maximization algorithm)评估获得的数据质量,以确保区块链上和区块链下的安全数据共享.

可见,区块链技术为进一步强化工业网络的安全提供了重要的技术基础.面向工业网络中数据的安全和可信需求,笔者将区块链和工业制造相结合,提出了一种基于区块链和信誉机制的工业网络可信任务机制.本研究的主要创新和贡献总结如下:

1)基于区块链技术构建工业网络可信任务机制,利用区块链智能合约技术将生产任务数字化,实现任务过程的区块链存证,保障任务执行的透明性与安全性,并且保证了各方权益,减少在传统方式中存在的争议;

2)提出了一种用户信誉评估机制,激励用户发布可信数据,约束用户数据造假行为,只有通过采取诚实可信的行为,才能维持信誉,以此来过滤恶意用户,并为信誉机制设计相关智能合约,使得信誉评估过程公开透明;

3)基于Hyperledger Fabric搭建了原型系统(Hyperledger Fabric是一个提供分布式账本解决方案的平台,是开源软件社区Hyperledger中的区块链项目之一),在原型系统上进行了大量的实验,验证了所提出系统的可用性和有效性.

1 系统定义

1.1 应用场景

本文的数据来源是工业生产任务,工业生产任务就是系统用户根据自身需求所发布的任务信息.在任务执行完成之后,产生相应的数据,即先有生产任务,后有数据.在现实世界中,确有工业生产任务需求的用户可以通过本文设计的基于区块链技术构建的工业生产任务系统平台发布任务消息.表1定义了文中用到的相关符号的含义.

表1 参数定义

1.2 系统模型

系统模型图如图1所示.由4部分组成:任务发布者,工作者,区块链应用客户端及面向工业制造的区块链网络(记为工业制造链).

任务发布者:P={p1,p2,…,pi,…,pn}指任务发布者集合,任务发布者指有工业生产需求的系统用户.任务发布者通过区块链应用客户端,发布任务消息.

工作者:W={w1,w2,…,wj,…,wm}指工作者集合,工作者指拥有生产技能的系统用户,工作者通过竞争任务并且完成任务来获得奖励.工作者通过区块链应用客户端,接收任务发布者发布的任务消息.在任务完成之后提交任务结果给系统平台.

区块链应用客户端:任务发布者和工作者通过区块链应用客户端和区块链网络进行交互.区块链应用客户端可以运行在任务发布者和工作者的本地终端设备上.

工业制造链:工业制造链由以下组件组成:

1)IPFS:IPFS指星际文件系统[9],是一种分布式文件存储系统.本文IPFS用来存储工作者的工作记录,以图片或视频的形式将完成的任务记录下来,以佐证工作者执行了任务.

图1 系统模型图

2)区块链网络:区块链网络作为系统的核心组成部分,记录着任务发布者发布的任务信息,以及任务发布者和工作者的交易记录.区块链存储交易记录的哈希地址,而原始的数据存储在区块链之外的IPFS分布文件系统中.

3)智能合约:本质上来说,智能合约是一段可执行的程序,通过把业务逻辑写入智能合约中,并提前设置好触发合约执行的条件,当用户发起交易调用合约触发相应条件时便自动完成业务逻辑的执行.

4)信誉评估:在去中心化的系统中,无法保证交易双方行为的确定性与可靠性,用户必须承担一定的风险.由于难以评估对方是否可靠,因此有可能造成交易失败,甚至会遭受到一定的经济损失.为了解决这个问题,采用信誉评估方法.信誉评估是一种广泛采用的方法,通过分析用户的历史行为来评估信誉,从而为交易对象的选择提供一定的依据.高信誉代表用户在过去有良好的表现行为.本文的信誉评估模型用来评估任务发布者和工作者的信誉状态,为筛选恶意用户提供一定的依据.只有信誉分值不低于阈值的用户才可以发布任务消息以及参与任务的执行.任务发布者和工作者可以互相评估信誉.本文提出的信誉评估方法所采用的评估指标在区块链和IPFS分布式文件系统中都有记录,数据公开透明,任何人不能伪造,因此,本文的信誉评估机制是公平公正的,可以消除恶意评估的影响.

5)矿工:矿工在交易记录生成之后,负责收集并验证交易记录,将交易记录打包成区块,并把区块添加到区块链中.

从任务发布者发布一个任务开始,到此次任务被工作者完成,工作者提交生产数据到系统平台,最后任务发布者支付工作者报酬的过程,称为一次交易.任务发布者发布的任务由一名工作者完成.需要指出的是,用户都需要在系统中完成注册,获得合法身份之后,才可以在系统中进行任务的发布和任务的执行及交易的验证.

1.3 系统初始化

系统中的用户在向证书颁发机构(CA)注册后才能成为合法实体,并且与其在现实世界中的身份相绑定,例如每个用户的身份证号.本文中,基于区块链的系统模型是搭建在HyperledgerFabric基础上的,通过HyperledgerFabric自带的证书管理工具Fabric-CA提供的成员注册功能,对系统用户的身份证书进行管理,例如证书的新增和撤销.假设系统中有S个用户,每个用户s∈{1,2,…,S}在区块链网络中获取它的公私钥对(PK(s),SK(s)).公钥用于加密数据.使用公钥加密的数据只能使用私钥解密[10].CA使用其私钥SKCA签名后,用户s获得其身份地址ID(s)和数字证书DC(s),用以唯一标识用户和证明用户身份的真实性.为了实现交易金额的流动,用户需要得到一个钱包地址WA(s),因此,每个用户都拥有一个账户A(s)={ID(s),PK(s),SK(s),DC(s),WA(s),B(s)},B(s)是用户的账户余额.

1.4 信誉评估模型

1.4.1 对工作者的信誉评估

1)是否按时提交任务结果

任务发布者发布的每次任务都有截止时间,因此,根据工作者是否在截止时间之前提交任务结果,作为一项评估指标.

(1)

式(1)中:Tpi→wj指的是任务发布者pi对工作者wj在任务结果提交及时性指标上进行评估;Tres为工作者实际提交任务结果的时间;Ttaskdea是提交任务结果的截止时间.

2)是否执行任务

(2)

式(2)中:Hpi→wj指任务发布者pi对工作者wj在是否执行任务指标上进行评估.在一次任务结束之后,任务发布者可以向IPFS文件系统查询工作者的工作记录,以此来判定工作者在此次任务中是否执行了任务.

3)是否完成任务

(3)

式(3)中:Qpi→wj指任务发布者pi对工作者wj在是否完成任务指标上进行评估.

结合以上评估指标,可以得到任务发布者pi对工作者wj在第k次交易中的信誉评估为

(4)

式(4)中:α1,α2,α3是权重参数,且满足α1+α2+α3=1.

综上,得到任务发布者对工作者的信誉分评估为

(5)

式(5)中:Dwj指的是工作者wj累计参与的历史任务次数.如果工作者wj之前没有任何参与任务历史,就默认取信誉分为0.5.否则,将工作者wj历次参与任务的信誉分加和取平均数,作为此次任务中工作者wj的信誉分.

1.4.2 对任务发布者的信誉评估

在每一次任务完成之后,任务发布者需要支付相应的报酬给工作者.因此,可以根据任务发布者是否在报酬支付截止时间之前支付报酬,作为一项评估指标,即

(6)

式(6)中:Twj→pi指的是工作者wj对任务发布者pi在任务报酬支付及时性指标上进行评估;Tpay是任务发布者提交支付消息即支付报酬的时间;Tpaydea是任务发布者支付报酬的截止时间.

结合以上评估指标,可以得到工作者wj对任务发布者pi在第k次交易中的信誉评估,即

(7)

综上,得到工作者对于任务发布者的信誉分评估为

(8)

式(8)中:Dpi指的是任务发布者pi累计发布的历史任务次数.如果任务发布者pi没有发布任何任务消息,就默认取信誉分为0.5.否则,将任务发布者pi在历次任务中的信誉分加和取平均数,作为此次任务中任务发布者pi的信誉分.

1.5 工作流程

系统工作流程如图2所示.

1)任务发布者pi根据现实需求,通过区块链应用客户端发布任务消息TaskMsg(pi)到区块链网络.任务发布者pi首先为任务消息内容生成一个摘要SHA256(TaskMsg(pi)),并使用其私钥对摘要操作生成一段“签名”Sign(SHA256(TaskMsg(pi)),SK(pi)),并将此签名附在任务消息后面,通过区块链应用客户端一同发送给区块链网络.

图2 工作流程执行时序图

2)区块链网络接收到任务发布者pi的任务请求消息之后,先根据CA的公钥PKCA检查任务发布者pi的数字证书DC(pi)是否过期,然后再通过验证函数Verify(SHA256(TaskMsg(pi)),PK(pi))对数字签名进行验证.如果验证通过,就说明任务请求消息由任务发布者本人发出.最后对任务消息进行相同的哈希运算,将得到的结果和用任务发布者的公钥PK(pi)解得的摘要进行对比,如果二者一致就说明接收到的消息是完整的、准确的,没有被篡改.在任务消息通过验证之后,区块链网络向任务发布者pi发送任务消息发布成功的通知,任务发布者pi向系统指定合约账户提交任务押金.随后区块链网络广播任务消息,工作者可以通过区块链应用客户端接收到任务发布者pi发布的任务消息.

3)在工作者对任务发布者pi进行信誉评估之后,决定是否接受此次任务请求,如果工作者wj接受此次任务请求,就可以通过区块链应用客户端发送经私钥SK(wj)签署过的反馈消息ReplyMsg(wj)给区块链网络.

4)区块链网络接收到工作者wj的反馈消息之后,同上述步骤类似,对接收到的反馈消息进行验证,在反馈消息通过验证之后,区块链网络向任务发布者pi返回反馈消息ReplyMsg(wj),任务发布者pi可以通过区块链应用客户端获取工作者wj提交的反馈消息.

5)任务发布者pi对所有接受此次任务请求的工作者进行信誉评估,选择信誉分最高的工作者作为此次任务的交易对象,将确认消息ConfirmMsg(pi)用私钥SK(pi)签署,发送给区块链网络.区块链网络在接收到任务发布者pi发送的确认消息之后,和之前的消息验证规则一样,对确认消息进行验证.在确认消息通过验证之后,区块链网络向工作者wf返回确认消息,工作者wf可以通过区块链应用客户端获取任务发布者提交的确认消息.被任务发布者选中的工作者wf提交任务押金到系统指定合约账户.

6)工作者wf完成了此次任务之后,提交此次任务的结果消息TaskResultMsg(wf).工作者wf同时将此次任务的工作证明(以图片或视频的形式)发送给IPFS分布式文件存储系统.任务发布者pi将支付消息PaymenyMsg(pi)发送给区块链网络.

1.6 PoR(proof-of-reputation)共识机制

共识机制是区块链最重要的组件之一.共识机制确保了交易的正确性和一致性.然而采用传统的工作量证明(PoW)共识机制在本文提出的应用背景中是不合适的,因为PoW共识机制需要消耗大量的计算资源,而本文的系统用户所使用的终端设备是移动设备,不具备如此巨大的计算能力.为了解决这个问题,本文采用PoR共识机制,即基于信誉的共识机制.需要指出的是,处于交易状态中的任务发布者和工作者不能参与到共识过程中来,只有处于非交易状态的系统用户才可以参与到共识过程中.处于非交易状态的系统用户可以根据信誉分去竞争成为矿工,信誉分越高,成为矿工的概率就越大.图3是主要的共识流程.

图3 PoR共识过程示意图

PoR共识机制的步骤如下:

步骤1:矿工选举.系统用户根据信誉分竞争成为矿工,在所有参与竞争的系统用户中,拥有最高信誉分的系统用户被选举为矿工.矿工负责收集交易记录并把交易记录打包进区块.

步骤2:高信誉分用户选举.在选举出矿工之后,将其余系统用户按信誉分从高到低排序,信誉分排在前L%的用户会被选举成为高信誉分用户.

步骤3:生成新区块.当矿工收集到足够多的交易记录之后,将交易记录打包生成一个新的区块.

步骤4:向新区块投票.当矿工收集到足够多的交易记录之后,把它们打包进区块中并且广播给区块链网络中的系统用户.高信誉分用户验证区块中的交易是否正确.在本文提出的工业区块链网络中,当以下条件同时成立时,一笔交易才会被验证通过:

条件1:交易双方的消息签名正确;

条件2:任务发布者pi提交的支付消息中确认的已完成工作量ConfirmedTaskAmount和工作者wf提交的任务结果消息中已完成的工作量CompleteTaskAmount一致.

步骤5:区块被添加到区块链中.当一个区块收到超过2/3的高信誉分用户的投票之后,此区块会被添加到区块链中.矿工会收到一笔来自系统的虚拟货币奖励,这笔奖励可以用作任务押金.

2 仿真验证与分析

2.1 仿真实验设置

本文使用区块链作为任务系统的底层框架,部署了版本1.4的Fabric区块链网络.相关应用程序的开发需要用到虚拟机,因此,需要安装VMware虚拟机和Ubuntu系统,智能合约的开发在微软公司的VisualStudioCode上编写,Golang作为智能合约的开发语言.实验环境设置如表2所示.

表2 实验环境

2.2 实验结果分析

图4和图5对本文提出的信誉评估机制和文献[11]提出的信誉模型进行了比较.图4和图5分别显示了诚实用户和恶意用户信誉值的变化.诚实用户和恶意用户的信誉值随着交易次数的增加而变化.实验参数设置为α1=0.6,α2=0.2,α3=0.2.

从图4可以看出,诚实用户的信誉值随着交易次数的增加而不断上升.无论是本文提出的信誉评估机制还是对照组RTRC(reputation-basedincentivegamemodelfortrustworthycrowdsourcingservice)机制,都有同样的结果.然而,RTRC机制的上升趋势要比本文提出的信誉评估机制更快.这是因为本文提出的信誉评估机制考虑的信任因素更加全面,可以更好地识别网络中用户的恶意行为,RTRC机制对于用户是否有恶意行为的检测指标比较单一,导致用户的信誉值上升较快.

图5比较了一个恶意用户在2种信誉评估机制下的信誉值.从图5可以看出,当用户有恶意行为时,本文提出的信誉评估机制和RTRC机制的信誉分都有下降的趋势,但是前者下降得更快,经过2到3次交易后,它很快就降到了可信的临界线以下.而RTRC机制在经过25次交易之后,信誉值才降到信誉阈值以下.对比实验显示,本文设计的信誉评估机制对识别恶意用户有更大的优势.

图4 诚实用户信誉值变化 图5 恶意用户信誉值变化

根据实验结果,如果用户采取诚实可信的行为,此用户的信誉分就会维持在一个比较高的状态;如果用户有恶意行为,此用户的信誉分就会下降直到降低至信誉阈值以下,被系统淘汰.无论是任务发布者还是工作者,以此来激励用户在任务中选择诚实可信的行为,发布可信的数据以维持信誉,进而获得长期效益,同时促进任务的可信性.实验结果证实本文的信誉机制能有效地激励用户选择发布可信数据,也验证了信誉机制对于促进任务可信是有效的,证明本文的任务机制是可信的.

本文使用tape测试工具(https://github.com/Hyperledger-TWGC/tape)对原型系统进行测试,tape是一个测试HyperledgerFabric性能的轻量级工具.本文在原型系统中部署了发布任务消息合约、提交任务结果合约和提交支付消息合约,并使用tape工具对智能合约的执行时间进行了测试,实验次数分别为100,200和300次,测试结果如图6所示.以执行次数100次为例,调用发布任务消息合约、提交任务结果合约和提交支付消息合约所耗费的时间分别是1.72,1.85和1.83s.图7主要考虑以下指标: 1)区块封装的交易数量,表明原型系统的服务能力;2)区块大小,表明存储原型系统的账本数据存储资源占用情况.通过设置不同的交易发送周期来评估不同交易强度下的系统性能,从图7可以看到,随着交易发送周期从300ms增加到600ms,相应地,区块封装交易数量也随之降低,区块的大小也相应地减小.

图6 合约执行时间消耗 图7 区块封装的交易数量和区块大小变化

表3对任务发布者和工作者的相应功能进行了测试.本文在区块链网络中部署了完成相应功能的智能合约,并使用tape测试工具对智能合约的功能进行测试,测试指标包括耗费时间和TPS(transactionpersecond,每秒交易数量,TPS=交易数量/交易总耗时).TPS是反映系统处理能力的重要性能指标,TPS越高,系统的处理能力越好.在测试中,对智能合约的调用和查询分别执行1 000次.实验结果根据四舍五入保留2位小数.实验结果显示,在1 000次交易请求的情况下,智能合约的执行时间耗时少且系统的每秒交易处理能力高,验证了系统在处理大量交易请求时的良好性能.

表3 功能测试

3 结 论

为了提高工业数字网络中数据的可信性,本文提出了一种基于区块链和信誉机制的工业网络可信任务机制.本文将事务的处理逻辑写进智能合约,系统用户通过调用智能合约自动完成相应的事务处理,将最终的任务数据写入区块链,实现任务过程的区块链存证,以确保任务数据不被恶意篡改和伪造.为了激励系统用户遵守系统规则,提交可信的数据,一种具有激励性质的信誉评估机制被提出,只有诚实的行为才能维持高信誉,而采取不诚实的行为会导致信誉降低,直到被系统淘汰,以此来激励系统用户做出诚实的行为,进而提升任务的可信性.实验结果验证了信誉机制对于激励用户选择发布可信数据的行为是有效的,验证了本文的任务机制是可信的.最后,本文基于HyperledgerFabric搭建了原型系统,在搭建的原型系统基础上进行了大量实验,根据实验结果,验证了系统的可用性.

猜你喜欢
发布者信誉工作者
以质量求发展 以信誉赢市场
基于单片机MCU的IPMI健康管理系统设计与实现
关爱工作者之歌
致敬科技工作者
我们
——致敬殡葬工作者
新加坡新法规引争议
信誉如“金”
普法工作者的“生意经”
软件众包任务发布优先级计算方法
基于博弈论的社交网络转发控制机制