摘要:随着工业物联网逐步走向成熟,数据成为整个生产流程中的关键因素。数据驱动 的工业系统从终端和其他业务系统收集数据,加以分析和优化,在提升效率的同时减少劳动力。想要做出可靠的生产和业务决策,系统内部和跨系统工业数据的完整性和一致性显得尤为重要。区块链和分布式账本技术拥有以分布式方式来维护数据的加密完整性和不可抵赖性,因此,利用区块链对工业系统进行数据问责验证是很自然的。在工业物联网场景中,对于跨系统的数据问责有着迫切需求,现有的部分方法没有解决集成复杂性和细粒度一致性问题,通过引入区块链进行产品库存验证的解决方案,最终在基于真实数据的实现原型上进行了实验。

自 2012 年通用电气等五家美国企业组建工业互联网联盟并大力推广“工业互联网”概念以来,全球各国陆续制定工业转型升级规划。我国在 2018 年中央经济工作会议上将工业互联 网定义为“新型基础设施建议”,会议提出大力发展先进制造业,各地大中型企业逐步将工业信息化、数字化、智能化发展纳入各自战略规划之中。工业互联网的主要目标是实现跨设备、跨系统、跨厂区、跨区域的生产要素互联互通。传统工业企业普遍存在工控系统封闭、 数字化程度参差不齐、操作人员对信息技术难 适应等问题,距离达成上述目标还有着很大的差距和困难。然而,随着新一代通信技术的发展,人工智能、区块链、云计算、大数据、物联网等新兴技术也被逐渐引入工业生产系统之中,为工业生产降本提质增效提供新的增长极,也为缩减上述差距、解决部分问题带来了新的技术基础和新的思路。

为实现工业数据的贯通,工业系统“云边端”架构逐渐成熟,数据在多种系统间流转。比如,云端业务和业务系统之间、云端业务和边缘业 务系统之间、边缘业务系统与终端应用之间等。数据的可靠性保障是数据驱动的业务智能决策的前提,尤其是需要保障多方系统的数据交互 一致性。由于新老系统数据交互协议、冗余信息处理、消息并发和处理机制不一致等因素,多方系统各自维护的数据无法对齐的情况时常出现,数据不一致的问题不容忽视,问题定位及修复费时费力,亟需建立自动化、灵活部署、可靠性高的工业数据交互可信验证机制来保障跨系统数据交互的一致性。

 01.工业数据交互面临的问题

传统的工业系统交互数据验证模式是两两系统之间以异步处理的方式各自生成业务记录文件进行逐笔比对,并以事先约定的处理方式及流程处理差异。假设T为需做数据比对的日期,一般T+1日才能完成T+0日的数据比对度量。在实际业务场景中,存在安全性、隐私性以及性能效率方面的问题。因此,如何高效、安全、可靠地保障多系统数据交互的一致性是目前业界亟需解决的痛点。

目前业界已存在较为成熟的保障多系统数据交互一致性的方式方法。根据功能部署方式、 信息存储模式和信息记录对比方式可分为两类:原生系统消息验证和集中式批量验证。

原生系统消息验证通过围绕业务的两个系统间自行约定的规则进行操作记录日志交换,在各自本地进行操作记录的分析比对,将比对结果进行沟通,以验证结果的一致性。集中式批量验证则通过建立可信第三方独立系统的方式异步处理各业务系统收集到的日志记录,并进行分析与配对,按照业务规定给出信息比对结果,并提供给业务人员可查看的业务系统访 问接口。

上述两种数据交互一致性度量方式方法,虽然在业界使用居多、较为成熟,但是由于数 据都是通过网络传输实现异步数据对齐,随着业务参与方增多,对于实际业务和实际场景中数据交互一致性度量实时性的诉求、度量结果是否具备公信力、可度量业务系统数量是否具备良好的可扩展性等不断增加的需求,已经凸显疲态,主要呈现以下三类问题无法妥善解决。

1.1 跨系统数据交互缺乏一致性检查机制

现有工业生产和执行系统以业务流为牵引进行业务数据交互,并在各自系统维护业务记 录文件。然而,由于各系统间采用异步处理的方式,且重复存放的数据未能及时进行同步检 查,偶发的网络故障、系统故障,以及人为因素等原因,导致数据交互的不一致难以被发现,从而不能及时进行反馈。

同时,由于工业设备通常属于重资产,更新换代较慢且代价不菲,导致工业系统异构化 明显,复杂度较高,牵一发而动全身,难以通过系统的优化和修改建立一致性检查机制。

1.2 多系统数据对账复杂且难以定位

由于缺乏及时的一致性检查机制,当发现多系统间存在数据不一致的情况时,通常已经 是由多个错误叠加产生的结果。数据可能在系统之间往返流转,在多个环节发生错误,产生叠加或者部分消弭,导致错误难以快速定位。通常需要导出所有业务数据后,由熟悉业务流程的管理人员根据个人经验,针对异常的数据进行人工的筛选、排查、分析,定位系统发生错误的具体位置,最终对错误进行人工修复。

然而,人工进行对账核算也会带来不可忽视的成本和风险,比如耗费大量的时间(通常较自动化对账多耗费 42% ~ 67% 的时间),且这些时间大量耗费在等待他人了解对账状态上。除了为此投入的人力成本,还存在人为原因导致的数据可靠性风险,审计与合规性缺乏有力支撑,以及面临人才流失的潜在风险等。

1.3 跨系统关键数据交互缺乏自动审计追责机制

由于工业系统结构复杂,多系统的维护通常由多个技术厂商提供服务,系统间数据交互 缺乏明确的追责机制,当出现数据不一致的情况时,容易出现相互推诿的情况,缺乏可信仲裁的角色去判定各方系统的数据是否准确,难以快速定责,无法及时联络对应人员进行数据 修复。

同时,由于对账过程中所采取的控制措施在多个地点和业务单元中分散且不同、解释及辅助性文件欠缺,往往造成审计成本增加。在因为数据不一致造成生产效率下降或经济损失时,或在关键数据审计时,由于缺乏对中间过程的跟踪、对账不全面、无法快速回答审计师的问题以及缺乏整体可见性,从而会增加审计的总体费用。

 02.国内外相关技术研究现状

基于区块链技术的多系统数据交互可信验证方案是传统多系统信息交互保障方案的技术优化,增强了数据从产生、交互到审计、溯源、修复全流程的可靠性。主要涉及分布式 存储、数据完整性保护以及数据一致性验证等核心技术。目前国内外高校和科研机构已经在分布式存储系统以及区块链在数据完整性保护与验证领域开展了研究和探索。一些对技术生态建设有需求的企业,也已联合多家金融机构发起基于区块链的机构对账平台,区块链技术在数据交互可靠性保障领域 的应用正在从传统金融行业和场景向其他行业和场景中推广。

2.1 基于区块链的分布式存储系统

区块链技术可以为分布式场景提供有效的解决方案,能够解决中心化场景下的单点失效 问题。其中,最为核心的技术是通过分布式共识算法实现数据副本之间的一致性,从而提高在大规模应用中对数据服务高可用的要求。

基于区块链的这种特性,将其视为分布式存储的一种实现方式,需要确保其在功能和性 能上不低于传统的分布式数据库。已有大量研究人员针对如何优化区块链技术,尤其是在高效查询、吞吐量和延迟等方面进行了深入的研究和探索。Muzammal 等人提出了一种优化区块链的开源分布式数据库,通过研发数据库和应用程序之间的区块链中间件,设计了一种区块链数据库 ChainSQL 系统,除了可以满足数据库基本的搜索查询功能,还具备可抵抗恶意篡改、数据副本保持一致性等特点。该系统通过在链上记录所有数据库操作日志的方式,使新节点可通过链上记录同步完整的数据库存储。El-Handi 等人设计了一种区块链数据库 BlockchainDB,在区块链的存储层之上增加了数据库层。数据库层主要包括分片管理、交易管理和验证管理等功能,通过灵活的分片技术,实现客户端的读写和验证等功能。通过灵活自定义的存储层,引入了全节点和轻节点,从而 在全局层面实现安全和效率的兼顾。焦通等人提出了一种区块链数据库的概念,通过将传统数据库中的表分别存储于多个存储节点,所有节点均通过共识算法存储含有数据记录的区块头信息,可在各个节点进行查询和验证。同时,设计了一种基于哈希指针的索引,通过索引实现数据的查询并保障索引本身的不可篡改,以 此提高数据检索效率。Wang 等人提出了一种专门设计用于为区块链和可分叉应用程序提供有效支撑的存储引擎 ForkBase,引入了一种新颖的索引结构来有效识别与消除跨数据对象的重复副本。该系统在提供高性能的同时,也显著降低了开发成本。其团队成员 Ruan 等人在此基础上进一步研究,利用区块链技术防御分叉攻击,将云存储操作的日志上链,保护关键目录和操作日志服务器,实现了细粒度的、安全高效的区块链数据回溯,为在线交易提供安全的数据变迁轨迹存证。

2.2 基于区块链的数据完整性验证解决方案

在数据交互过程中,被篡改、丢失也是引发数据不一致的主要原因。基于区块链技术的 链式数据结构特点,国内外学者在数据完整性验证与区块链相结合方面也做了深入研究。

传统方法都是使用中心化的方式对存储数 据的完整性进行验证,需要依赖可信第三方来 完成验证。但是依然存在第三方是否可信的问题。

魏艳等人提出了一种在不被信任的环境下无需第三方审查机构,基于区块链技术的去 中心化时间戳的数据完整性验证机制,同时利用以太坊智能合约建立数据完整性验证的区块链结构,完成小规模数据的验证,为区块链技术在数据完整性应用方面提出了理论证明。

日志是网络设备、系统及服务程序等在运作时产生的事件记录,这些记录是信息系统的 正常运维、故障恢复和错误排查的前提,更是维护信息安全的关键。日志数据对于实现网络安全有非常重要的研究和分析价值,获取有价值的日志需要系统和设备必须进行合适的设置以便记录需要的数据,同时需要有合适的工具、具备良好培训的人员和可用的资源来综合分析收集到的数据。除了满足上述需求之外,还迫切需要一种对日志可靠的、安全的存储方式。

费禹等人设计了基于公有链的日志系统,采用工作量证明(Proof of Work,PoW)算法实 现共识层,该系统相比于传统日志存储形式,具有隐私性强、可控性高、数据分享安全便捷的优点。Sutton 等人设计的区块链日志记录 系统能够部署在现有的比特币公有区块链上,但存在成本高、效率低、可扩展性差的缺陷。

日志数量越大所需交易数量越多,会在链上占据相当大的存储空间。Shao 等人使用以太坊的智能合约实现日志数据的完整性和异常检测,并结合机器学习允许智能合约本身能够实现一定程度的自我更新。

2.3 基于区块链的机构间对账平台

国内某公司研发的机构间对账平台于 2016 年 8 月投产,是国内首个在生产环境中运行的多金融机构间的区块链应用。通过区块链技术,优化贷款业务中的机构间对账流程,降低运营成本。平台运行 3 年多记录了真实交易笔数已达 7000 多万笔的量级,上线以来保持零故障运行。

该应用主要通过区块链和分布式账本技术,优化贷款业务中的对账流程,提升对账效率,其对账流程如图 1 所示。交易数据秒级完成同步,并快速生成准确可信的账目数据;T+0 日准实时对账。通过 3 年多时间的真实生产数据检验与零故障运行,该应用印证了区块链底层技术的安全可控、稳定可信、健壮可用等优点,也为区块链技术在金融领域的交易对账场景提供了典型的应用案例。

国外某公司研发的基于区块链的支付网络,可以转账任意一种货币,支付简便易行快捷,交易速度快、交易费用低。截至 2020 年 4 月,已有 60 多个国家和 850 多家银行或机构使用。依托该支付网络,所有的跨境收付款人的信息都可以实现可信的支付和资金清结算。该支付网络解决了跨境支付信任建立难的痛点,提升业务效率并降低成本,通过一定的技术妥协融入现有的金融支付结算体系,提供端到端的跨境支付解决方案。

图 1   机构间贷款业务对账平台流程

 03.工业系统数据交互可信验证方案

为了解决传统工业数据交互验证方案中所遇到的一些瓶颈问题,本方案引入基于区块链 的基础设施赋能于业务场景实际问题,以工业系统为区块链节点,多方共识算法可确保多系统数据副本的一致性;智能合约是一种预写入的逻辑代码,通过部署业务智能合约可以实现秒级的自动化数据分析与比对,从而解决传统数据对账过程中不一致数据定位难的问题;基于分布式账本技术,将对账数据在链上进行存证,为事后审计提供支撑,解决多方系统定责难且缺乏自动审计追责机制的问题。

3.1 工业系统数据交互可信验证方案设计

工业系统数据交互可信验证方案主要由业务系统接入组件、具备可信验证功能的区块链节点和可视化管理查询系统 3 个部分组成。

其中,具备可信验证功能的区块链节点为方案的核心部分,该节点可灵活部署于业务系统现有网络结构中,业务系统通过公钥(Public Key Infrastructure,PKI)机制实现联盟链构建,业务数据通过镜像的方式实现旁路上链,从而在不影响业务连续性的前提下实现数据的采集。然后,在区块链节点部署数据自动化验证的智能合约,实现自动化秒级对账,同时提供信息访问接口实现业务员查阅操作,其解决方案如图 2 所示。

为保障区块链节点的可信验证功能运转,需研究下述 4 项关键技术:

(1)分布式身份认证技术:通过智能合约编写身份数据发布、认证以及撤销相关规则, 基于分布式账本技术,利用区块链共识机制,实现身份数据的可信存储。通过智能合约提供的外部接口实现身份的可信验证。

图 2   工业系统数据交互可信验证方案

(2)智能合约一致性校验技术:深入分析业务系统数据交互格式,提取关键参数,抽象 为规则化的业务智能合约,实现数据流的自动解析与实时比对,并对结果进行链上存储。

(3)基于身份标识的溯源技术:建立基于区块链的全局唯一标识,支持链上可验证。进 一步研究 Merkel 树机制,实现基于摘要的数据快速检索机制,支持链上数据的有效输出。

(4)分布式账本客户端:基于 Java JNI 规范,开发向下兼容的硬件算法接口,向上实现以交易形式的链上互通,与分布式身份认证技术相结合,实现数据的可信上链。

此外,为进一步确保从业务系统采集数据的可靠性,后续可利用区块链硬件设备与本方 案配合,进一步保障数据源头的可信,该硬件需具备下述两大功能特点:

(1)可信密钥管理:建立基于硬件的密码管理技术,通过统一口令实现硬件与用户的绑定关系,用户通过可变的单一口令即实现多重密码安全使用。

(2)可信数据采集:建立设备 / 系统唯一身份标识与链上公钥地址的对应关系,通过分布式账本客户端实现基于硬件算法的数据签名,以交易形式提交数据,配合区块链的验签机制,确保数据来源的可靠与防篡改。

3.2 工业系统数据交互可信验证系统实施架构

工业系统数据交互可信验证方案旨在引入区块链基础设施作为对账验证核心,对原有业 务系统侵入性较小,整体系统实施架构由区块链核心层、区块链接入层及业务层 3 个关键层级组成,如图 3 所示。

(1)区块链核心层:基于区块链基础设施, 实现业务型合约的编排、部署、可信执行。本方案采用国内主流的联盟链,自主设计业务型合约,通过 JSON RPC 远程调用协议实现与区块链接入层的对接。其中业务型合约设计是本方案的核心,包括对账、计算和存储合约。根据实际度量的业务需求,定位需要比对的关键参数,包括但不限于消息 ID、时间、地点、业务关键参数等需要对齐的数据内容,进行并行或者递归顺序的比对。将上述流程实现自动化编码,即完成业务合约的编码,根据不同区块链的技术要求完成合约部署。

图 3   工业系统数据交互可信验证整体架构

(2)区块链接入层:打通实体业务与链层 服务的关键功能组件,也是本实施架构的核心 模块。根据业务系统的实际形态可提供 3 种实体业务对接模式。

①流量镜像:对业务系统无侵入式对接模式,通过业务系统路由器的适当配置,获取工 业系统间的交互流量进行镜像。主要难点在路由器的配置、流量的准确获取和正确解析。

② HTTP 接口:业务系统无需源码修改,调用本方案的接口进行信息传输。本方案根据实际业务信息度量参数,设置业务系统与区块链核心层的对接信息通信接口。主要工作在网络接口参数设置与适当的消息反馈。

③区块链客户端:业务系统需要进行源码层 面的部分改动, 集成分布式账本客户端集成接口,实现客户端在原业务系统的集成与调试,保障业务“第一手”信息以交易的方式上链,在一定程度上规避被篡改的风险,符合区块链信息上链安全性的高需求。在区块链客户端做了缓存处理,即使某笔交易发送失败,也保障交易信息不丢失。分布式账本客户端承接信息解析与交易上链,实现数据在“第一公里”的时候就以签名交易的方式上链,有力规避信息在传输过程中被篡改的可能,是目前最为可靠的信息上链方式。

值得注意的是,上述 3 种对接方式中,消 息队列作为“流量镜像”与“HTTP 接口”的信息缓存,保证信息不丢失,即使在链服务偶尔 宕机的情况下,也可保障原始信息的备份。

(3)业务层:负责业务呈现,用户交互功能与界面,提供用户安全便捷的信息查阅途径。涵盖用户管理、权限管理、业务数据库 3 个主要功能模块。其中,用户管理与权限管理相配合,完成用户的注册、登录及访问信息库的功能。业务数据库主要是与度量功能相关的基础信息,根据具体业务的不同而变化。

通过上述实施方案的部署,工业系统数据 交互可信验证系统的交互过程主要可分为“数 据可信验证”与“业务可视化”两个流程,两个流程之间通过链层的分布式账本进行桥接, 系统数据交互具体流程描述如下。

数据上链验证流程:

①业务方根据自身系统强壮性、安全性与技术实现等方面评估,进行数据对接模式的定 位,“流量镜像”对原系统保护最好,“HTTP 接口”数据获取最方便, “区块链客户端”信息获取最可靠;②进行关键信息解析,将数据写入消息队列缓存;③调用区块链客户端开放接口,实现数据的再次封装与交易上链;④通过区块链客户端实现待验证原始数据 的上链,并依次调用对账、计算合约和存储合约,实现数据度量与结果的链上存储。至此完成数据的可信验证流程。

业务可视化流程:

①根据业务方的实际需求,进行用户管理与权限管理的配置,并且可兼容业务方原有的用户体系;②业务员通过可视化界面进行查询参数的输入;③后台调用信息解析模块,实现从分布式账本信息的读取与展示。至此完成业务可视化流程。

3.3 工业系统数据交互可信验证方案性能估算

本方案设计充分考虑系统可扩展性,基于数学组合理论分析如下:

条件:假设M个系统,N个度量指标参数,TPS 为区块链系统的每秒吞吐量。

目的:给出基于区块链可信验证系统的数学模型与性能分析。

思路:可信验证系统的性能即为每秒能处理的最大系统数量与最大指标参数。

建模:可信验证系统可表述为关于 M、N变量的数学不等式函数:

进一步,验证分析过程需要两两比对,任选两个系统做排列组合,对账参数数量 N,不等式(1)转换为:

分析:底层链采用 FISCO-BCOS, 可信区块 链测评给出其最新TPS可达 20000。不等式(2)展开即为:

采用缩放法,对不等式(3)进行估值:

假设 M = N ,则对账系统每秒能完成 34 个系统,最多 34 个指标参数条件下的两两对账。

3.4 系统原型验证效果

以常见的工业信息化系统数据交互为例,假设需保证某生产企业的企业资源计划系统 ERP、制造执行系统 MES 和仓储管理系统 WMS 中的某关键数据(如产品库存)一致性。采用传统方案的人工比对,数据一致性校验只能通过两两系统之间进行比对,且需要人工去导出数据,定位异常,通常是在 T+1 日对 T 日的数据进行比对,并修复数据。整个过程需多系统多部门人员参与、复核、验证,通常需要 3 人持续 2 至 3 小时才可完成,且仍有人为因素导致错误的可能。

根据上述假设的工业系统数据交互需求搭建了系统原型。首先,根据具体业务系统情况 考虑对账系统的区块链节点部署。本次实验部署了 4 个区块链节点,由于 MES 系统、WMS 系统、ERP 系统部署在内网的不同子网,且相互之间数据交互频度不一,系统原型部署 3 个区块链节点在一个子网,部署 1 个区块链节点在另一个子网。由于工业系统对于业务持续性要求较高,具体实施方案采用“流量镜像”的方式,从上述各系统数据交互的核心交换机处引出流量镜像进行数据的过滤和分析。

通过采集 2021 年 9 月 1 日至 2021 年 10 月 31 日的交互数据,我们在系统后台对每日交互数据进行统计,如图 4 所示。3 个工业系统共计交互数据 46 万余条,单日峰值交互数据 12909 条,日均交互数据 7600 余条,按每天平均工作10 小时计算,平均每分钟约 13 条交互消息。

图 4   系统原型采集交互数据量一览

在上述规模的数据采集量情况下,系统原型可以实现自动定位异常,并可以在获取交互数据 1 秒内准实时展示对账结果,从而可实现 T+0 日秒级的数据比对目标,整个过程实时可查、可验和可溯,使数据修复更加快速有效。

系统原型的前端页面如图 5 所示,该页面涉及的部分生产信息已做脱敏处理,页面展示的是MES 系统和 ERP 系统的产品库存数量对账验证,白色数据行表示该类型产品库存数据无差异,红色数据行表示该类型产品库存数在 MES 系统和 ERP 系统中并不一致,业务人员可以通过查看日志的方式,进一步查看引发数据不一致的具体操作日志,从而快速判断分析引发数据异常的系统和原因,协调相应人员进行数据修复。

图 5   系统原型前端页面

 04.结 语

在工业生产领域存在设备、系统、服务之间的数据交互,保障关键数据参数在交互始末的一致性非常重要,影响业务的多个方面。本文深入分析现有业务场景与解决方案,明确在现存数据交互过程中仍然存在的痛点,聚焦数据的可靠性验证,提出工业场景下数据交互可信验证的解决方案,并构建原型进行实验验证。通过实验验证的结果,可将该方案持续优化,构建模块化的智能合约集,可以在类似的数据一致性需求场景中,如原材料库存、供应链采购等场景,快速形成落地应用方案,利用区块链技术解决工业场景中的具体问题,做到技术赋能真正落地。