1. 引言
随着第四次工业革命的快速发展,工业互联网将大力推动工业制造向信息化、智能化发展。工业互联网平台是基于现代制造业的海量数据进行采集、汇聚、分析的服务体系,支撑生产资源实时连接、供给和配置的平台。其本质是在传统云计算平台的基础上加入物联网、大数据、人工智能等新兴技术,利用高效的数据采集体系与面向工业大数据的管理开发环境,实现工业相关经验、技术、知识的模型化、复用化,不断提高设计研发、生产制造等资源配置效率,最终形成资源富集、合作共赢的制造业生态 [1]。
工业互联网中的数据具有种类众多、数据量庞大的特点 [2]。企业生产数据是工业互联网数据的重要组成部分之一,正确高效地存储与使用企业生产数据是企业生产过程优化与效率提升的前提 [3]。但是,在现有的集中式数据存储与管理模式中,已无法实现对企业生产数据实现安全、稳定、可靠的存储要求。在这种存储模式中,一旦服务器在外部攻击下崩溃,必然导致服务器中存储数据的丢失或被破坏,此类数据将不再具有任何使用价值,之前为存储这些数据所使用的资源也被浪费。数据一旦出现被窃取、篡改、删除,甚至虚假捏造的情况,将势必对企业的安全生产带来严重威胁与隐患。
区块链技术的出现为工业数据可信存储提供了可行的解决方案。区块链技术本身具有去中心化、点对点传输、不可篡改、可追溯、分布式存储等技术优点,经过多方共同维护可以实现在不需要第三方信任机构的情况下,将数据存储达到去中心化、可信、难以篡改的目的 [4] [5]。所以,通过区块链技术对数据进行可信存储,同时对数据添加严格的访问权限条件,足以充分保证所保存数据的真实可信。但是,区块链技术目前因自身区块结构限制,导致系统效率与吞吐量不足,很难满足在数据规模庞大的场景中使用。
因此,本文针对工业互联网中工业数据如何实现可信存储的问题,提出了一个基于IPFS优化的联盟链解决方案。以联盟链自带的用户准入机制,以及安全、可溯源、不可篡改的特性,结合IPFS星际文件系统,添加基于无证书密码体制对数据哈希摘要进行加解密操作,共同构建一个工业数据可信存储系统,以实现在工业互联网场景下工业数据的安全可信存储。
2. 相关工作
学术界研究人员在运用IPFS、区块链技术在分布式存储、数据保护及共享等领域积极探索并取得了一定近展。周方明等人提出将利用物联网设备自动采集的焊接相关数据存入IPFS分布式存储系统中,大幅降低了原有数据存储成本 [6];高文涛等人基于IPFS分布式存储系统与区块链技术实现了去中心化的音乐数据共享平台 [7];范贤丽使用IPFS系统与区块链相结合,对粮食供应链隐私信息进行存储,保护了重要数据的安全不可篡改 [8];朱彦霞等人采用IPFS系统与区块链技术融合进行融媒体数据安全存储,降低了存储成本并节省了网络带宽 [9]。Zheng等人提出一种基于IPFS的区块链存储模型,以拓展比特币存储空间,旷工将交易数据存入IPFS,并将返回的IPFS哈希值写入区块链 [10]。Kumar等人提出一种基于区块链和IPFS的图像视频版权保护模型,使用IPFS存储图像和视频元数据,区块链仅存储图像指纹 [11]。谭海波等人提出一种基于区块链的档案数据保护与共享方法,结合IPFS存储档案数据,实现了数字档案的保护、验证、恢复与共享功能,该方法可拓展区块链数据存储能力、减轻链上数据高频访问压力 [12]。许丽等人以区块链技术在云存储平台的应用研究现状作为切入点,配合IPFS网络构建更具稳定性和安全性的云储存平台模型 [13]。但目前并没有使用IPFS结合区块链技术解决工业互联网中工业数据的安全、可信存储方面的研究。
3. 关键技术
3.1. 联盟链
联盟链,是区块链发展至今的核心产品,链内可存在多个组织机构进行共同维护 [14]。链内节点可分群组管理,不同群组由不同组织机构负责,实现不同功能与应用,多个群组在链中共同完成记账功能。通过对应设置,群组间可将特定信息在链内进行分享。如今,应用最多也是最广泛的就是联盟链,相较私链联盟链具有更多操作空间,相较公链联盟链具有更好的安全机制,联盟链因此具有最大的商业用价值。
联盟链具备多个技术优势:1) 去中心化。在联盟链内,同时存在多组织机构,多方共同管理维护整个联盟链,数据由不同组织机构分别管理,在内部实现共享,易实现共识;2) 可管理性强。公链中节点非常多,在区块发布时便会立即被全部节点共识,并接着这个区块继续出块打包记录交易,区块链链状结构一直延续下去。由于出块快且多,可以说只要上链便再无更改可能,但在联盟链当中,因为节点数量有限,交易数量有限,如果发布的交易有更改需求,只要大多数节点同意,即可再发布一次交易并在交易中添加说明,让之前上传的交易作废,重新记录在区块链上,这样间接完成了对已上链数据更改的要求,能满足部分特定场景的业务需求;3) 有节点准入权限控制。链内区块中的数据只有被认证的节点才能进行调用与获取,没有相关认证的节点是没有相关访问权限的;4) 交易速度快。由于联盟链具备严格的节点准入机制,所以联盟链中存在的节点数量往往比较有限,因为节点数量少所以在有交易时可实现快速同步并实现共识。
3.2. IPFS
IPFS (InterPlanetary File System),星际文件传输系统,是一个利用点对点传输建立的分布式超媒体分发协议。IPFS的设计中集成了DHT、BitTorrent、自认证文件系统SFS和Git的优点,IPFS被认为是最有可能取代 HTTP的新一代互联网协议,它提供了永久的去中心化存储文件的方法 [15]。IPFS基于内容寻址,将信息保存到IPFS节点中,IPFS系统将会返回基于该信息计算得出的唯一哈希值。哈希值与信息内容一一对应,即使只对信息做轻微修改,也会得到完全不同的哈希值。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。
IPFS可存入文件格式不受限制,存储空间也不受限制,具有通用性。若在系统中存入很大的文件,该文件会被分割成块,获取该文件时只需要从多个节点一起下载即可。IPFS是具有灵活性、细粒度、分布式的网络,能够胜任在网络中内容分发的任务。IPFS架构方便用户可以在上面做任何文件的分享与传播。
3.3. 智能合约
智能合约是区块链的关键组成部分。智能合约在区块链中可以比作一张电子合同,该电子合同已经提前写好了验证条件与执行条件,一旦触发要求就将自动按合同中写明的开始事务,过程中不可中断且自动执行 [16] [17]。该合同一旦部署于系统当中就不能在对其中的相关规定细则进行更改与删除,只要启动开始执行,不需要第三方的辅助,双方即可完成真实可信的交易,执行结果也不可逆转。智能合约完美契合了区块链的去中心化思想,是区块链在具体应用时重要技术手段,为区块链在金融、医疗、物联网领域的应用提供了重大的辅助作用。
3.4. 无证书密码体制
无证书公钥密码体制由Al-Riyami 和Paterson提出 [18]。在无证书公钥密码体制中,密钥生成中心通过与用户身份相绑定,为用户生成公私钥对,不存在传统公钥证书机制与秘钥托管问题,且密钥生成中心不能获知任何用户的私钥 [19] [20]。鉴于以上优势,无证书公钥密码体制从刚刚提出便得到了相关业内人士的关注与肯定,发展至今也诞生了无证书公钥密码体制、无证书签名方法、无证书代理重加密方案等相关学术成就 [21]。
4. 系统设计
在本文提出的工业数据可信存储的系统中,通过把需要存储的源文件存入IPFS系统中,将系统返回的文件哈希摘要存在区块链上,在最大限度减轻链上存储压力的情况下实现基于区块链的数据可信存储。其次,通过无证书密码体制对文件哈希摘要上链存储前进行加密,只有特定用户可通过自身私钥对哈希密文进行解密,只有使用解密后的哈希明文才可在IPFS系统中下载到源文件,以此保护数据的使用权限。
4.1. 系统架构
本文设计的系统架构如图1所示,包含应用层、中间层和存储层。
1) 应用层:应用层以接口形式向用户提供完整的系统服务。应用层可实现的功能包括:数据存储、数据上链、数据查询、数据下载、访问控制。
· 数据存储:由管理人员将企业内设备运行数据进行整理,数据实时汇总后存入已部署的IPFS系统节点内,IPFS系统将数据进行分片存储,返回给用户根据数据内容生成的唯一哈希值结果,管理员对所得到的哈希值进行加密,将加密后得到哈希密文上传至区块链系统。IPFS分布式存储系统承担了数据存储压力,弥补了区块链系统中链上存储空间有限、事务处理效率低下的不足,二者深度融合既保留了区块链自身优势也提高了数据存储效率。
· 数据上链:将被加密的哈希值上传至区块链账本。由管理员发起数据上链智能合约,将工业数据集哈希值写入交易并将该笔交易上链。该笔交易上链后会生成一个唯一标识符Number,只有在链内有身份授权的用户才可以通过唯一标识符Number在链上找到并获取这笔交易信息。
· 链上查询:系统中所部署使用的区块链类型为本身具有准入机制的联盟链,只有具有链上权限的用户才可以调用交易查询智能合约,通过在合约中输入交易唯一标识符Number,在链上找到对应的交易获得哈希摘要密文。
· 访问控制:通过无证书加密机制对数据哈希值进行加密与解密,充分保证用户对数据使用权限控制,保证数据的隐私性与安全性,避免数据的滥用。假设管理员A希望自己上传的数据只能被特定的人群所使用。A首先基于无证书加密体系生成自己的公钥私钥,在获取数据哈希上传至区块链系统之前,将哈希摘要利用相应加密函数进行加密,即使用具有查看权限的人的公钥进行加密,之后再上传至区块链账本。假设B具有A的许可且身份认证在与A同一条联盟链中,B通过智能合约,利用唯一标识Number找到对应交易并获取交易内记录的哈希摘要密文,之后使用自己的私钥对获得的被加密的哈希摘要进行解密,获取哈希摘要原文,通过哈希摘要原文可以在IPFS系统中下载到A所上传的源数据文件。系统业务逻辑如图2所示。
2) 中间层:中间层作为过渡层,连接上层应用层与下层存储层。主要负责相关功能接口的实现与底层加密方式的调用。
3) 存储层:存储层包含部署的IPFS星际文件系统及联盟链平台。IPFS星际文件系统负责两个功能:a) 完整数据的存储并返回给用户数据哈希摘要;b) 根据哈希摘要对存储的数据进行下载。联盟链平台主要负责用户的权限管理、调用智能合约将交易上链共识以及后续交易查询功能。
4.2. 数据访问控制模块设计
在基于IPFS的联盟链工业数据可信存储中,主要使用对关键数据加密解密的方式来实现用户对数据的访问权限控制。在企业管理员获得IPFS系统返回的数据哈希值之后,首先利用无证书密码体制中的公私钥对生成方法建立与自己身份相关的公钥和私钥,将数据哈希值通过特定公钥完成加密处理生成哈希密文。在具有权限的用户在链上获取交易信息后,可以使用自己的私钥对哈希密文进行解密,使用解密后的哈希明文即可在IPFS系统中下载指定文件。
密钥生成中心KGC通过将秘钥与用户身份绑定,为用户产生公钥和私钥。秘钥产生过程如下:第一步,随机产生保密数λ,KGC使用保密数λ作为函数参数生成系统参数K、密钥SK。第二步,KGC调用PSKGen方法,传入参数K、用户ID和SK产生不完整私钥PSK,此时把不完整私钥PSK告知用户A。用户A使用K和个人身份ID,利用USKGen (K, ID)方法产生第二个不完整私钥X。第三步,用户A调用参数K、PSK和X,使用SKGen (K, X, PSK)方法产生最终用户私钥。第四步,用户A执行PKGen (K, X)方法,通过传入参数K、X产生完整用户公钥。详细算法步骤如下:
1) 密钥生成中心KGC随机产生保密数λ,传入λ作为函数参数,执行函数获得系统参数K和密钥SK。
2) KGC调用PSKGen (K, ID, SK)方法产生不完整用户私钥PSK,将PSK告知用户。
3) 用户调用USKGen (K, ID)方法,通过传入系统参数K和自身ID,产生第二个不完整私钥X。
4) 用户使用KGC产生的第一部分不完整私钥PSK和自身产生的第二部分不完整私钥X,以及系统参数K,使用SKGen (K, X, PSK)方法合成用户完整私钥。
5) 用户调用系统参数K和自身产生的不完整私钥X,使用PKGen (K, X)方法,产生用户最终完整公钥PK。
在权限验证设计中,包括用户签名和认证流程。详细过程介绍如下:
1) 用户A通过调用系统参数K和用户完整私钥对哈希摘要密文进行签名,签名后返回签名结果。
2) 具有查看权限用户通过传入签名用户A的身份ID、公钥PK和哈希摘要密文C_Hash参数,来验证签名,对签名有效性进行确认。
在哈希摘要明文加密过程中,详细过程介绍如下:
用户通过系统参数K、用户身份ID和用户公钥PK,执行Encrypt (K, PK, ID, Hash)方法把文件哈希摘要明文加密为文件哈希摘要密文C_Hash,并将加密结果返回。
在哈希摘要密文解密过程中,详细过程介绍如下:
具有权限的用户在区块链系统中查询并获取到对应的交易信息,通过自身私钥,执行解密函数Decrypt把得到的哈希密文还原为哈希明文,使用哈希明文可以到IPFS系统中下载源文件。
5. 系统实现
5.1. 系统实现环境
区块链平台选择Fisco Bcos联盟链。编译部署Solidity智能合约,将数据哈希上链,提供交易上链、存储、交易查询等功能,合约基于Fisco Bcos的EVM运行。分布式存储系统选择IPFS星际文件系统并部署在Linux中,利用JPBC库实现基于CL-PKC的无证书密码体制,测试工具使用Caliper。
5.2. 系统功能测试
将风力发电厂作为数据存入方,提供设备运行数据,将发电机运行数据存入IPFS系统中,把系统返回的哈希经过无证书密码体制加密后发送交易上链;发电机制造厂是运行数据哈希密文的获取者。
风力发电厂将数据哈希密文上链,上链请求回执信息如图3所示。

Figure 3. Hash on-chain request transaction receipt
图3. 上链请求交易回执
发电机制造厂作为数据获取者利用智能合约查询链上数据,请求过程如图4所示,成功获取信息如图5所示。

Figure 4. Send transaction query request
图4. 发送交易查询请求
5.3. 系统性能测试
针对IPFS系统性能进行测试,测试设计4个线程组,每组2000条查询请求,共查询次数8000次,测试结果如图6所示。

Figure 6. IPFS performance test experimental results
图6. IPFS性能测试实验结果
测试结果为IPFS系统平均TPS为:855.6/sec。从测试结果看,选择IPFS作为链下扩容存储方案可充分满足基于IPFS的区块链数据可信存储系统需求。
6. 结束语
工业数据的可信存储是工业互联网可以持续发展的重要前提。本文针对工业设备运行数据存储可信度低的问题,提出工业互联网设备运行数据的可信存储方法,提出了基于IPFS的区块链数据存储系统架构,系统内加入了无证书密码体制对数据使用权限进行进一步控制,并对方案进行了实现验证。实验结果表明,本文提出的方案可实现工业互联网设备运行数据可信存储。为今后区块链应用于工业互联网的研究提供了理论和实践基础。
基金项目
国家自然科学基金青年科学基金项目(61802217)。