农产品溯源区块链的源头数据验证机制研究

2024-03-19 11:47赵龙海赵金辉
关键词:信誉赋权共识

赵龙海,赵金辉,邹 惠

(1.河北地质大学信息工程学院,石家庄 050031;2.河北地质大学网络信息安全实验室,石家庄 050031)

0 引言

近年来,区块链技术[1-2]凭借其去中心化、数据不可篡改、信息可追溯和账本式存储等特点,在物流信息管理、食品安全信息溯源等领域得到广泛应用。区块链存储数据具有的高度可信赖性是以所存储数据的有效性为前提的,否则即使区块链可保证数据无法篡改也没有意义[3],因此迫切需要一个溯源系统源头数据验证机制来保证上链前数据的有效性。就农产品溯源系统而言,上链前数据有效性的问题,一方面来自物联网信息采集设备的数据存在格式不一致、错误、篡改的情况,另一方面来自客户反馈评价的数据存在虚假、恶意评价的情况。

目前关于区块链源头数据的验证机制已经有些探讨。谢细全等[4]提出从共识机制、数据加密、智能合约、信用激励等技术措施和法律法规、政府管理等制度方面保证联盟区块链源头数据的真实性。王鹏飞[5]提出一种类似国际标准化方式来建立信誉环境生态,首先联合政府部门,以法律法规和行业标准做抓手,再配合Token奖励机制——奖励提供真实信息、处罚提供错误信息,保证源头数据的真实性。以上研究仅对源头数据验证方式进行了理论构想,而没有详细的机制设计与实验研究,远达不到实际应用的水平。Jonathan等[6]提出可信赖预处理机制,利用零知识证明和可信赖执行环境处理传感器数据,解决了基于区块链的物联网系统中传感器数据的完整性问题,局限性在于仅涉及物联网中传感器数据的矫正,并没有全面的源头数据验证机制。Wang等[7]提出了多维原产地证书数据追溯框架,该框架结合政府权威建立惩罚机制来过滤上区块链前的虚假数据,由政府签发和审核出口产品的原产地证书,在一定程度上保证了源头数据的真实性。陈沛然[8]设计了链上链下数据协同模型,并通过构建新的区块结构提出了新型数据加密方案,在链上链下数据协同一致的同时实现用户数据的隐私安全。以上2类研究的局限性在于缺少销售环节数据的验证研究。

在现有研究基础的基础上,提出针对农产品溯源系统的区块链源头验证机制,将算法以智能合约的形式自动处理节点上传的数据。对于来自溯源系统传感器的数据,采用多维数据交叉验证算法(multidimensional information cross-verification,MICV)和多源数据匹配计算算法(multisource data matching calculation,MDMC)过滤错误与虚假数据,保证有效性;对于来自交易的客户评价数据,设计基于云模型[9]与复杂动态赋权的客户评价评估算法剔除虚假数据并给出客观评价数据[10]。根据以上的验证结果给出节点的信誉评分,设计了基于信誉的共识机制(credit-proof of stake,CPOS),恶意行为越多的节点越难得到记账权,解决了POS共识机制[11]的不公平记账问题,并在一定程度上遏制节点的作弊行为,较为全面地解决溯源系统不同环节的源头数据真实性问题。

1 研究基础

1.1 区块链

区块链是指使用密码学技术在点对点网络中构建价值传输网络的分布式数据库技术,每个区块串联成链后作为账本记录分布式系统中的全部数据。其主要关键技术[12]有对等网络、分布式账本、非对称加密算法、智能合约、共识机制[13]等新型应用范式。

区块链具有的去中心化、防篡改、可加密、可追溯的特征可完美匹配农产品溯源链的性能需求[14]。对等网络(P2P)中每个节点都是服务器,任意节点间可进行数据传输,实现农产品供应链数据管理的去中心化,弱化核心企业主导权,增加参与主体间数据交互,解决数据孤岛问题;分布式账本是系统中多个节点通过共识机制来共同维护的一种账本,可使农产品供应链各节点共治、共享交易数据,防止供应链某环节数据的篡改和垄断,提高各环节数据安全性,实现供应链各参与主体的自我管理与相互监督,进一步去中心化,降低管理成本;非对称加密技术是拥有公私2套密钥的高性能加密算法,可大大提高农产品供应链数据流通的安全性;时间戳技术是一种可验证并唯一的时间标识数据,数据区块以此为依据排序成链,极大提高数据篡改难度,天然契合供应链的数据溯源要求,可实现精准追责,防止商家无所顾忌提供劣质商品,实现农产品供应链良好的运行环境。

智能合约[15]最早由密码学家Nick Szabo提出,是一种使用编程语言编写并自动运行的计算机程序,由参与主体编写签署后部署于区块链网络中。智能合约作为区块链去中心化的关键技术,可使合约在无第三方监督的情况下被动执行,并且确保执行的有效性和不可逆性,相对于传统合约,使用便捷、维护成本低、扩展性强,显著提高了基于区块链项目的运行效率。在所提源头数据验证机制中,针对农产品供应链中不同环节多源异构数据,将相应的数据验证算法编写为智能合约部署在区块链中,通过智能合约自动对上传数据进行格式矫正、正确数据估算、有效性判断、数据库存储,其中有效性判断作为CPOS共识机制的信誉评分依据,抑制节点提供虚假数据,达到保证源头数据真实性的效果。

共识机制是一种分布式系统中各节点达成共识的算法,用于解决去中心化组织一致性问题,是实现分布式账本的关键技术。在基于区块链的农产品供应链中,共识机制可消除参与主体之间信誉危机和信息壁垒,促进公平有效的长期合作。典型共识机制[16]有PBFT、POW、POS等。PBFT拜占庭容错算法通过多阶段共识实现系统的高容错率,特点是通信复杂度高、共识效率低,适用于小型区块链系统;POW 工作量证明机制使各节点通过高强度算例竞争记账权,该机制易于达成共识,防篡改性强,但计算资源浪费严重且效率低下;POS权益证明机制依据各节点所持币的数量和币龄计算权益、分配记账权,解决POW 资源浪费严重的问题,但存在权益分配不均、不公平竞争的问题。考虑到研究采用联盟链设计农产品溯源系统,在去中心化程度高、可扩展性强的POS共识机制基础上提出了一种基于信誉评分的CPOS共识机制,既解决了POS的不公平竞争问题,又抑制了各节点数据造假的恶意行为。

1.2 云模型

1995年,李德毅针对隶属函数提出“隶属云”[17]的思想,设计了数据模型和数字特征表示形式。目前,云模型已广泛应用于人工智能、趋势预测、数据挖掘、安全分析等领域。云模型使用期望、熵和超熵3个数据特征描述定性概念。其中,期望Ex表示云滴在论域分布的期望值,是最能体现定性概念的点;熵En是定性概念的模糊度度量,反映云滴的离散程度与云的宽度;超熵He是熵的熵,反映熵的不确定性与云的厚度。

云模型是处理定性概念与定量描述的不确定性转换模型,反映了知识表达中模糊性与随机性之间的关联性。利用这一特性,提出的基于云模型和复杂动态赋权算法评估方法将大量的定量的评价数据转化为多个定性的概念来表示,再利用云模型相关理论[18]对这些定性概念进行表示和处理并给出合格的评价数据,解决了现有评价方法的主观随意、缺乏客观性等问题。

2 源头数据验证机制架构设计

2.1 基于区块链的农产品溯源模型设计

选用联盟区块链,针对农产品供应链[19]中数据多源异构且十分复杂,用户节点在数据上传时存在弄虚作假导致区块链上链前的源头数据不真实的问题,设计了具有源头数据验证机制的农产品溯源模型,如图1所示。农产品供应链包含多个环节,各个环节需上传大量各个类型数据,随着业务量的增加必然导致区块链系统存储和运行性能下降的问题。对此,采用“链上+云数据库”[20]的数据存储模式,首先将数量巨大的详细业务数据存储至云数据库,再通过哈希算法获取详细业务数据的哈希值并上传区块链系统中,大大降低系统的存储压力,保证运行效率与维护成本。溯源模型分为供应链系统和区块链系统。

图1 农产品溯源模型

供应链[21]由生产、加工、仓储、物流和销售等环节组成。生产环节参与主体主要是合作社和农场,节点需上传农产品种植数据和产品信息;加工环节参与主体一般为食品厂,节点需上传产品类型、加工流程、生产时间等数据;仓储环节需记录并上传仓储库信息,如库房位置、存储时间等数据;物流环节参与主体主要是物流公司,需上传农产品的运输路线、运输方式等信息;销售环节参与主体是众多分销商,上传的数据包括销售时间、销售地点和客户反馈评价等。随着科技的发展,供应链的物联网数据逐渐由传感器、无线电自动识别器等电子设备采集,因此设计的生产环节、加工环节、仓储环节、物流环节全部假定为电子设备采集数据。

区块链系统[22]的架构分为数据层、网络层、共识层、合约层和应用层。数据层的核心包含哈希算法、非对称加密、链式结构、Merkle树和链下数据库,设计在数据层采用“链上+云数据库”的数据存储模式。溯源数据经智能合约处理后上传数据层,数据层先将完整的农产品溯源数据进行哈希计算,得到长度固定的数据摘要信息后再上链存储,并把详细的农产品溯源数据存储到云数据库中,节省大量农产品溯源数据上链存储的空间,提升溯源数据存储访问的速度。共识层建立基于信誉的CPOS共识机制,依据各节点的信誉评分分配记账权,对农产品供应链中各环节的溯源数据在完成哈希计算后得到溯源数据的摘要信息,针对溯源数据的有效性达成共识。合约层封装了建立的食品供应链上各节点执行的合约脚本代码,包括多维数据交叉验证算法(MICV)、多源数据匹配计算算法(MDMC)以及基于云模型与复杂动态赋权的客户评价评估算法,在达到触发条件时自动对上传数据进行加工处理。应用层提供农产品供应链各环节的企业、消费者、政府监管部门相应功能的客户端。

2.2 源头数据验证机制模型设计

源头数据验证机制模型包括数据验证算法和共识机制,分别构建在区块链系统的合约层和共识层。合约层设计多维数据交叉验证算法(MICV)、多源数据匹配计算算法(MDMC)以及基于云模型与复杂动态赋权的客户评价评估算法,以智能合约的形式部署于区块链溯源系统,实施对来自供应链系统的数据的验证工作。共识层设计基于信誉的CPOS共识机制,根据合约层数据验证的结果计算各节点的信誉评分,以此确定记账权益。

数据验证部分:供应链各节点将数据上传后,达到预置触发条件就启动智能合约。智能合约中预先编译的多维信息交叉验证(MICV)与多源数据匹配计算(MDMC)算法处理来自生产、加工、仓储、物流环节由物联网设备收集的机器数据,基于云模型与复杂动态赋权的客户评价评估算法处理销售环节的客户评价数据,并给出各节点是否作弊的验证结果,作为基于信誉的POS共识机制的重要参数。后续智能合约使用哈希算法获取已验证数据的哈希数据摘要,采用非对称加密技术中的私钥对数据摘要进行加密签名,并将加密后的摘要数据和完整数据上传云数据库;云数据库将使用公钥解密的数据摘要与同样使用哈希算法获取完整数据的哈希数据摘要进行比对,若比对结果一致,则证明数据在传输过程中没有被篡改,可存入云数据库,否则淘汰该数据。完整数据的简要信息和哈希数据摘要存入区块链系统,并通过哈希值实现与云数据库的交互。

数据共识部分:对由上一阶段得出的溯源信息的哈希值进行全网共识,对各节点引入信誉评分机制,根据智能合约处理数据得出各节点是否作弊的验证结果,对其信誉评分进行奖惩,给积极并且上传有效数据的节点给予信誉值的奖励,对发生恶意行为的节点进行信誉值的惩罚,并根据节点的信誉值对节点竞争记账权时寻找随机数的难度进行动态的管理,节点的信誉值越低,在竞争记账权时寻找随机数的难度越大,从而提高各节点参与共识的公平性和稳定性,抑制节点上传无效数据,从共识机制角度保障数据有效性。

3 源头数据验证机制算法设计

数据验证算法包括多维信息交叉验证(MICV)、多源数据匹配计算(MDMC)和基于云模型与复杂动态赋权的客户评价评估算法。

3.1 多维信息交叉验证(M ICV)和多源数据匹配计算(MDMC)

3.1.1 基本流程

使用MICV和MDMC分别评价多源数据的一致性,根据一致性程度过滤出有效数据。首先使用MICV解析多源数据来验证数据一致性,如果数据完全达到一致性,就直接上传区块链存储,否则使用MDMC计算一致性程度。当数据一致性程度大于设定阈值时上传区块链存储,流程如图2所示。

图2 MICV和MDMC流程图

3.1.2 详细算法

定义P={p1…pi…pn}表示n个数据提供节点集,pi表示第i个数据提供节点;S={s1…si…sn}表示来自多个数据提供节点的数据集,si表示pi提供的数据;A={a1…aj…am}表示唯一编码为j的事务集,aj表示j号事务。为此定义表示数据提供节点pi提供的j号事务的数据。以验证数据提供节点pi提供的j号事务数据为例,MICV计算数据一致性原理为:

Bij根据saji与其余n-1位数据提供节点提供的j号事务数据sajo≠i是否一致返回true或false,如果返回true,那么表示数据满足绝对一致性,数据上传区块链存储,否则该数据再由MDMC计算一致性程度。MDMC原理为:

具体流程如下。

算法1:MICV和MDMC

3.2 云模型与复杂动态赋权的客户评价评估算法

云模型与复杂动态赋权算法是针对客户评价数据设计的,该算法能够剔除恶意评价数据和虚假评价数据,并标记提供异常数据的节点,降低源头数据作假的可能性,同时计算相应的客观评价数据。

3.2.1 基本流程

图3 标尺云

鉴别合格客户评价数据时,首先选用最能体现定性概念的期望值Ex进行比较,3类聚类数据中期望值Ex与标尺云的期望值Ex最相近的即为合格客户评价数据;如果3个期望值相等,无法鉴别时,就比较熵En,选En差值最小的数据为合格数据;若还是无法鉴别,则比较超熵He。鉴别出合格数据和作弊高分数据、低分恶意数据,提供异常数据的节点在此轮作业中标记为恶意节点。

二阶段算法采用主成分分析法进行复杂动态赋权。若异常数据过多,只剩少量正常数据,则主成分分析法便会将商家标准评价作为主要成分,如果想作弊成功就必须在客户评价数据和商家标准数据2个维度作弊,从而加大了作弊成本。在商家标准评价数据集中随机选取与合格客户评价数据同等数量的商家标准评价数据,使用主成分分析法对以上2类数据进行线性组合以形成综合指标,对方差从大到小依次定义为第一、第二、第三、第四主成分,确定指标在各主成分线性组合中的系数,接着利用主成分的方差贡献率确定综合得分模型系数,再将指标权重归一化确定权重分配,最终计算出客观的综合客户评价数据,AX={a1…ai…ap}。流程如图4所示。

图4 客户评价评估算法

3.2.2 标尺云修正

由图3可知,一般情况下初步得到的标尺云云滴的离散度较大,其实质是同款农产品、不同商家的标准评价差距较大,因此设计采用贝叶斯反馈法对标尺云的进行修正。首先根据云滴的聚集程度判断标尺云是否需要修正,判断过程如下。

标尺云云滴服从N(Ex,En2+He2)的正态分布,根据中心极限定理得出,当时定性概念的确定程度可达到1-α。其中,zα/2为标准正态分布的双侧百分位点。计算出的云滴点的均值XL和的云滴点的均值XH,再进行如下判断:

贝叶斯反馈修正过程如下:由云模型的数学模型可知某一定性概念隶属云的期望Ex:N(c0,)。以云滴X作为后验的样本集合,依据贝叶斯后验概率公式可得:

由此可推出修正的数字特征为(详细推导过程见文献[23]):

实践中可令c0=Ex,σ0=En,利用修正的数字特征重新生成云图,经修正可使En和He进一步减小,从而增加云滴的聚集程度,得到满足要求的标尺云图。

具体流程如下。

算法2:基于云模型与复杂动态赋权的客户评价评估算法

3.3 基于信誉的CPOS共识机制

基于信誉的权益证明机制CPOS的创新思想在于承接源头数据验证算法对网络节点建立信誉模型,将信誉值作为权益的重要组成部分。为清晰展示新机制原理,内部协议采用Peercoin协议,在实际应用中可采用更先进的Algorand、Tendermint、LaKSA协议。

3.3.1 基本原理

CPOS共识过程中,节点权益由币龄与信誉值组成:

式中:λ为币龄在权益值中的权重,取0.4;ω为信誉值在权益值中的权重,取0.6。每个节点需根据自身对应的难度进行哈希计算来获得记账权。节点权益越大,需解决的难题难度越低,获得记账权的概率就越大。挖矿成功后广播给全网节点进行验证,验证成功后,该节点打包交易数据生成区块连接至主链,该节点币龄清空。信誉值在上传数据时根据信誉模型进行相应调整。CPOS原理流程如图5所示。

图5 CPOS原理流程图

3.3.2 信誉模型

设P={p1,p2,…,pn}为各用户节点集合,节点pn的信誉值Credit(pn)评定规则如下:节点的初始信誉值设为100,最低值MIN设为50,最高值MAX设为300。在溯源数据上传作业中,若节点pn上传的数据被数据验证算法判定为不合格,则节点pn在本轮作业中标记为失信节点,并按照信誉惩罚规则扣除其信誉值。当信誉值低于最低值时,取消该节点在农产品溯源系统中的认证资格。信誉惩罚规则为:

式中:φ为惩罚力度,可按照系统管理的严格程度灵活设定,设置为2。

当节点pn的数据验证结果为合格时,增加信誉值作为奖励。奖励规则为:

式中:φ为奖励力度,设置为1。

4 仿真分析

实验数据来自WS-DREAM(http://www.wsdream.net)数据网站和模拟数据。

4.1 云模型与复杂动态赋权的客户评价评估算法部分

选取某类农产品x的客户评价数据和商家标准评价数据100条,经过前期数据处理后,合理的标准评价数据值域为x:0.5~0.75。实验数据中,超出标准评价值域分布的作弊评价数据、恶意评价数据和临近标准值域的数据统称为无效评价数据,其所占比例称为无效评价率,以输出数据AX={a1…ai…ap}的无效评价率为指标测试算法的有效性。

图6 云模型与复杂动态赋权算法效果图

图7为云模型与复杂动态赋权算法的无效评价率为40%时重复100次实验的效果波动情况。可看出,输出样本的无效评价率一般在10%以下,效果明显,算法稳定性良好。

图7 算法稳定性效果图

4.2 M ICV和MDMC算法部分

设定共有50个数据提供节点P={p1…pi…p50},所以阀值最大值为50,设定100项事务,每个数据提供节点就每条事务提供1条数据,每个节点共提供100条数据。图8展示了6个数据提供节点p1、p2、p3、p4、p5、p6的数据合格情况,其中设定p1、p2存在大量虚假数据。从实验结果可知,当阈值β为0时,每个节点的100条数据全部上传,随着阈值β增加,p1、p2数据合格数先是急剧下降,曲线为凹型,说明p1、p2存在大量不合格数据;p3-p6数据合格数先是缓慢下降,说明所提供数据大部分正常,最后快速下降,说明数据采集中存在系统误差。当阈值最大值即要求全部节点数据相同时,6条曲线趋于一点,即极少数事务的数据全部相同,符合算法理论。实验表明通过设定合理的阈值β,MICV和MDMC算法可有效去除物联网数据采集过程中的虚假与错误数据,保证源头数据的有效性。

图8 MICV和MDMC算法效果图

选定事务A、B、C、D,以事务数据提供者的数量为变量,范围为20~200个,每个数据提供者就每项事务提供1条数据,每项事务的不合格数据保持在50%左右,每项事务经过MICV和MDMC算法处理后检验数据合格率,如图9所示。实验结果表明,当数据提供者数量较少时,存在偶然性,算法效果很差,随着数据提供者数量增加,交叉匹配的基数越大,算法效果逐渐理想。

图9 MICV和MDMC算法性能测试图

4.3 CPOS共识算法部分

为测试共识算法性能,设置仿真节点1、2、3、4、5,初始币龄值统一为0,共进行500轮共识作业。节点1与节点2的初始信誉值分别设为60、70,作为低信誉样例节点,整个作业过程中上传数据全部为合格数据;节点3的初始信誉值设为100,上传数据中含有25%的不合格数据;节点4的初始信誉值设为100,上传数据全部为合格数据;节点5模拟多次上传不合格数据,初始信誉值设为40,低于最低信誉值,无参与共识资格。

图10为500轮共识中各节点的记账次数。节点1记账次数为98,节点2记账次数为129。节点4初始信誉值最高,取得最高记账次数156。节点3初始信誉值与节点4相同,但由于上传数据中有25%的不合格数据,受到相应处罚,仅得到147记账次数,低于节点4。节点5信誉值低于阈值,无共识资格,记账次数为0。

图10 节点记账统计图

图11为各节点的信誉值变化情况。节点4的初始信誉值最高,信誉值上升最快,峰值最高。节点3由于上传数据中有25%的不合格数据,因此信誉值出现下降情况,总体低于无违规行为的节点4。节点1与节点2的信誉值逐渐上升,但上升速度与幅度明显低于节点4。节点5信誉值无变化。

图11 节点信誉值增长变化图

实验结果表明,在POS机制基础上结合数据验证算法设计的基于信誉的CPOS共识机制可有效地控制节点记账权的竞争,避免原有机制的币龄过高产生的垄断现象,同时促进节点上传合格数据,抑制作弊行为,保证源头数据的有效性。

5 结论

针对目前基于区块链的农产品溯源系统缺少源头数据有效性验证的问题,从基于区块链的农产品溯源系统架构入手,对包含多个环节数据产生与收集的供应链系统及提供数据存储与溯源功能的区块链系统进行建模分析,在合约层设计并以智能合约形式部署了基于云模型与复杂动态赋权的客户评价评估算法,解决了客户反馈评价的数据虚假、恶意评价的问题,MICV和MDMC解决了采集中存在物联网信息采集设备的数据存在格式不一致、错误、篡改的问题;在共识层设计了基于信誉评分的CPOS共识机制,既解决了POS的不公平竞争问题,又抑制了各节点数据造假的恶意行为,提高了源头数据的真实性;在数据层采用“链上+云数据库”的数据存储模式,节省大量农产品溯源数据上链存储的空间,提升溯源数据存储访问的速度。最后,对提出的基于云模型与复杂动态赋权的客户评价评估算法、MICV算法、MDMC算法及CPOS共识机制进行仿真设计及分析验证,结果表明该算法可有效减少数据采集过程中的虚假无效数据。

猜你喜欢
信誉赋权共识
以质量求发展 以信誉赢市场
基于单片机MCU的IPMI健康管理系统设计与实现
论乡村治理的有效赋权——以A县扶贫项目为例
共识 共进 共情 共学:让“沟通之花”绽放
企业数据赋权保护的反思与求解
论思想共识凝聚的文化向度
信誉如“金”
商量出共识
试论新媒体赋权
基于改进AHP熵博弈赋权的输变电工程评价