掌桥专利:专业的专利平台
掌桥专利
首页

基于平行区块链和智能合约的稻米全供应链信息监管方法

文献发布时间:2023-06-19 16:12:48



技术领域

本发明涉及区块链、隐私加密等新一代信息技术和粮食安全管理等领域,具体涉及一种基于平行区块链和智能合约的稻米全供应链信息监管办法。

背景技术

农业科技创新是加强稻米供应链监管的有效手段,使用新技术以提高稻米供应链监管水平,促使稻米数字化转型,对实现稻米质量安全有重大推动作用。平行区块链是平行智能理论方法与区块链技术的有机结合,致力于通过实际区块链系统与人工区块链系统的平行互动与协同演化,为目前的区块链技术增加计算实验与平行决策功能,实现描述、预测、引导相结合的区块链系统管理与决策。稻米供应链数据复杂,且交互频繁,引用平行区块链有助于分担区块链的存储压力,提高区块链系统的交易量,降低稻米供应链数据的存储成本,能够助力于稻米供应链全生命周期复杂信息的高效管理。区块链上的智能合约可看作运行在分布式账本上的、预置规则、具有状态、条件响应的,可封装、验证、执行分布式节点复杂行为,完成信息交换、价值转移和资产管理的计算机程序。

近年来,研究学者在探究将区块链技术与人工智能、大数据、5G、工业互联网等技术相结合以加强监管能力,主要体现在以下方面。第一,将人工智能(AI)与智能合约相结合,解决区块链信息量冗余问题,提高监管效率。第二,将区块链技术与大数据技术相结合,以统一不同数据源,实现数据的统一监管。第三,将区块链技术与5G技术相结合,以解决数据实时传输慢的问题。第四,将区块链与工业互联网相结合,通过标识解析等技术实现监管信息的精准溯源定位。相较于传统的稻米供应链监管模式,“区块链+”模式能够保证稻米供应链链上数据的安全可信,实现稻米数据的可信溯源与精准定责,从而提高稻米供应链的监管效率和真实度。

稻米供应链具有环节复杂、数据种类多样、生命周期长等特点,区块链与智能合约的应用推动了稻米供应链的数字化以及智能化,在一定程度上提高了监管部门对稻米供应链的监管水平。但随着数据量的增加,区块链以及智能合约在稻米供应链监管中的应用存在以下几点不足。

(1)现阶段区块链在稻米供应链研究多为“生产链”、“加工链”、“存储链”等单环节区块链,并且区块链在稻米供应链研究多为“区块链+本地数据库”或“区块链+云数据库”的模式。数据在稻米供应链各环节之间难以进行及时有效的互联互通,并且区块链和本地数据库的数据交互存有安全隐患。

(2)由于稻米供应链环节众多,参与人员复杂,且稻米流通量巨大,稻米供应链产生的数据量庞大。区块链本身存储空间有限,单链模式无法承担稻米供应链庞大的数据量,具有高延迟、高存储成本等问题。

(3)稻米供应链数据存储呈分散性,各环节基本信息、有害物信息、人员身份信息等关联性弱,稻米供应链数据管理粗疏,且监管机构仅能对稻米数据进行监管,对企业相关欺诈行为难以进行有效监管。

发明内容

针对上述区块链在稻米供应链监管应用中存在的不足,本发明提供了一种基于平行区块链和智能合约的稻米全供应链信息监管方法,基于稻米全供应链主体环节对供应链数据进行平行链划分,并设计了稻米供应链监管跨链模式。

本发明提供的一种基于平行区块链和智能合约的稻米供应链信息监管办法,具体步骤如下:

(一)将稻米供应链信息监管模型架构分为主链、平行链以及中继链三种不同类型的区块链,其中主链节点为各个监管部门、上链企业以及消费者,平行链为数据存储链,中继链为数据跨链中转链。

根据稻米全供应链环节以及所涉及到的数据所有者,将数据划分为9条平行链存储。9 条平行链分别对应有害物信息、企业信息、消费者信息、监管机构信息、交易记录、成本信息、数据交互记录、卫生记录以及其他信息,分别编号为1~9。

(二)对供应链数据的隐私以及权限进行划分。根据数据所有者—企业、监管机构以及消费者这三类来进行划分,具体是:对于企业,其拥有数据存储于平行链1,2,5,6,8,9等6条区块链,其中平行链2,5,8,9等4条区块链所包含数据为共享数据,平行链1,6中相关有害物信息以及成本信息等数据为不公开数据。对于监管机构,其拥有数据存储于平行链4,7两条区块链,其中平行链4所包含数据为共享数据,平行链7所包含数据为不公开数据。对于消费者,其拥有数据为平行链3,该条区块链数据为共享数据。在访问权限上,企业以及消费者在验证身份后,能够访问所有的共享数据。监管机构在实行监管行为时,根据所拥有权限访问相应的数据。

(三)稻米供应链每个批次所涉及到的参与企业、监管部门以及消费者利用采集跨链机制进行数据实时采集上链。采集跨链机制共涉及两个智能合约分别为采集跨链合约A(CCSC-A)、采集跨链合约B(CCSC-B)。

主链上的节点利用数据采集设备进行数据的收集,通过采集跨链合约A进行请求发起者身份的验证,并通过哈希锁定、非对称加密的方式对数据加密后分片存入中继链,中继链各个节点通过博弈分配数据归整权,通过采集跨链合约B依据数据摘要对数据进行预存储,获取到相应的存储地址,并将地址通过相同的哈希锁进行加密,通过采集跨链合约A以及采集跨链合约B之间的相互调用实现加密数据的相互解密,最后在规定时间内实现数据的安全存储。

(四)主链监管机构需要对数据进行调用监管时,采用监管跨链机制对数据进行跨链调用。监管跨链机制共涉及两个智能合约分别为监管跨链合约A(SCSC-A),监管跨链合约B(SCSC-B)。

主链的监管节点发起数据调用查看请求,监管跨链合约A验证请求发起者身份,对请求数据预处理后发送至平行链,通过共识,平行链将数据传输至监管跨链合约A;监管跨链合约A对数据进行哈希锁定以及非对称加密后分片传入中继链;中继链上的博弈获胜节点对数据归整后,发送给监管跨链合约B;监管跨链合约B将监管部门身份证明文档使用相同的哈希锁加密后,与监管跨链合约A相互调用,进行数据解密;最后监管跨链合约B将数据发送给该监管部门,监管跨链合约A将该监管部门的调用信息存储在平行链上。

(五)监管跨链合约A采用并发机制对监管跨链请求预处理;所述并发机制为基于K-means二次聚类与布隆滤波器的数据处理方法。

本发明方法中,主链、平行链、中继链之间的通信基于SPBFT共识机制。对于平行链以及中继链,各节点通过SPBFT共识机制实现信息状态从平行链迁移到主链,实现平行链各节点以及主链各节点状态的一致性;所述的SPBFT共识机制相较于PBFT共识机制,增加了Competition步骤,用于中继链共识。

SPBFT共识机制包括步骤:(I)Request,(II)Pre-prepare,(III)Pepare,(IV)Commit, (V)Competition,(VI)Reply。

进行共识的过程为:

客户端在主链发起请求request消息,主链将该消息广播至平行链各个节点;平行链各个节点独立完成SPBFT共识机制的I-IV步骤;在第VI步骤构建完成reply消息后跨链至主链各节点,该reply消息作为request在主链进行第二轮次的共识,主链各节点达成reply-1消息后直接回复至客户端;

中继链的共识为:客户端在主链发起request消息,主链将该消息广播至中继链各个节点;中继链各个节点独立完成I-V步骤,在第VI步骤构建完成reply消息后跨链至主链各节点;该reply消息作为request在主链进行第二轮次的共识,主链各节点达成reply-2消息后直接回复至客户端。

相对于现有技术,本发明的优点在于:

(1)本发明方法将平行区块链、智能合约技术与稻米供应链进行结合,在稻米全供应链行业方面,加强了稻米不同环节之间信息交流,实现了稻米供应链不同类型企业之间点对点实时数据互通。

(2)本发明方法与现有技术对比,在稻米供应链可信监管方面,提高了监管人员对稻米全供应链数据的粘和性,加强了稻米供应链数据、基本信息、有害物信息等与人员身份信息的耦合性,实现了对稻米全供应链数据与人员的精细化管理。

(3)本发明方法与现有技术对比,在稻米全供应链模式技术方面,提高了稻米供应链各环节之间数据跨链交互的便捷性与安全性,降低了供应链数据的存储成本与交互的高延迟性,以更好的分布式账本技术实现了稻米数据的可信监管,保证了稻米的食品质量安全。

(4)本发明方法适用性强,针对不同类型的粮油食品,均可实现全供应链的信息监管,具有普遍适用性。

附图说明

图1为稻米供应链环节分类图;

图2为本发明稻米供应链信息监管框架图;

图3为本发明基于平行区块链和智能合约的稻米供应链信息监管的流程图;

图4为本发明的采集跨链机制的示意图;

图5为本发明的监管跨链机制的示意图;

图6为本发明的并发机制的示意图;

图7为本发明的SPBFT共识机制的示意图;

图8为本发明的SPBFT共识时序图;

图9为本发明实施例的实验中并发机制的仿真结果图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合实例对本发明作进一步的详细和深入描述。

本发明一种基于平行区块链和智能合约的稻米全供应链信息监管方法,首先对稻米供应链进行整体分析,抽象出稻米全供应链主体环节,进而对供应链数据进行平行链划分,对各环节主要参与人员的数据权限进行明确划分。其次,基于稻米供应链数据解析,设计了稻米供应链监管跨链模式,其中包含稻米供应链监管跨链框架、基于哈希锁定、智能合约和中继链的采集跨链机制以及监管跨链机制、基于K-means算法与布隆滤波器的并发机制以及适用于多链共识的SPBFT共识机制。

首先,整理出稻米供应链主体环节,如图1所示:整个稻米供应链分为种植、收储、加工、仓储、运输和销售六大基础环节;收储环节包括收购、干燥、除杂和入仓4个小环节;加工环节包含垄谷、碾米、色选、抛光和包装5个小环节。

其次,建立稻米供应链信息监管模型,如图2所示:①稻米供应链信息监管模型共服务于三类人群,分别为监管部门、企业以及消费者。②采用的跨链机制为哈希锁存、跨链合约以及中继链的有机结合。其中跨链合约分为采集跨链合约A,采集跨链合约B,监管跨链合约A,监管跨链合约B。③同时采用K-means算法以及布隆滤波器服务于主链与平行链之间的数据传输,并设计SBFT(拜占庭容错算法)共识机制用于主链与平行链之间达成共识。④框架最下方为平行链群,主要实现数据的分链存储。⑤贯穿整个框架之间数据按类型分为了 4类,分别为采集跨链数据、监管跨链数据、共识数据以及跨链处理数据。⑥为了达成主链以及平行链之间各节点的共识,设计了SPBFT(Supervision Practical ByzantineFault Tolerance) 共识机制来实现主链以及平行链之间各个节点之间的共识。

本发明的基于区块链和智能合约的稻米供应链监管跨链模式从根本上解决了供应链中心化严重问题,实现了数据的完全去中心化。稻米供应链跨链模式分为了采集数据跨链以及监管数据跨链,分别对应数据的可信跨链存储以及可信跨链监管。对于采集数据跨链,主链参与企业节点利用数据采集设备进行数据的收集,通过采集跨链智能合约A实现请求发起者身份的验证,并通过哈希锁定、非对称加密的方式对数据加密后分片存入中继链,中继链各个节点通过博弈的方法实现归整权的分配,通过采集跨链合约B依据数据摘要对数据进行预存储,获取到相应的存储地址,并将地址通过相同的哈希锁进行加密,通过采集跨链合约A以及采集跨链合约B之间的相互调用实现加密数据的相互解密,最后在规定时间内实现数据的安全存储。对于监管数据跨链,主链监管节点发起数据调用查看请求,监管跨链智能合约A 对其身份进行验证,之后对请求数据进行预处理,并将该请求发送至平行链,通过共识,平行链将数据传输至监管跨链智能合约A,监管跨链合约A对其进行哈希锁定以及非对称加密后分片传入中继链,中继链博弈获胜节点对数据进行归整后,发送给监管跨链合约B,监管跨链合约B将该监管部门身份证明文档使用相同哈希锁加密后,通过与监管跨链合约A的相互调用,实现数据的解密。最后监管跨链合约B将数据发送给该监管部门,监管跨链合约A 将该监管部门的调用信息存储在平行链上面,实现数据交互记录的上链存储。

如图3所示,本发明的基于平行区块链和智能合约的稻米供应链信息监管办法如下步骤一至步骤八。

步骤一、将稻米供应链信息监管模型架构分为了主链、平行链以及中继链三种不同类型的区块链,其中主链节点为各个监管部门、上链企业以及消费者,平行链为数据存储链,中继链为数据跨链中转链。

主链上节点存储的为数据的摘要信息,包括数据类型、节点身份等。

中继链上的节点只做数据中转。

步骤二、将整个稻米供应链分为种植、收储、加工、仓储、运输和销售六大基础环节;

收储环节包括收购、干燥、除杂和入仓4个小环节,加工环节包含垄谷、碾米、色选、抛光和包装5个小环节。

步骤三、将以上各环节数据划分为9条平行链存储,分别对应有害物信息、企业信息、消费者信息、监管机构信息、交易记录、成本信息、数据交互记录、卫生记录以及其他信息。其他信息中记录不属于其他类的数据信息。为了便于说明,依次为9条平行链编号为1~9。

步骤四、将上述数据的隐私以及权限进行划分。

上述数据所有者分为了三类,分别为企业、监管机构以及消费者。对于企业,其拥有数据存储于平行链1,2,5,6,8,9等6条区块链,其中平行链2,5,8,9等4条区块链所包含数据为共享数据,平行链1,6中相关有害物信息以及成本信息等数据为不公开数据。对于监管机构,其拥有数据存储于平行链4,7两条区块链,其中平行链4所包含数据为共享数据,平行链7 所包含数据为不公开数据。对于消费者,其拥有数据为平行链3,该条区块链数据为共享数据。

在访问权限上,企业以及消费者在验证身份后,能够访问所有的共享数据。监管机构在实行监管行为时,根据所拥有权限访问相应的数据。其中国家粮食局能够对所有平行链数据进行访问,财政部能对第2,3,4,5,6,7,8,9条平行链数据进行访问,卫生部能对第1,2,3,4,5,8,9 条平行链进行访问,国家工商总局能对第2,3,4,5,8,9条平行链数据进行访问,国家质检总局能够对第1,2,3,4,5,7,8,9条平行链数据进行访问。农业部能够对第2,3,4,5,7,8,9条平行链数据进行访问。

步骤五、稻米供应链每个批次所涉及到的参与企业、监管部门以及消费者利用采集跨链机制进行数据实时采集上链。采集跨链机制共涉及两个智能合约分别为采集跨链合约A (CCSC-A),采集跨链合约B(CCSC-B)。采集跨链合约A和B主要实现数据的采集、加密、分片、博弈、存储和攻击自动防御。

如图4所示,具体的采集上链过程为:

首先,各种企业、监管机构和消费者需要在供应链上获得认证。当数据需要存储在链上时,用户向CCSC-A发送请求。CCSC-A经过身份验证后,存储权限将向用户开放。采集设备采集到的数据首先进行标准化处理,形成所有数据D和数据摘要Ds之后,CCSC-A对D 进行哈希锁加密,形成密文Dn,具体哈希锁加密方式为:随机生成随机数N,然后生成N的唯一哈希值H(N),其中N是D的解密密钥,H(N)是D的加密锁。CCSC-A获得用户的公钥 pkp,利用pkp对Dn、Ds和H(N)进行加密形成数据包DATA。CCSC-A将DATA分片传输到中继链,即中继链上每个节点只拥有DATA的一部分。然后,设计时间锁T,在T范围内,中继链的每个节点达成共识,并通过博弈随机选择一个节点进行DATA还原。在还原过程中,中继链的每个节点对DATA切片进行背书。当时间T结束时,中继链的每个节点将自动加密 DATA切片,并将加密结果返回给CCSC-A进行验证。当CCSC-A接收到中继链中超过51%的节点返回的结果时,可以确定中继链中的DATA切片已被处理。中继链各个节点背书完成后,CCSC-B获取用户的私钥skp进行解密,并获取Ds、Dn和H(N)。CCSC-B调用并发机制对Ds进行处理,然后对Ds进行预存储并返回地址AD。之后,CCSC-B使用H(N)来加密AD。 CCSC-A调用CCSC-B,合约输入N,解密以获得AD,并将其存储在主链上。CCSC-B获得 N后,对Dn进行解密,获取到D,以相同操作获取到数据摘要将其与Ds进行匹配,验证D 是否被篡改。最后,根据AD将数据存储在链上。以上数据交互需在T时间内进行且只交互一次,否则CCSC-A对本次数据上链进行终止。

合约具体流程如算法1,2所示:

算法1:采集跨链智能合约A(CCSC-A)

Input:H(user);D;Dn;DATA;Ds;T;AD;CCSC-B;pkp;Y;F;

步骤1:func Certification(H(user))(D)//数据采集模块

步骤2:func Hash lock(D)//数据加密模块

步骤3:func Slice(DATA)//数据分片模块

步骤4:func Game(Relay chain

步骤5:func Get(AD)//存储模块

算法2:采集跨链智能合约B(CCSC-B)

Input:DATA;CCSC-A;N;skp

步骤1:func Get-Crack(DATA,skp)//获得DATA,使用用户skp解密获得Ds,etc.

步骤2:func Pre-stored(Ds)//通过数据摘要进行预存储

步骤3:func Get(N)//获得N

步骤4:func Storage(D)//通过预存储地址存储

其中,H(user)为用户唯一哈希;Y为存储成功证明;F为存储失败通知。

步骤六、主链监管机构需要对数据进行调用监管时,采用监管跨链机制对数据进行跨链调用。监管跨链机制共涉及两个智能合约分别为监管跨链合约A(SCSC-A),监管跨链合约 B(SCSC-B)。监管跨链合约A和B主要实现人员的权限验证,数据加密、分片、博弈、存储和攻击自动防御。

如图5所示,具体的跨链监管过程为:

首先,主链上的监管机构节点向SCSC-A发送监管请求,并将所需的监管跨链数据请求提交给SCSC-A。SCSC-A验证其唯一的哈希值,如果权限匹配,则请求通过。首先,SCSC-A对监管跨链数据请求进行标准化。所需数据可能存在于多条并行链,所以,SCSC-A采用并发机制对监管机构要查看的数据进行预处理。SCSC-A明确监管跨链数据存储于平行链的位置,并将该请求放入每条平行链的跨链等待队列。每条平行链向SCSC-A发送数据,合约对其进行整合,形成监管跨链数据Data。SCSC-A形成一个随机数M,并生成唯一的哈希值H(M)。 H(M)对Data进行加密,形成密文Dn。同时,时间锁T被SCSC-A设置。SCSC-A调用主链监管部门的pkp对Dn和H(M)进行加密,形成数据包DATA。然后将数据包分片存入中继链。中继链各节点对切片数据进行背书,通过SPBFT共识机制随机选择排序节点,还原DATA,并传输至SCSC-B。当时间间隔T到来时,中继链的各个节点对链中的数据进行随机加密和锁定,并将加密后的哈希值返回给SCSC-A。当SCSC-A接收到中继链中51%以上的节点反馈时,可以确定中继链中的跨链数据已经完全销毁。SCSC-B从监管部门获取skp和权限认证证书S,用skp对DATA进行解密,得到Dn。SCSC-B使用同一个H(M)加密S,SCSC-A 调用SCSC-B,用M解密,得到S,上传到平行链记录本次数据交互。最后,SCSC-B同时获取随机数M,对Dn进行解密,得到Data,传送给监管部门。同时,中继链中的数据切片自动销毁。SCSC-B解密后,向SCSC-A发送解密成功消息,本次数据跨链完成。如果在时间范围T内,SCSC-A没有收到消息,则本次跨链失败,SCSC-A启动应急措施,对所有涉及的跨链数据进行加密和阻塞。

合约具体设计如算法3,4所示:

算法3:监管跨链智能合约A(SCSC-A)

Input H(S);Ds;S;SCSC-B;V;IR;DATA

步骤1:func Certification(H(S))//身份验证;

步骤2:func Pretreatment(D)//跨链请求处理

步骤3:func Integration(Data)//建立Data

步骤4:func Slice(DATA)//DATA分片存入中继链

步骤5:func Storage(IR)

步骤6:func Destroy(S)//Call SCSC-B,decrypt,and get S

步骤7:func Determine(V)//哈希锁

算法4:监管跨链智能合约B(SCSC-B)

Input Data;M;SCSC-A;skp;T;DATA

1:func Decrypt(DATA)//使用skp解密DATA

2:func Get(M)//获得M,交换S

3:func Get(Data)//解密获得Data

4:func Transport(Data)

5:func Self-defense(T,SCSC-A)//攻击抵御

其中,H(S)为监管部门哈希值,V为解密成功通知,IR为数据交互记录。

步骤七、上述SCSC-A跨链请求处理中提到的并发机制如图6所示,具体过程为:

首先对所需要跨链的数据包Data进行定义,每个数据包含多条跨链数据,如公式(1)所示。公式中每条数据与申请人哈希相关联,数据呈三维表现形式,其中i为稻米批次,j为稻米数据所处环节,m为该数据类型所在表中的具体行数,也即如表1中关键数据的第m个参数。分别对这三个变量进行了规定,其中j对应稻米供应链共13个环节,m值对应所需跨链的数据在9条平行链中的具体位置。

K-means算法原理为依据数据样本间关联的量度标准,对样本数据进行自动聚类的一种无监督学习算法,其目标函数如公式(2)所示。式中,k为聚类的个数;n

本发明设计了二次聚类的方法对跨链数据的并发性预处理,K-means算法设计如下所示:

初始聚类。首先依据预设的9条平行链数据存储范围初始化k值,k值为数据包Data中数据横跨平行链的个数。对每个聚类依据m值确定初始质心,如公式(4)所示。质心c值为聚类中所有m值的均值。初始聚类中,本发明将数据包Data中所有数据条的m值按从小到大排序后,平均分为k份,然后求每一份的m的均值作为初始质心。初始聚类是对跨链数据进行m值上的聚类,目的为第二次聚类做准备。

公式(4)中,n表示某份中跨链的数据条数,m

二次聚类。按照i,j值的相近程度,在第一次聚类的基础上进行2次聚类。采用二次聚类的方法可以使得数据包Data中的数据聚类后形成同一或相近批次、环节的存储位置相近,从而减少搜索的计算量。

布隆滤波器为一种二进制的数据结构,用于判断一个元素是否在一个集合之中。当数据包Data经过K-means算法聚类之后,会形成k个数据块。此时只需要验证每个数据块中随机一条数据,即可判断该数据块中所有元素的所属平行链名称。具体来说,对每一条平行链设计一个布隆滤波器,每条平行链中包含的数据的哈希H(x)提前映射到布隆滤波器上。当需要验证时,只需要9条平行链的布隆滤波器对待确定数据进行判断,即可进行具体分类。当大量数据需要进行跨链时,设计时间关卡“T”来控制每次跨链的数据。对T时间内的数据包通过 K-means算法以及布隆滤波器的有机结合进行快速确定每个数据包中数据所处的平行链,进而提高数据跨链的效率,对跨链数据高并发问题进行解决。

步骤八、上述机制的通信依赖于SPBFT共识机制,如图7所示:

采用“Chain link Chain”的共识方式,实现了主链、平行链、中继链之间共识的达成。对于主链,各个监管节点、企业节点以及消费者节点通过每个阶段的节点状态(一致度)对消息进行处理,实现消息达到完全处理状态,从而实现共识。对于平行链以及中继链,各节点通过SPBFT共识算法实现信息状态从平行链迁移到主链,实现平行链各节点以及主链各节点状态的一致性,实现“Chain link Chain”->“Node link Node”这一共识过程。

具体的通信过程如图8所示:

SPBFT共有6个步骤,相较于PBFT共识机制,增加了competition步骤,以适应多链共识,具体描述如下:

I、Request:客户端C向主链节点发送请求request。

II、Pre-prepare:主链节点将该请求分配唯一编号n,并与request共同组成pre-prepare 消息,进行签名后,将pre-prepare消息传递给所有成员节点。唯一编号n由三部分组成,分别为类型、平行链编号以及请求编号,这里的平行链编号只有当平行链共识时进行赋值,其余情况预置为0,目的在于解决多链共识并发问题。成员节点是指的平行链上的节点或中继链上的节点。

III、Prepare:当成员节点收到pre-prepare消息后依靠签名判断消息的正确性,并判断接收与不接受。确认无误后将本节签名与n共同组成prepare消息,并将消息广播至其他所有成员节点。

IV、Commit:所有节点收到prepare消息后,通过签名验证正确性。若每个节点收到prepare消息数量超过全部节点数量的三分之二,向所有节点广播commit消息,表示该主链节点可以进行该请求业务。

V、Competition:Competition阶段专用于中继链共识,初始定义中继链各个节点全部为可信节点。中继链的所有节点收到commit消息后,每两个节点进行自由博弈,所有节点将博弈信息与博弈轮次、签名组成博弈消息进行广播至其他节点,其中签名为博弈失败节点进行的签名认证。其他节点收到消息后,通过验证签名以及签名个数,对获胜节点进行确定。获胜节点进行第二轮博弈,并发送博弈消息,直至K轮次后选出唯一获胜节点。获胜节点将博弈信息以及其他节点签名组成博弈消息competition发送给中继链的所有节点。K为正整数。

VI、Reply:所有节点,若收到commit消息,对消息正确性进行验证,若commit的消息数量超过所有节点数量的三分之一,则完成request请求的业务,并构建reply消息回复给客户端。客户端根据是否收到超过三分之一个节点的正确回复,判断系统是否完成了请求request。对于中继链共识,所有节点收到competition消息,对消息的正确性进行验证,获胜节点完成 request请求的业务,并构建reply消息,直接回复给客户端。客户端依据是否收到超过三分之一个节点的正确回复,判断系统是否完成了请求request。

具体共识过程为:客户端在主链发起request消息,主链将该消息广播至平行链各个节点。平行链各个节点独立完成I-IV步骤,在第VI步骤构建完成reply消息后跨链至主链各节点,该reply消息作为request在主链进行第二轮次的共识,主链各节点达成reply-1消息后直接回复至客户端。

对于中继链共识,其共识的达成涉及中继链各个节点以及主链各个节点。具体为:客户端在主链发起request消息,主链将该消息广播至中继链各个节点。中继链各个节点独立完成 I-V步骤,在第VI步骤构建完成reply消息后跨链至主链各节点,该reply消息作为request 在主链进行第二轮次的共识,主链各节点达成reply-2消息后直接回复至客户端。

实施例:

本发明针对每条平行链存储的数据类型不同,依据相关国家\地方\行业标准、稻米供应链各环节实际产生数据等整理出超过200个类型的关键数据。数据涵盖稻米从种植到食用流通全流程。并规定9条平行链分别对应有害物信息、企业信息、消费者信息、监管机构信息、交易记录、成本信息、数据交互记录、卫生记录以及其他信息,每个批次所产生的关键数据分类如表1所示:

表1平行链数据划分

对相关监管部门的权限进行分类,其数据监管权限如表2所示。针对各个监管部门的性质的不同,对各部门有权监管访问的平行链进行规定,在应用层面上保证了数据的隐私以及安全。

表2监管权限表

然后构建稻米供应链信息监管模型。稻米供应链跨链模式分为了采集数据跨链以及监管数据跨链,分别对应数据的可信跨链存储以及可信跨链监管。

(一)采集数据跨链。

主链参与企业节点利用数据采集设备进行数据的收集,通过采集跨链智能合约A实现请求发起者身份的验证,并通过哈希锁定、非对称加密的方式对数据加密后分片存入中继链,中继链各个节点通过博弈的方法实现归整权的分配,通过采集跨链合约B依据数据摘要对数据进行预存储,获取到相应的存储地址,并将地址通过相同的哈希锁进行加密,通过采集跨链合约A以及采集跨链合约B之间的相互调用实现加密数据的相互解密,最后在规定时间内实现数据的安全存储。

(二)监管数据跨链。

主链监管节点发起数据调用查看请求,监管跨链智能合约A对其身份进行验证,之后对请求数据进行预处理,并将该请求发送至平行链,通过共识,平行链将数据传输至监管跨链智能合约A,监管跨链合约A对其进行哈希锁定以及非对称加密后分片传入中继链,中继链博弈获胜节点对数据进行归整后,发送给监管跨链合约B,监管跨链合约B将该监管部门身份证明文档使用相同哈希锁加密后,通过与监管跨链合约A的相互调用,实现数据的解密。最后监管跨链合约B将数据发送给该监管部门,监管跨链合约A将该监管部门的调用信息存储在平行链上面,实现数据交互记录的上链存储。

具体实施例:

对设计的稻米供应链多链监管模式进行实验仿真,采取1台云服务器,服务器配置为4 核CPU、8G内存以及50G高性能云硬盘。云服务器设置32个节点,其中8个作为主链节点,分别对应稻米供应链6个主要环节中的代表企业以及2个监管部门。6个作为中继链节点进行布置,中继链博弈采取CFR(虚拟遗憾最小化算法)。剩余18个节点搭建3条平行链,每条平行链部署6个节点,分别对应存储的企业信息,监管者信息以及成本信息。通过分别设置不同的恶意节点以及错误节点来测试稻米供应链多链监管模式中跨链传输的正确性。测试集共分为3组,每组的错误节点个数分别为0,1,3,每组测试集分别进行500次采集数据跨链以及监管数据跨链。由于平行链以及中继链节点可信,将故障节点部署到主链节点进行测试,SPBFT共识机制能够有效的对30%以下(仅对主链节点)的故障节点进行容忍,跨链成功率达到100%,可以充分保证数据跨链传输的安全。

对稻米供应链多链架构的性能进行测试分析,主要针对跨链并发性问题进行测试。对于并发问题本发明采取二次聚类以及在每条平行链配备一个布隆滤波器来解决跨链出现并发情况。

通过实验仿真在同一时刻进行50000组数据的跨链传输,来测试稻米供应链的并发处理能力。首先,本发明设计的并发机制首先进行第一次聚类,聚类情况如图9(a)所示,聚类成功后,每个簇随机挑选一个数据与每条平行链上的布隆滤波器进行筛选,以此确定每一个簇所代表的平行链。第一次聚类总用时0.60823秒,共迭代6次,结果显示,数据在经过一次哈希转化后即可匹配相应的平行链位置。第二次本发明针对第一条链的12695组数据进行二次聚类,以方便数据的查找,聚类情况如图9(b)所示。第二次聚类总用时1.32542秒,共迭代22次,结果显示,测试数据集存储在第一条链的数据集中在第63批次以及第101批次左右。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。本发明省略了对公知组件和公知技术的描述,以避免赘述和不必要地限制本发明。上述实施例中所描述的实施方式也并不代表与本申请相一致的所有实施方式,在本发明技术方案的基础上,本领域技术人员不需要付出创造性的劳动即可做出的各种修改或变形仍在本发明的保护范围内。

相关技术
  • 基于平行区块链和智能合约的稻米全供应链信息监管方法
  • 一种基于智能合约的稻米供应链信息动态监管方法
技术分类

06120114743223