集团型企业内部在开展网络化协同研发设计过程中,高价值资源共享使用所产生的数字痕迹存在易被篡改、易泄露、信息真实度存疑等安全问题,导致资源供需双方共识度低、可信度差,严重影响资源共享意愿和共享效果。为此,本文提出了一种基于区块链的集团企业研发设计资源共享追溯方法及解决方案,利用区块链中的联盟链模型、加密算法、分布式账本、共识机制等,实现集团企业在网络化协同研发设计过程中资源共享、数字痕迹安全保密、防篡改、去中心化存储等目的;提出基于数字痕迹的共享链路模型,支持历史痕迹多维度追溯查询。同时针对Hyperledger Fabric框架内部存储与查询方式存在查询效率随着数据量变多而明显下降这一问题,提出了基于多维度的索引表数据切分策略,通过数据切分阈值与索引表,显著提升追溯查询效率与查询速度。通过原型系统的搭建及实验验证,本文所提方案能够支撑网络化协同设计中资源共享行为数字痕迹可靠存储和高效率追溯查询。 In the process of networked collaborative R & D and design within group enterprises, the digital traces generated by the shared use of high-value resources have security problems such as easy tampering, easy leakage, and doubts about the authenticity of information, resulting in low consensus and credibility between the resource supply and demand parties, poor degree, seriously affecting the willingness and sharing effect of resource sharing. To this end, this article proposes a blockchain-based method and solution for group enterprise R & D and design resource sharing and traceability, using the alliance chain model, encryption algorithm, distributed ledger, consensus mechanism, etc. in the blockchain to realize group enterprise in the process of networked collaborative R & D and design, resource sharing, digital trace security, anti-tampering, decentralized storage, etc.; proposes a shared link model based on digital traces to support multi-dimensional traceability query of historical traces. At the same time, in view of the problem that the query efficiency of the internal storage and query mode of the Hyperledger Fabric framework decreases significantly as the amount of data increases, a multi-dimensional index table data segmentation strategy is proposed, and the data segmentation threshold and index table are used to significantly improve traceability, query efficiency and query speed. Through the construction of the prototype system and experimental verification, the solution proposed in this paper can support the reliable storage of digital traces of resource sharing behaviors and high-efficiency traceability query in networked collaborative design.
集团型企业内部在开展网络化协同研发设计过程中,高价值资源共享使用所产生的数字痕迹存在易被篡改、易泄露、信息真实度存疑等安全问题,导致资源供需双方共识度低、可信度差,严重影响资源共享意愿和共享效果。为此,本文提出了一种基于区块链的集团企业研发设计资源共享追溯方法及解决方案,利用区块链中的联盟链模型、加密算法、分布式账本、共识机制等,实现集团企业在网络化协同研发设计过程中资源共享、数字痕迹安全保密、防篡改、去中心化存储等目的;提出基于数字痕迹的共享链路模型,支持历史痕迹多维度追溯查询。同时针对Hyperledger Fabric框架内部存储与查询方式存在查询效率随着数据量变多而明显下降这一问题,提出了基于多维度的索引表数据切分策略,通过数据切分阈值与索引表,显著提升追溯查询效率与查询速度。通过原型系统的搭建及实验验证,本文所提方案能够支撑网络化协同设计中资源共享行为数字痕迹可靠存储和高效率追溯查询。
区块链,数字痕迹,共享链路,共享追溯,多维度追溯
Han Lin
Tiangong University, Tianjin
Received: Nov. 8th, 2021; accepted: Dec. 6th, 2021; published: Dec. 13th, 2021
In the process of networked collaborative R & D and design within group enterprises, the digital traces generated by the shared use of high-value resources have security problems such as easy tampering, easy leakage, and doubts about the authenticity of information, resulting in low consensus and credibility between the resource supply and demand parties, poor degree, seriously affecting the willingness and sharing effect of resource sharing. To this end, this article proposes a blockchain-based method and solution for group enterprise R & D and design resource sharing and traceability, using the alliance chain model, encryption algorithm, distributed ledger, consensus mechanism, etc. in the blockchain to realize group enterprise in the process of networked collaborative R & D and design, resource sharing, digital trace security, anti-tampering, decentralized storage, etc.; proposes a shared link model based on digital traces to support multi-dimensional traceability query of historical traces. At the same time, in view of the problem that the query efficiency of the internal storage and query mode of the Hyperledger Fabric framework decreases significantly as the amount of data increases, a multi-dimensional index table data segmentation strategy is proposed, and the data segmentation threshold and index table are used to significantly improve traceability, query efficiency and query speed. Through the construction of the prototype system and experimental verification, the solution proposed in this paper can support the reliable storage of digital traces of resource sharing behaviors and high-efficiency traceability query in networked collaborative design.
Keywords:Blockchain, Digital Trace, Shared Link, Shared Traceability, Multi-Dimensional Traceability
Copyright © 2021 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
随着工业互联网、智能工厂等智能制造技术的不断发展,网络化协同制造、云制造等新型制造模式不断涌现,极大地促进了集团型制造企业内部制造资源——特别是信息资源——在产品全生命周期内的传递、转移、共享和协作,进而形成以分布式协同研发设计、协同生产计划、协同供应链等为代表的协同制造、管理及运营体系 [
在传统的信息系统架构下,信息资源及其访问记录(操作日志)通常采用基于数据库或文件系统的集中存储模式。这种方式存在单点故障、易被篡改、无法保证数据安全性等问题,使得存储记录出现问题后,各单位无法对中心化存储下的共享记录达成共识 [
为此,本文以集团型制造企业产品协同研发设计为背景,根据集团企业对研发设计资源共享的客观需求,提出基于区块链的集团企业研发设计资源共享追溯设计,并构建了基于该设计的追溯系统。通过设计智能合约,保证区块链中数据自主生成无人为干预,使得区块链中数据安全可靠。同时,针对现有区块链追溯模型在追溯方面存在维度单一,追溯效率低,追溯查询输入缺少灵活性,不适用于共享资源这种大数据量的追溯等问题,提出新的模型,进行优化改进,实现对共享资源的全过程高效率追溯。
近些年,由于区块链在数据安全以及数据信任方面的特殊地位,被应用到各种场景,国内外学者对区块链的不同方面展开不断研究。在数据访问控制以及安全方面,Ding等人 [
此外,在数据私密保护方面,Wang [
在追溯领域方面,仵冀颖等 [
以集团型制造企业产品协同研发设计为例,集团下属制造企业分布在不同地域,所有下属企业通过集团共享资源平台统一地共享研发设计资源。使用共享研发设计资源产生共享记录,共享记录永久存储。考虑到集团企业内对研发设计资源共享记录的保密,安全,防篡改,可追溯等方面的需求,区块链中的许可的联盟链模型具有去中心化、分布式存储、安全、防篡改、保密等特点,相较于公链模型可以更好地用于此场景。
本文以共享资源平台为数据来源,应用Hyperledger Fabric搭建基于数字痕迹与共享链路的集团型制造企业研发设计资源共享追溯系统,系统架构如图1所示。
图1. 基于区块链的网络协同研发设计资源共享追溯系统架构
整体架构整体是由资源共享平台、索引表和区块链组成。资源共享平台是与使用者交互的唯一途径,其中嵌入研发设计资源共享操作获取模块与共享资源追溯模块。操作获取模块监听集团企业中的用户使用研发设计资源的操作。共享资源追溯模块,提供与管理着交互的追溯功能。索引表根据共享链路的数据段建立,实现数据切分,并且对追溯请求进行响应。区块链内自成网络体系对外透明,peer节点负责存储,orderer节点负责排序,组织负责划分,智能合约负责实现存储共享链路模型与响应追溯请求。
架构中的上链流程:
步骤一:监听用户操作通过API、SDK封装成请求提交给区块链网络中的peer节点;
步骤二:peer节点根据智能合约自动执行,将操作生成数字痕迹,然后进行背书;
步骤三:背书后的结果,经过验证满足背书策略,则递交给orderer (排序)服务,通过共识机制达成共识,否则提交失败,返回用户操作请求失败;
步骤四:达成共识后,结果被打包成区块,通过Gossip协议分发给所有peer节点;
步骤五:peer节点验证区块,并将区块上链到区块链,同时根据标签创建/追加共享链路,修改本地数据库中的世界状态;
步骤六:到此共享链路创建/追加成功,随后进行创建或修改索引表;
步骤七:区块链、索引表都提交成功后,平台执行用户操作,以确保所有的数字痕迹都会被记录。
系统架构中的追溯流程:
步骤一:在追溯模块输入追溯字段,经过索引表不完全匹配,向客户端返回索引集;
步骤二:客户端根据索引集逐条形成请求通过API、SDK并发地发送给区块链网络中的peer节点;
步骤三:peer节点根据智能合约自动执行相关逻辑,返回结果响应。
集团企业对共享资源的管理体系有两大关键点,即:1) 同一资源多用户共享使用;2) 同一用户同时使用多个资源。这与现有区块链追溯模型不匹配 [
定义1 (数字痕迹):数字痕迹是指研发设计资源在共享使用过程中由信息系统产生的、直接反映资源供需主体共享行为的、经过规范化处理后的数字记录。
由于共享资源的形式和资源共享使用行为均存在多样性,产生的共享记录也会存在差异,因此需要规范化共享记录中的字段。规范后的数字痕迹仅保留共享记录中的关键因素,一定程度上使资源本身对系统透明。数字痕迹由时间Time、地点IP、用户User、共享资源Resource、操作Operation组成。此外为了增强多追溯维度各主体的唯一性,使其更好的服务于共享链路模型引入标识符UserID,ResourceID。
虽然数字痕迹的设计规范了基本单元,但数字痕迹生成后仍是简单的追加,物理上的堆积。为此提出共享生命周期这一概念,作为定义共享链路的一个重要依据。
定义2 (共享生命周期):共享主体在共享使用过程中所经历的拥有权的交接在逻辑上所形成的全部连续过程称为该共享主体的共享生命周期。
定义2中的交接是由于用户使用切换所形成的,具有随机性和不确定性。从一个共享主体被创建象征着生命周期的开始,到共享主体被去除,象征着生命周期的结束,中间穿插着各种相关的用户使用操作。共享生命周期是一个逻辑上的概念,并没有确定的实体。
共享链路将数字痕迹与共享生命周期结合起来,通过链表的方式将同一追溯主体的数字痕迹按照交接逻辑顺序链接起来。从表头开始可以追溯共享主体的整个共享生命周期。共享链路的数目取决于共享主体的数目,所有的共享链路构成了共享链路模型。当同一数字痕迹对应多个共享主体时,共享链路就会出现公共节点。多个公共节点连接也称为公共共享链路段,此时的共享链路模型,从多条链表转变为有向无环图。本文为了解决追溯维度单一问题,针对于应用背景,考虑用户与资源两个维度的追溯,对同一数字痕迹创建两个追溯主体。因此本文中的共享链路模型为图,图中每个节点的最大出度和入度为2。
共享链路的实现基于数字痕迹的数据结构和Hyperledger Fabric框架内部存储,通过向相应共享链路追加数字痕迹完成交接,被追加的数字痕迹作为世界状态,当前主体的拥有权由世界状态决定。本文背景下的共享链路模型如图2所示。
如图2所示,由于每一个用户与设备都具有唯一标识,因此共享主体也具有唯一性,同一共享主体不可被并行使用,共享主体会随着用户使用共享资源这一事件发生交接,由于本文中仅考虑基于用户与资源维度的追溯,因此在用户使用共享资源时就会发生两次不同维度的共享主体交接,分别是图中横向所示的以用户拥有权作为共享主体的用户维度的交接与图中纵向所示的以资源拥有权为共享主体的资源维度的交接。交接会产生两个维度的相应数字痕迹作为记录节点,即图中的白色圆点,共享主体的数字痕迹会在共享生命周期内沿着时间轴不断的产生,并且自动被链接到对应共享链路的末尾,直到对应共享主体的共享周期结束,即产生如图中所示的黑色圆点的数字痕迹之前,共享主体会像是在沿着一条看不见的路被一直传递下去,这条路就是一条共享链路。而每一条共享链路的最后一个圆点便组成了对应维度的世界状态。
图2. 共享链路模型
在提出了共享链路模型的基础上,需要对区块内存储的数字痕迹进行快速追溯查询。传统Hyperledger Fabric对于追溯的实现是通过迭代器的方式迭代出所有的记录,然后以一次查询交易响应的方式返回所有数据。这种方式的缺点在于:随着时间的变长,一条共享链路的数据量会越来越巨大,一次追溯响应数据量也会变大,造成延时导致追溯效率降低。
为了解决这一问题,在Hyperledger Fabric之上设计了一个索引表。索引表可以根据不同的需求设计,通过唯一标识符将共享链路拆分成多个数据段。例如:索引表组成可以为:共享主体名称、共享主体ID、操作数量(用于阈值划分)、共享链路段唯一标识符(用于映射关系),将对于一条共享链路的追溯请求变成多次,并发进行以减少每次查询的数据传输量以及等待时间,提高查询效率。拆分逻辑依赖于索引表中的数量自增,当数量到给定阈值后,生成新的索引,序号自增。根据索引表是表的这种特性,将表以关系型数据库的形式存储,从而使得对于表中字段的查询支持不完全查询,提升了追溯功能。索引表设计如图3所示,其中ptr与timestamp组成一个数据结构,在一个共享链路段中的数量等于操作数量。
图3. 追溯优化索引表设计
智能合约是Hyperledger Fabric中定义自动执行逻辑的可执行代码,是一种触发式脚本,只需定义触发条件,触发后执行的逻辑,即可自动化执行,无法通过外部进行干预,因此区块链只能运行已规定的智能合约中的执行逻辑,智能合约是操作区块链的唯一途径。本文设计的智能合约实现对于共享链路的创建、追加、追溯功能,数据一旦上链存储在区块链中将不可篡改但可追溯。就针对于本文中的共享链路模型而言,算法流程总结如图4所示。
算法1 共享链路的创建与追加的伪代码流程如下:
(1) 输入用户操作的共享记录
(2) 生成数字痕迹(time,ip,owner,ownerid,object,objectid,operation)
(3) existing, err:=ctx.GetStub().GetState(UserPart)
// 通过context.GetStub()获取数据库grpc Client
// 通过grpc Client调用GetState(共享链路段)检查用户维度共享链路段是否存在
(4) If existing == nil
(5) Create UserPart // 当前数字痕迹作为用户维度共享链路的起始数字痕迹
(6) else // existing中返回最新用户维度共享链路段的起始数字痕迹
(7) Update UserPart // 向用户维度最新共享链路段末尾追加
(8) existing, err=ctx.GetStub().GetState(ResourcePart) // 检查用户维度共享链路段是否存在
(9) If existing == nil
(10) Create ResourcePart // 当前数字痕迹作为资源维度共享链路的起始数字痕迹
(11) else
(12) Update ResourcePart // 向用户维度最新共享链路段末尾追加
算法2 共享链路段追溯的伪代码流程如下:
(1) 输入要追溯的共享链路段
(2) existing, err:=ctx.GetStub().GetState(Part)
(3) If existing == nil
(4) return “” // 返回空字符串
(5) else
(6) HistoryIterator,err := ctx.GetStub().GetHistoryForKey(Part)
(7) for HistoryIterator.HasNext()
(8) HistoryIterator.Next() //Part向后遍历
(9) return Json格式的追溯结果
图4. 智能合约算法流程
通过智能合约,系统将自动判断接收到的请求是共享链路的创建、共享链路的追加还是共享链路段的追溯,根据请求自动执行。如果自动判断为共享链路的创建或追加将进行背书等上链操作,一旦数字痕迹上链将成为区块中的内容,不可被篡改。智能合约中关于数字痕迹的合法性将通过智能合约中的代码读取世界状态与当前操作生成数字痕迹进行匹配从而自动判断,并且对于不同维度的共享链路的存在也将通过索引表与世界状态的历史版本进行自动查询判断。如果自动判断为共享链路段的追溯,追溯请求不属于共享用户操作的范畴内,因此只需要通过索引表与世界状态的历史版本进行对共享链路存在的判断,不必要进行上链,因而直接从peer节点返回结果数据集,有助于提高追溯效率。
系统测试的开发环境是部署在2台8核3 G内存的虚拟主机中,系统为CentOS7,Hyperledger Fabric版本选用fabric-sample,此外还配置了docker,docker-compose等依赖工具,所搭建的节点有1个Orderer节点,2个Peer节点,3个CA节点,1个Mysql服务节点。
区块链测试,通过执行编写好的脚本程序,程序中自动触发生成资源共享平台上的相关操作事件,通过登录的3个用户在不同的IP地址、不同的时间使用不同的资源轮流依次的执行,通过API、SDK向搭建的区块链网络系统发送交易请求,测试共享链路的创建、追加、追溯的可用性,执行后以及查询出的请求结果,以Json形式展现在终端窗口。如图5所示:
图5. (a) 智能合约算法流程;(b) 共享链路的追溯结果输出
结合资源共享平台的测试,通过用户账号身份打开资源共享平台客户端,在相应的模块提供的输入框中随机输入想要查找的字段信息,测试过程中分别对各个字段不同维度进行了不完全查询,系统可以稳定的输出按照共享链路查询的结果并将结果展示,结果如图6所示:
图6. (a) 用户名称不完全追溯结果;(b) 用户ID不完全追溯结果;(c) 资源名称不完全追溯结果;(d) 资源ID不完全追溯结果
追溯时间测试,搭建三个相同的测试环境,一者为不进行数据切分的原始系统,一者为数据切分阈值为50的系统,还有一者为数据切分阈值为100的系统,通过编写好的执行脚本,自动触发生成资源共享平台的相关操作事件,产生足够的测试数据,分别在自动执行相同的数据量之后,通过在发送请求前开启计数函数,在接收到请求之后关闭计时函数的方式,测试通过对比不同数据规模下的不同数据切分阈值与不进行数据切分的同一共享链路的平均追溯时间,验证索引表对于追溯的优化效果。测试数据切分阈值根据平台页面展示最大数量设定为50、100。在不同系统中通过自动执行脚本设置,每当同一共享链路数据量每增加一万,进行50次测试,测试结果经过格拉布斯准测剔除偏差较大的异常值,准则中ɑ = 0.05,n = 35,最后求得平均追溯时间。结果如图7所示。
测试结果表明:Hyperledger Fabric内部的历史查询与返回方法是造成上图追溯速度出现明显差异的原因。Hyperledger Fabric内部的历史查询方法中使用迭代器对数据进行历史追溯,并且迭代后的数据会被全部收集后一次性地发送给追溯端。而引入索引之后可以并发开启多个查询请求,每次查询只需查询到定量的数据就会返回,将追溯端的等待时间缩短。随着集团企业间的共享的时间变长,数据量变大,加入索引的系统在追溯效率上的优势将越发明显,并且索引的添加过程并不复杂,因此本文对于系统追溯效率的优化完全可适用于生产实践。此外根据不同的切分阈值所展示的结果,还可以推测出必然存在一个确切的数据切分阈值,可以达到追溯时间最短。
图7. 追溯时间测试结果
区块链的安全、保密、防篡改为集团企业对共享资源追溯中的共享记录可信任问题提供了新的解决思路。本文首先针对于集团企业对共享资源追溯对保密、防篡改、可信任的需求与现有追溯模型不匹配,且追溯维度单一的问题,提出了一种基于区块链的集团企业网络化协同研发设计资源共享追溯设计。其次对于架构设计的内部流程进行了说明,再根据共享记录规定数字痕迹,设计数据结构,提出共享生命周期、共享链路以及共享链路模型,形成多维度追溯模型。然后结合Hyperledger Fabric实现,通过智能合约将数字痕迹的上链、实现共享链路的创建、共享链路的追加以及共享链路的追溯。最后,分析Hyperledger Fabric内部对于追溯的实现方式,设计更高效的追溯方法,从追溯维度、速度、追溯输入约束等多方面提升追溯效率,并结合测试加以验证。通过对于同一共享链路不同数据切分阈值的对比,表明本文引入索引表在追溯功能上的提升。
基于区块链的网络协同设计资源共享追溯方法,目前已经实现了追溯维度与效率的提升,但是仍有很多问题亟待解决,需要通过实际的使用过程与开发中积累的经验,进一步完善,在目前的研究中发现其中包含以下几点:
1) 系统部署起来比较麻烦,步骤繁琐,而且对于系统的后期运维、维护方面目前还没有制定完善的策略,后续将系统通过K8S云计算技术进行部署以及维护,增强系统的可维护性。
2) 本文中的系统对于任何用户都开放追溯查询权限,在权限的分发上可以结合现有的权限管理方式研究在用户权限中做相应的限制,防止用户权限的滥用。
3) 本文提出的区块链系统可以保障数据的一致性安全持久化存储,但是当资源使用出现问题后,对于出现问题的分析仍需要依靠专业技术人员判断。未来可以结合深度学习、人工智能、专家分析等技术,实现问题数据自动发现,使得系统更加智能、更加方便、更加自动化。
国家重点研发计划“分布式研发设计资源集成管理与共享关键技术”(2018YFB1701802)。
林 翰. 基于区块链的网络协同设计资源共享追溯方法Blockchain-Based Network Collaborative Design Resource Sharing and Tracing Method[J]. 计算机科学与应用, 2021, 11(12): 2900-2912. https://doi.org/10.12677/CSA.2021.1112294