时间:2024-07-28
杜 兰,陈琳琳,戴丽丽,张 丽,沈雅婷
(南京理工大学紫金学院 计算机学院,江苏 南京 210023)
云制造由李伯虎院士团队于2010年在国际上首次提出,它是一种网络化的服务型制造的新型模式[1],其整合先进信息技术、制造技术及智能物联等技术,构建云共享平台,在“互联网+”环境下集成制造能力及资源,提供全球化的、高价值的云服务。
如今,已有大量实际运行的云制造服务平台,如面向制造及管理的集团企业云制造服务平台[2]、航天科技集团云制造服务平台[3]、航天云网平台[4]、中小企业云制造服务平台[5]、浙大云制造平台[6]和阿里巴巴研发的淘工厂云制造平台[7]。
现行云制造平台存在一些尚未解决的关键问题:(1)当前中心化体系下系统负载上限受制于中心服务器性能;(2)各参与主体的各环节的信息分散,互相缺乏信任,信息共享程度低,信息的真实性和可靠性难保证;(3)数据追溯困难,不利于产品全生命周期管理;(4)信息易被非授权获取和篡改,用户信息隐私易泄露;(5)系统抗风险能力弱,易出现单点故障而引起系统瘫痪。因此,本文提出了一种基于区块链技术的云制造平台系统架构模型,改变了传统信息系统的数据记录、传递和存储的方法,解决了上述核心痛点。
区块链是一种由分布式数据存储、P2P传输、共识机制、加密算法等计算机技术[8]实现的分布式记账系统,它把数据分成不同的区块,每个区块使用时间戳技术通过特定的信息前后顺序链接到上一区块的后面,以此形成一套完整链式结构。其中每个区块主要由两部分组成:(1)区块头,包含区块头值、上一区块的哈希值、时间戳、随机数等信息;(2)区块主体,包含本区块的主要交易信息,如时间、位置、数量、金额、评价和规则等[9]。其数据结构如图1所示。
区块链如去中心化、去信任化、集体维护性、加密数字货币、开放的智能合约等特性,能有效解决现有云平台存在的关键问题,因此探索一种基于区块链的云制造平台系统架构模型会是一种有益的尝试,将对云制造平台发展带来积极影响。云制造平台面临的问题与区块链契合度如表1所示。
表1 云制造平台与区块链契合度
目前,区块链大都使用单链架构,比如日本网络银行PoC项目[10]以及欧洲央行使用的通用账本模型[11]。现有区块链技术在单链架构下存在性能、容量、隐私性和可扩展性的瓶颈。本文设计了一种双链式的云制造平台系统架构模型,如图2所示,该模型不同于传统的中心化架构,是完全分布式的双链网络架构,它比现有的架构效率更高,扩展性更好[12]。该链网包括两类区块链:(1)用户区块链(Account Blockchain,ABC),负责储存与维护用户信息,仅存储交易后的信息,但不执行交易;(2)交易区块链(Trading Blockchain,TBC),创建交易区块,仅存储对交易有用的信息并且执行相关交易。通过双链架构将用户区块链和交易区块链分开,把数据进行分流,可减少记录节点的数据冗余量,在一定程度上提高云制造系统的共识速度。再则,通过信息摘要计算方法在云平台上全网只记录经过加密处理的交易摘要信息,大大缩小区块链的数据量。这样可有效应对区块链应用于云制造平台的响应滞后等关键难题。
图2 双链架构模型
将云制造服务平台现有研究成果和区块链模相融合,本文建立了一种基于区块链的云制造平台体系架构,如图3所示。
单个区块的生成过程包括需求匹配、交易发生、认证过程和挖矿记账四个步骤。以企业A与B的交易为例,区块链的交易流程如图4所示。
区块链信息记录流程利用了哈希算法、共识机制、P2P传输和加密算法等技术,保证了数据的一致性、防篡改性和安全性,增强了云制造系统各主体之间的信任,如图5所示。
图3 基于双链架构的云制造平台体系架构图
用Ex表示记录节点,TS表示交易,ID为交易对象,t为时间戳,m为交易金额,n为货品名称,a为交易数量,CMPpublic和CMPprivate分别为云平台公钥和私钥,Expublic和Exprivate分别为交易节点的公钥和私钥,使用SHA256方法记录信息摘要abstract,各个记账节点通过PoS技术选出授权记账节点,block表示交易区块,block_chain表示交易区块链,ic为验证码。流程如下:
BEGIN
request record transaction;
/*节点Ex产生了新的交易,要求更新*/
transactionEx(ID,TS,request,t,m,n,a)
/*节点Ex产生了新的交易TS,ID为交易对象,t为时间戳,
m为合同金额,n为交货名称,a为数量*/
abstract=SHA256(TS)
/*使用SHA256方法形成交易记录TS的信息摘要*/
CMPpublic=Hash(CMPprivate)
/*云制造平台生成自己的公钥和私钥*/
Expublic=Hash(Exprivate)
/*交易节点生成自己的公钥和私钥*/
primary=com(workload)
/*根据共识机制,选出记账节点*/
block=comb(Ex,abstract) by primary
/*记账节点将新
交易信息摘要组合成一个新的区块,ic为验证码,t为时间戳*/
block_chain=comp(block,X,ic,t) by primary
/*记账节点计算节点X的区块值,ic为验证码,t为时间戳*/
MS=broadcast(block) by primary
/*授权节点利用P2P技术将新区块向全网广播*/
if MS is received
/*如果节点收到了消息*/
No.= count(MS)
/*记录节点收到信息的数量*/
if the NO.>=N for any node
/*如果任意
节点收到的信息数量在N个以上,N与系统容错数有关*/
then updating for every node(X,block)
/*所有节点更新节点X的新区块值*/
else give up
/*否则,放弃更新*/
END
区块链数据验真业务流程比较简单,各主体发送查询请求,即可查询得到结果,其流程如图6所示。用E1表示企业A的记录节点,E2表示企业B的记录节点,t表示交易时间,block表示数据区块,E2public表示E2的公钥对,abstract为信息摘要,cr表示完整交易记录。流程为:
BEGIN
query(A, B,t,TS)
/*企业A查询企业B在时间t是否存在某次交易TS*/
E1=node(A)
/*企业A所拥有的记录节点为E1*/
E2=inform_node(B)
/*企业B告知A,E2为其记录节点*/
block=query_block(E1,t,E2,TS)
/*在节点E1的交易
区块链数据库查询在时间t存在的E2节点交易的数据区块*/
abstract =obtain_ abstract(E1,block)
/*获取E2的交易信息摘要*/
decrypt(E2public,abstract)
/*利用E2的公钥对信息摘要进行解密*/
cr=complete_record(B)
/*企业B提供交易完整记录cr*/
abs=SHA256(E1,cr)
/*企业A利用SHA256对cr运算*/
compare(abstract,abs)
/*比较计算后的结果和上一步解密后的结果*/
validate(A,B,Other,account_inform)
/*企业A
验证在该次交易中和企业B相关的其他企业的记账信息*/
END
图4 区块链的交易流程
图5 区块链信息记录流程
图6 区块链数据验真业务流程
本文针对现行云制造平台系统中信息孤岛、信任度低和用户隐私保护等痛点,充分利用了区块链的中心化、开发共识、去信任和匿名性、集体维护、不可篡改、可追溯性和可编程的智能合约等技术特点,提出了基于双链架构的云制造系统架构模型的构想,详细设计了一种基于区块链交易的信息记录与查询验真机制,提出了一种云制造平台上利用区块链交易的新思路,解决了现有系统中关键问题。下一步工作将根据该架构模型实现出系统原型,逐步优化设计细节,同时解决诸如区块链交易响应速度滞后、交易安全与隐私保护等问题,希望最终能实际推广使用。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!