面向制造业产业链图状区块链模型
2024-01-13刘孝保孙海彬阴艳超姚廷强
刘孝保,孙海彬,阴艳超,姚廷强,杨 林
(昆明理工大学 机电工程学院,云南 昆明 650500)
0 引言
由于区块链技术的去中心化、自信任、防篡改、可溯源、分布式账本信息协同一致等特点,引起了全球各国的重视[1]。对于国内区块链的发展,由国务院印发的《“十三五”国家信息化规划》文件,其中区块链技术已成为国家布局的重点领域[2]。2019年10月24日,习近平同志在主持中共中央政治局第十八次集体学习时强调,要加快推动区块链技术和产业创新发展,积极推进区块链和经济社会融合发展[3]。工业和信息化部发布的《中国区块链技术和应用发展白皮书》[4]和工业互联网产业联盟与可信区块链推进计划(TBI)发布的《工业区块链白皮书》着重分析了国家工业领域所面临的挑战,融合区块链技术将给工业领域的发展注入新的动力。制造业产业链作为工业领域的核心部分,对国家的经济、国防建设等方面起着至关重要的作用,引入区块链技术将助力整个制造业转型与升级。
目前,国内外许多学者投入到了区块链领域的研究,且主要集中于金融、物联网、医疗领域的应用研究,以及区块链底层技术的研究。金融领域主要是针对跨境支付[5]、数字货币[6-8]的研究,物联网领域多集中于电力[9]、数据共享与管理[10-12]、访问控制[13-14]的研究,以及医疗领域的电子病历[15-16]、医疗数据共享[17-18]研究。区块链底层技术的研究主要围绕解决区块链存储容量[19-20]、能耗高与扩展性问题[21-23]等方面。然而,对于区块链在制造业产业链方面鲜有研究,并且基于链式结构的区块链构建具有复杂业务关系的制造业产业链的区块链模型还存在一定的困难,现阶段的制造业均是多种业务相关的产业链而形成制造业产业链,并非是传统的单产业链模式。
为此,基于制造业产业链动态式的扩展性、业务关系的复杂性、分布式结构的业务协同特点,本文提出了面向制造业产业链的图状区块链(简称区块图)模型。该模型将传统区块中存储的信息分解为关系数据与业务数据,分别构建物理区块账本与关系集群;物理区块通过映射机制生成映射节点,由关系集群构建基于物理节点的关系模型;依据制造业产业链业务逻辑关系,建立制造业产业链联盟图的运行机制,并构建满足业务需求的智能合约与制造业产业链分布式业务协同的共识机制;最后,搭建了制造业联盟图架构,为区块链在制造业产业链的研究提供了新的思路与理论研究模型。
1 面向制造业产业链的区块链应用问题分析
制造业产业链是由业务关联的多产业链集成[24],每条产业链均包含原材料、零部件制造、销售、售后服务等多个企业及企业之间的业务关系,由此构成了制造业产业链,如图1所示。
制造业产业链业务逻辑模型包含制造业企业内部业务、制造业企业群内部业务、制造业企业群之间的业务,形成具有新旧交替的动态扩展、业务信息复杂、分布式网状结构业务特点的制造业产业链联盟。目前,因为链式结构区块链出现最早,并且现有的平台应用也相对较多,所以较多的区块链技术应用是采用链式结构区块链,如图2所示。
针对制造业产业链包含着复杂的业务关系,然而基于链式结构的区块链构建制造业产业链区块链主要存在以下问题:
(1)难以处理复杂的业务 链式存储结构的区块链,仅是将业务信息简单的存储到区块中,不存在专门的业务关系处理,然而对于分布式制造业产业链包含一对多、多对多等复杂关系,链式结构的区块链是无法处理的。虽然,企业级的区块链支持跨链业务,但仅能够访问其数据,无法对其进行修改或新增的操作,还不能满足制造业产业链的业务需求。
(2)动态可扩展性差 链式结构区块链只能沿着一条主链单向往后延伸,而不能根据需求对已经生成的区块进行替换或分叉。针对制造业产业链上的业务协作,存在旧企业的淘汰与新企业的产生,并伴随着关系的新旧交替而重新建立,由于链式结构的限制,动态扩展性差的链式区块链难以满足跨企业群之间业务交互以及新旧关系替换的动态性变化。
常用的区块链模型是一种典型的链式结构,多用于诸如金融交易等链式业务模型。而制造业产业链是由多条业务相关的产业链形成的一种典型的网状结构,业务之间存在复杂的网状关系[24],如使用链式结构的区块链则需将复杂的网状关系拆解成众多的链式结构,将大幅增加跨链业务处理,因此处理效率和业务的扩展性将受到巨大影响[25]。图结构是专门用于复杂网状关系模型表征的数据结构,采用图结构进行制造业复杂关系网络的直接表征,将大大提高系统的扩展性、系统性和运行效率。
2 面向制造业产业链的区块图模型构建
因为链式结构的区块链在制造业产业链区块链模型构建中存在问题,所以摒弃链式结构的区块链,提出面向制造业产业链的图状区块链。
2.1 物理区块模型
综合考虑制造业产业链特点,以及存储容量与运行效率之间的关系:①物理区块中存储的粒度为单笔交易,便于业务中的关系信息表征,旨在满足动态变化的产业链关系模型构建;②提升业务信息遍历效率,链式结构的区块链在业务查询时,不仅要寻找到对应的区块,还需要从区块中多笔业务信息找到所需的业务内容,而区块图中查询到既定的区块,业务信息即已确定,故而采用单笔业务形成单个区块的方式构建物理区块模型。
物理区块是由业务信息经解析的业务数据排序打包产生,其分为3部分:第①部分由区块序号(或区块高度)Block Num、业务数据哈希Data Hash、区块哈希Block Hash与标识制造企业集群Title组成。Block Hash=Hash(Block Num+Data Hash+Title),一旦区块中的任何部分发生微小的改变,都会引发Block Hash的巨大变化:第②部分不同于将多笔交易打包成单个区块的传统区块链,其打包的粒度是单笔业务交易,即每个区块中仅包含一条业务交易的数据。业务数据Data经过哈希加密得到Hash值,并作为第①部分的Data Hash值,任何业务数据被篡改,Data Hash均会产生相应的变化,并通过此方式防止数据被篡改;第③部分存储的是相应制造业联盟的身份证书和签名,用于标识区块中业务的合法性,如图3所示。
2.2 关系模型
2.2.1 物理区块映射
通过双映射机制建立物理区块与区块图顶点数据之间的联系,映射相关定义如下:
(1)相关定义
定义1区块元数据。唯一标识区块的Block Num(Bn)、Data Hash(Dh)、Block Hash(Bh)与标识企业集群的Title(Ti)组成元数据,构成的四元组(Bn,Dh,Bh,Ti)集合记为X,X表示区块元数据;某一区块对应的四元组(bn,dh,bh,ti)记为x,x∈X。
定义2映射节点。在区块元数据中作为核心索引依据的数据项Block Hash(Bh)与TitleHash(Th)构成映射节点数据,组成的二元组(Th,Bh)集合记为Y,Y表示映射节点;某一映射节点对应的(th,bh)记为y,y∈Y。
定义3关系节点标识。由Block ID(Bd)组成,Bd的集合记为Z,Z表示关系节点标识;某一关系节点标识记为z,z∈Z。
定义4区块元映射。区块元数据与映射节点的对应关系,表示为:f1:X→Y。
定义5索引映射。映射节点与关系节点标识的转换关系,表示为:f2:Y→Z。
(2)双映射机制
步骤1物理区块信息抽取。BlockInfo为物理区块信息,BlockMeta为区块元数据,通过抽取物理区块信息BlockInfo中的区块序号Bn,数据哈希Dh,区块哈希Bh,企业集群标识Ti组成区块元数据BlockMeta。
步骤2区块元映射。MPInfo是映射节点信息,TDInfo是中间信息,区块元数据BlockMeta经过双映射机制中的区块元映射形成映射节点信息MPInfo。
步骤3索引映射。其中:BlockID为关系节点标识;Bt为中间信息;BlockInfo(Bb)构建基于Bn(区块序号或高度)的检索方式,并集成于Bd的键值对中;由映射节点信息MPInfo通过双映射机制中的索引映射得到关系节点标识BlockID。
步骤4由关系节点标识BlockID标识关系节点ReNode,映射节点MPNode构建区块图的顶点V。其中:Relation是与BlockID对应的业务关系信息,G表示区块图,V={v0,v1,…}表示区块图中的顶点集合,E={e0,e1,…}表示区块图中的边集合,最终由映射节点MPNode与ReNode共同构成区块图G。
2.2.2 业务关系模型
制造业产业链上任何一条业务均包含着大量的关系信息,将此种关系分解为类型(type)与属性(property),其中类型包含单向(single)、双向(double)、无向(non),通过不同的组合形式表征产业链上企业之间的不同的业务关系,结合业务的多个属性(Property1,Property2,Property3,…)共同描述一条复杂的业务关系内容,以此构建业务关系模型。
业务关系模型中的类型是由具体业务场景定义,例如制造业产业链的三种业务类型表征产业链上企业之间的业务流向。基本业务关系模型的Type取集合{single,double,non}中的一种,业务关系的属性是由多个子属性构成的集合,两端节点表示与业务关系相关联的企业,三种基本的业务关系表达式如下:
单向(single):企业A-[single:{Property1,Property2,…,PropertyN}]-企业B,
双向(double):企业C-[double:{Property1,Property2,…,PropertyN}]-企业D,
无向(non):企业E-[non:{Property1,Property2,…,PropertyN}]-企业F。
通过基本业务关系的组合构建混合型业务关系模型,并由混合型关系模型描述复杂的制造业产业链关系。混合关系模型如下:
2.3 区块图形成
通过双映射机制与业务关系的构建,最终形成区块图,如图5所示。
在区块图形成过程中,实际的双映射机制是区块元数据、映射集群与关系集群的物理存储结构中数据之间的映射,如图6所示。
基于物理区块映射机制构建了区块元数据、映射集群与关系集群存储的物理结构,而最后建立的关系集群物理结构分为“Header_Map”与“Relation”两部分:①“Header_Map”中的“Title”与映射节点中的“Title”一一对应;“Block_NumMap”与物理区块序号一一对应;“Block_ID”对应于映射节点中的Block_Hash,Block_ID=Hash(Block_Hash)。②关系是存储于“Relation”中的“Link_hash”数组中,由键值对组成,键分为“out”,“in”,“double”,“non”,分别表征三类业务驱动关系,其对应的值是由关系双方的Block_ID组合加密而成。
3 制造业产业链联盟图模型构建
基于构建的面向制造业产业链区块图,从企业与用户的角度设计构建制造业产业链联盟图模型,解决链上企业内部、企业之间、跨企业群之间复杂业务的处理、数据存储问题,联盟图架构如图7所示。
制造业产业链联盟图架构包括制造联盟网络层、排序层、背书层、业务层。
(1)业务层 业务种类分为制造业产业链上的制造企业内部业务、制造业企业群内部业务、制造业企业群之间的业务,其主要对用户提交的业务信息完整性进行核验,并对业务进行归类与规则化。
(2)背书层 ①制造业产业链上有多家制造企业,形成背书层的背书节点负责对产业链上的制造企业进行身份背书,通过了背书核验的企业才能进入制造联盟,并对动态增加和脱离的企业成员的身份证书进行相应的颁发与吊销;②客户提交的业务也是由背书节点进行验证,通过验证即可背书签名来标识业务提案的有效性。
(3)排序层 由众多的排序节点提供排序服务,通过排序节点解析出客户的具体需求,并根据具体需求调用智能合约执行相应的方法,最终由形成的关系集群与映射集群共同构成区块图。
(4)制造联盟网络层 根据制造业分布式的特点构建制造业联盟网络,形成的区块图存储于达成共识的各制造企业节点。
3.1 联盟图共识机制
所谓共识,通俗讲是让分布式系统中各个节点对某个值或某种状态产生相同的看法[26]。为使得制造联盟中的去中心化制造企业节点对相同事务处理达成统一的共识[27],构建了制造业产业链联盟图共识机制,旨在解决分布式制造企业节点的一致性问题,其包含背书与排序两个环节。
(1)背书环节
背书环节包含节点许可认证、业务提案验证、业务提案背书,通过背书签名的提案包含签名背书业务与颁发的证书,如图8所示。具体步骤如下:
步骤1节点许可认证。CA为联盟图中的身份管理服务节点,获取CA中备案的提案节点许可证书PerNode_license的数字摘要PerCer,与提案的证书Cert中的AdminsCert经过加密后暗文AdCHash进行比对,若相同则节点许可验证通过,否则驳回提案,形成过程如下所示:
PerCer=Digest(PerNode_license),
AdCHash=Hash(AdminsCert)。
步骤2业务提案验证。包含业务信息完整度的检验与信息是否篡改的验证。信息完整度的检验根据制定的业务信息样板进行匹配,对于信息篡改的验证是将业务信息BusInfo加密得到暗文BusInfoHash,并与中间凭证Intermediate的暗文IntDHash进行对比,同时对比根凭证Root_certs暗文RootHash与中间凭证的暗文IntDHash,两方面对比均相同验证即通过,形成过程如下:
BusInfoHash=Hash(Data,Relation),
IntDHash=Hash(Intermediate),
RootHash=Hash(Root_certs)。
步骤3业务提案签名。通过了前两步的验证后,即可背书签名。业务提案Proposal
(2)排序环节
业务新增时才会启动排序,主要对不同提案的业务信息排序与同一提案的业务信息中的业务数据与关系信息排序。不同提案的排序按照提案生成的时间戳与提案数量的综合因素排序,同一提案需要分别对业务信息BusInfo中的Data与Relation排序,而Data排序的标准是根据同一企业节点的业务数据进行归类打包产生物理区块,业务关系Relation的排序依据关系模型构建的方式,建立企业节点之间的关系模型,并依据业务关系的数量封装为单个的基本业务关系
3.2 联盟图智能合约
目前,定义智能合约为一种无需中介、自我验证、自动执行合约条款的计算机协议[28],为去中心化的制造业产业链上企业之间构造自信任的交易环境,故而需要智能合约将传统的产业链上通过人的信任主导业务的往来,转换为以机器信任的业务模式[29]。
制造业产业链联盟图智能合约的设计需要考虑3个方面的自动执行:①提交的业务信息需要自动快速的分解,以处理短时间内大量的业务提案;②关系模型的构建包含双映射机制与业务模型的构建,需要自动完成复杂的映射与模型构建,以提高区块图的构建效率;③根据用户提交的业务需求自动调用相应的功能,满足用户的使用需求。根据以上需求,设计了系统级的业务分解、关系构建链码与用户级的用户功能链码,如图9所示。
通过业务信息分解链码对用户提交的业务信息进行分解,分解得到的业务关系集由关系构建链码建立区块图中关系,并与映射集群共同形成区块图,用户通过调用用户功能链码对制造业联盟网络中的区块图进行所需的业务操作。
3.3 联盟图运行结构与流程
制造业联盟图运转时的结构由三部分组成:①提供给用户使用的客户端;②用户登记注册与数字证书管理的身份管理服务;③区块图网络。如图10所示。
依据制造业产业链上业务运行方式,设计构建了制造业联盟图业务运行机制,如图11所示。
制造业联盟图业务运行机制包含业务查询机制与业务新增机制,通过排序节点解析出用户提交的业务需求,并执行相应的业务运行机制。
在执行业务运行机制时,均需对区块图进行遍历以确定对区块图操作的具体位置。图结构的遍历方法通常分为深度优先遍历与广度优先遍历两种,两种遍历方法具有不同的优缺点:深度优先遍历占内存少但速度较慢,广度优先遍历占内存多但速度较快,因此需要根据业务模型的实际情况合理的确定采用何种遍历方法。
(1)业务查询机制
查询机制中的关键过程包含:①背书节点对提案的验证与背书;②排序节点对业务的解析,调用遍历节点,以及由遍历节点分别对背书节点与关系节点进行调用;③通过关系节点对关系信息与物理区块信息进行查询,反馈给用户。
(2)业务新增机制
由图11可知,业务新增机制的结构与业务查询机制的结构相同,在机制运行流程方面,业务新增机制相较于业务查询更复杂,增加了①排序节点对新增业务信息的打包、区块的产生;②排序节点将生成的区块与关系信息分别广播给物理区块账本、关系集群,进行存储。
4 模型分析与验证
4.1 性能分析
目前,在数据存储方面使用较多的数据库是关系型数据库,而区块图是基于图结构的方式存储,其检索效率类比图数据库,关系型数据库与图数据库在执行的效率方面有着很大的差距,如表1所示。
表1 关系型数据库与图数据库执行效率对比[30]
由表1可知,在深度为2时,无论是关系型数据库还是图数据库,其执行时间表现都比较好。当深度为3时,关系型数据库执行所需的时间明显已经远超过图数据库执行时间。当深度达到5时,关系型数据库出现了难以完成所执行的任务,而图数据在2秒左右的时间就返回了结果,并且随着执行的深度增加图数据库执行所需时间增长幅度差别很小,验证了图结构的数据存储方式的检索效率远高于普通的关系型数据存储方式。
关系型数据库经过了五十多年的发展和应用,技术已经趋向于稳定、成熟,广泛应用于各种商业场景。而随着存在复杂关系的海量数据大量出现,传统的关系型数据库已经开始无法满足实际业务需求。由于图数据库提供了对关联数据最直接的表达,具有高效的关系信息处理能力、可扩展性强等特点,能够解决许多关系型数据库无法处理的问题。为此,近几年图数据库得到飞速发展,诸如亚马逊、华为等头部企业都纷纷投入到图数据库的研究和应用中,世界百强企业中使用图数据库的企业占比已经达到76%,图数据库的广泛应用将是未来的主流趋势之一。因而,采用图结构的数据存储方式能够很好的处理制造业产业链中复杂业务关系。
4.2 初步验证
实验环境为Intel XeonCPU E7-887010核服务器,通过VMwareWorkstation16建立虚拟机,安装内存为3.5 G,硬盘为20 G的Ubuntu64系统,以及区块链构建的基础工具cryptogen、configtxgen、configtxlator;实验数据以陕西某有限责任公司曲轴事业部的原材料采购、设计、加工制造、销售环节的部分数据为例,开展区块图验证实验。
(1)区块图生成验证
通过构建曲轴的原材料采购、设计、加工制造、销售等产业链环节的区块图,验证提出面向制造业产业链图状区块链的可行性。曲轴制造过程4个环节中存储的信息如表2所示。
表2 曲轴的四个环节相关信息
依据表2曲轴各环节信息明细,规范曲轴事业部提供的各环节信息作为物理区块形成的基础数据,各环节涉及到的企业通过证书核验后,直接将企业相关信息写入区块图,形成区块图中的节点,由物理区块双映射机制得到映射节点围绕在代表企业的节点周围,通过企业之间的业务关系按照业务关系模型构建机制形成区块图的边,并将相应的节点连接形成区块图,如图12所示。
生成的区块图以加密后的暗文同步存储于制造联盟各节点,由智能合约中业务信息分解链码解析经加密的区块图中节点信息与关系信息,转化为结构化的JSON文件,并同步绘制如图12可视化的区块图,使得用户能够及时、直观地了解节点存储的区块图信息,以便对产业链上的信息进行管理。
(2)区块图复杂业务处理验证
在上述生成的曲轴区块图基础上,通过增加、变更企业信息与关系信息模拟实际产业链上企业与业务关系的交替变化,验证区块图是否能够处理类似的复杂业务。实验测试节点详细信息如表3所示。
表3 测试节点相关信息
测试实验通过加入制造联盟网络的3个节点(peer1、peer2、peer3)开展,peer1节点测试上链物流运输部分的企业与业务关系信息,peer2节点测试上链协同服务部分的企业与业务关系信息,peer3节点测试将链上销售商信息变更为曲轴供应商信息。通过测试节点终端发出相应测试指令,如图13所示。
通过3个测试节点的区块图后端,发出相应测试内容指令,各节点执行结果如图14所示。由peer1、peer2节点分别发出上链“物流运输部分信息”与“协同服务部分信息”指令,提交所涉及到的企业信息,经过制造联盟背书节点审核提案与企业证书;通过审核之后,依据提交业务需求由智能合约将企业信息写入区块图生成相应节点,随后读取相关企业业务信息,由业务信息分解链码分解此类信息,通过关系构建链码建立业务关系与之对应区块图的边,按照此方式依次完成链上新企业节点信息与复杂关系同步工作。peer3节点发出变更“销售商信息”为“曲轴供应商信息”指令,依旧需要先对变更后的企业信息进行审核,而审核通过之后,将原有企业信息予以备份,撤销其颁发的制造联盟证书,并依次变更关系信息、节点信息,最终形成如图14的新区块图。
通过增加、变更企业信息与关系信息等实验,验证了区块图具备一定的复杂业务处理能力。综合上述两阶段实验,证明所提出的面向制造业产业链图状区块链模型的有效性,一定程度上拓展了区块链技术应用领域。但由于数据与设备局限,实验存在一些不足,尤其是产业链之间的业务交互问题,还需后续结合庞大的产业链集群进行测试。
5 结束语
针对传统区块链构建制造业产业链区块链模型所面临的复杂业务关系难以处理的问题,本文提出了一种面向制造业产业链区块图模型,进而构建具有动态扩展性、业务信息复杂、分布式网状结构特点的区块图模型,并面向制造业产业链搭建了制造业联盟图架构。该联盟图模型基于将复杂的业务分解为简单的业务关系与业务数据,由分解后的业务信息构建联盟图中的边与顶点,并设计智能合约维护制造业产业链上企业之间正常的业务协作。
在基于区块图模型的联盟图实现方面,虽然已经得到了阶段性的成果,但是还存在许多挑战。这些挑战的出现也给区块链的发展带来了机遇,需要更多的人员投入到区块链的研究中。其中面对的挑战主要包括:
(1)区块图在共识方面的困难程度远高于传统链式结构的区块链。企业级区块链的共识包含背书、排序、验证3个环节,能够满足链式存储结构的业务共识需求。然而,区块图共识的要求程度与难度都有所提升,就目前来看区块图共识的研究还需要很长一段路要走。
(2)区块链技术已经被国家、企业巨头,甚至某些民营企业高度重视起来,但是对于提出的区块图新型区块链技术,认识度还很低,重视起来还需要一定的时间;并且在基于区块图的共识机制、智能合约等方面仍需要大量研究,尤其是结合到具体的应用场景,发挥其更多的价值仍需要深入的研究。