1. 背景

传统工厂向智能工厂转变是为了提高生产和管理效率,并高度灵活地适应不断变化的生产要求1。这一目的的达成部分依赖于大量来自于制造设备,工业生产流程,工厂运行等过程的数据收集。为了完成这样的收集过程,工厂中部署的终端设备节点数量和网络规模不断扩大,各种新兴技术如 3D打印,AR/VR,CPS,IoT 和边缘计算等不断集成。传统的中心化架构无法再为这样庞大的系统提供有效支持,工厂的通信体系结构因此需要转变为涉及工业流程所有实体的分布式体系结构。区块链技术是可选的解决方案之一,其优点包括:

  • 分布式应用。具有较大计算负载的工业应用依赖于昂贵的集中式服务器,采用区块链技术,可以利用去中心化应用(dapp)分担计算负载,有效减少运维成本,提升用户体验。

  • 软/固件更新。由于安全问题更新工厂中的 IIoT 设备十分常见,通常情况下,更新过程需要在遍布工厂的众多设备中手动执行。使用区块链可以简化这一繁琐而低效的更新流程,将软件更新同时分发给尽可能多的智能设备,并同时保证完整性和安全性。

  • 信任关系。工厂运行过程中,与合作伙伴、设备制造商、原材料提供商、服务提供商甚至政府之间的交互都是必不可少的,这些交互往往基于对所收集数据真实性的信任。区块链的不可篡改特性,可以提供一种验证问责机制,从而增加信任。

  • 信息平台。智能工厂还往往涉及附加制造、大数据、云或边缘计算、IIoT、CPS、集成系统、机器人、网络安全等诸多技术的集成使用,这些技术可以从作为一个统一的信息交换平台的区块链的部署中受益。

  • 垂直与水平集成。智能工厂内部各系统如 ERP 和 MES,或工厂各部门和上下级之间的垂直整合,以及供应商、工厂、用户等供应链上下游的水平整合,是工业4.0的核心之一。区块链能为这两种整合提供良好的解决方案。首先,在垂直整合中,工厂中部署的多个系统自动收集信息并将其发送到价值链的任何相关部分(例如设计团队或操作工人)。区块链可以通过提供一个公共可信的数据及货币平台帮助垂直整合。水平整合即供应链,区块链可辅助达成制造商、供应商、客户等供应链涉及实体间的信任,确保产品安全可靠。

  • 访问控制。随着终端设备数量的增加,访问控制同样是一个必须解决的问题。传统的访问控制方式往往存在各种各样的不足。区块链是一种良好的解决方案。

问题1:智能工厂涉及的设备数量其实并没有大到无法承受,传统中心化的云为什么不使用?

区块链固有的解决信任问题的优势,厂商对云服务提供商的不信任等。

问题2:为什么不用替代性的分布式架构,如分布式数据库技术?

区块链就是一种分布式数据库。

问题3:区块链出现之前,这一方向对基于云的中心化架构的替代方案是什么?

2. 需解决的问题

这些问题主要包括三个方面:

  • 性能上:能源效率,算力,延迟,吞吐量
  • 数据管理:存储
  • 安全上:数据隐私,身份认证,数据完整性

具体每部分总结如下:

  • 数据隐私: 包括1)节点身份的隐私;2)区块链中交易数据的隐私。节点身份可以通过诸如链接攻击获取,而区块链中的数据本身就是透明的。但是,在工业场景中,为了避免向竞争对手泄露关键数据,匿名的需求确实存在。对节点身份的链接攻击现在主要依靠密码学上的混淆技术抵御。另外,BSeIn中通过基于属性的数字签名(ABS)也实现了匿名。交易数据的隐私可以简单的通过发起交易前先加密保证,或者通过访问控制机制保证实体对区块链数据的访问和写入权限。

  • 身份认证:认证是访问控制的前提,实际上,认证和访问控制是解决 IIoT 中安全和隐私问题的主要手段。传统方式中,认证通过证书颁发机构完成,访问控制也通过指定节点负责授权允许访问相关设备和资源实现。但是这些中心化的机构具有较大的安全隐患,信任度与区块链方案相比有较大差距。区块链中访问控制方案通常利用智能合约完成,有些也会使用区块结果或共识过程等。

    总而言之,隐私和安全问题的解决,很大程度依赖于认证和访问控制的方案。

  • 数据完整性:对于 IIoT 系统来讲,保证从 IIoT 设备收集的信息没有被修改是至关重要的,因为不正确或恶意的数据可能会影响工业系统的运行。区块链的不可篡改性实际上可以保证数据完整性,另外,由于区块链存储的高花费,采用其它中心化或分布式的存储方案时,保存数据的哈希是一种常用的保证数据完整性的方式。

  • 存储:随着 IIoT 设备执行交易,区块链不断增长,传统的资源约束 IIoT 设备甚至无法管理区块链的一小部分。需研究区块链压缩技术或其它技术。另外,IIoT 设备收集的大量数据也不应存储在区块链中,使用什么样的存储方案值得研究。关于存储的问题有过详细的研究和总结。

  • 能源效率:由于某些 IIoT 设备依靠电池来运行,因此必须最小化功耗。然而,区块链通常是耗电的,主要是由于采矿和 P2P 通信。边缘设备也必须连续通电并执行计算密集的复杂加密操作。此外,必须注意的是,尽管进行了可能的能耗优化,当前的资源约束 IIoT 节点通常还是无法处理挖矿任务,因此它们通常依赖于充当区块链代理的中间网关。在采矿方面,已经提出了不同的共识机制来开发比传统 PoW 方案更环保的替代方案,但还需要进一步的研究。另外,一些作者已经提出了像迷你区块链这样的替代方案,这有助于降低节点的计算要求。值得一提的是,高效哈希算法可以帮助延长IIoT设备的电池寿命:尽管由于比特币,SHA-256 可能是最流行的哈希算法,但最近的替代品如 Scrypt 或 X11更快,因此他们可能可以减少采矿能耗。

  • 算力:一些 IIoT 设备由于其有限的计算能力或其功率限制而无法实现复杂的安全机制。基于 RSA 的加密可能不是最适合资源约束的 IIoT 设备,因此应该研究其他非对称加密机制。此外,由于量子计算在打破传统的非对称加密算法方面的进步,应该考虑量子方法。

  • 交易延迟:区块链需要一定的时间来处理交易。例如,比特币交易潜伏期遵循泊松分布,平均值为10分钟,但实际上,建议等待大约一个小时来确认交易。相反,大多数数据库最多需要几秒钟来确认交易。智能工厂中许多情况下需要实时地对收集的数据和相应地事件做出反应。

  • 吞吐量:IIoT 系统通常每秒处理大量交易,这可能是某些区块链的缺陷。例如,比特币每秒最多处理7次交易,尽管它可以进行优化以处理更多交易(例如,增加块大小)。因此,在为 IIoT 部署选择正确的区块链时,吞吐量是必须考虑的基本参数。实际上,大多数的平台都在致力于吞吐量的提高,比较著名的例子是以太坊的分片方案,比特币的扩容方案,以及闪电网络、雷电网络等链下解决方案。

    吞吐量的问题一部分是共识过程的复杂性带来的,主要是通信及交易确认的延迟,所以使用速度较快的哈希算法如 scrypt 而不是 SHA-256 能带来一定的优化,另一部分原因是任务的单进程处理,分片方案的实质就是提高并发程度。

    吞吐量和延迟或许可以归结到同一个问题,因为吞吐量很大部分是由延迟造成的。

  • 可扩展性:基于区块链的工业4.0应用使用地体系结构必须能够承受此类应用产生的大量流量。可扩展性主要包括两方面,1)物联网终端设备的巨大数目及其不断增长的趋势,要求架构必须具有良好的可扩展性,能够支持大批量设备动态的加入退出,支持规模庞大地设备地同时运行;2)小型的交易可能会增加与通信相关的能耗,而载荷过大的交易物联网设备将可能无法处理,故交易和区块的大小需要能根据物联网网络的带宽限制进行调整。鉴于此,在区块链中普遍应用的全节点和轻节点方案基础上,Slock.it 又提出了两种节点类型,从而填补了该方面的空缺。

还有几个问题是后期需要考虑的:

  • 多链管理。区块链的激增可能需要一些公司同时支持其中几个。例如,公司可以使用比特币处理其金融交易,而智能合约则在依赖以太坊的应用程序上执行。因此,必须设计和实施解决方案以同时使用不同的区块链。
  • 互操作性和标准化。目前,大多数公司开发自己的区块链解决方案,但在许多情况下,它们之间的互操作性是必要的,以实现无缝集成。像IEEE这样的一些实体正致力于制定旨在保证各领域互操作性的特定标准。

问题1:激励机制是否还有存在的必要?

没有存在的必要,为了谋取利益,工厂有自发运行共识的动力,无需激励机制。但是基于代币的激励机制可以转化为基于信誉积分的激励机制,用于权限节点的选举、惩罚机制的执行等等操作。

问题2:该场景中适合使用什么类型的区块链?

从智能合约的角度,需要支持智能合约运行的区块链,而非加密数字货币类型的。

从访问规则的角度,需要私有链或联盟链。公链在交易处理速度、可访问性、数据公开等方面不满足场景需要。

问题3:该场景中适合使用什么样的共识?

非资源需求型的共识,吞吐量较高的共识。

问题4:用什么样的存储方案?IPFS,Swarm或其它,分布式的还是集中式的?

数据的集中式存放必然面临单点故障问题,传统的分布式方案在安全和防篡改方面不足。这里还存在一个问题,之前所提区块链的使用是中心化架构的不满足,一般指的就是数据,但这里突然存储方案并不用区块链,那之前的说法就存在问题。

3. 访问控制方案具体应该是什么样的

我们决定使用Ouaddah提出的OM-AM四层模型,即目标、模型、架构、机制。

3.1 目标

目标阶段主要是研究所在场景,提取主要的隐私和安全需求,这些需求基于对文献的广泛阅读。

  • 隐私:隐私是指一个实体拥有的决定是否、何时以及向谁发布或披露自己的个人信息的能力。隐私的范围包括用户数据和个人信息。我们通过与隐私相关的几个关键因素量化了该目标:1)透明性:用户应当知道他们有哪些隐私数据,这些数据是否被获取,由谁获取,用来做什么和获取时间等信息;2)用户驱动:用户是数据的主人,拥有对他们在云或网络中数据的完整权限,能够在无需第三方的情况下使用这些数据,并能保证这些数据在没有用户许可的情况下无法被使用,最后,能保证可以将数据直接与授权节点共享,不受第三方控制;3)匿名:不直接使用用户真实身份作为标识符,同时,也不应当通过用户的行为可以分析出其真实身份;
  • 技术限制:1)灵活性:主客体的身份不应是静态的或预定义的,设备可以同时扮演资源请求者和资源拥有者的角色,同时,两者间的对应关系也是多对多的。2)可扩展性:由于设备和用户数量可能是无限的,访问控制机制应在大小、结构、用户和资源数量等方面可扩展;3)轻量:物联网设备的电源、内存、计算能力等较低,引入的安全机制涉及应确保计算和通信开销尽可能小,故应是轻量的;4)异构:应同时支持多种通信技术、不同的设备和生态系统。
  • 机密性和完整性:机密性意味着数据和信息没有未授权的泄露,完整性意味着不会被篡改。更多的,访问控制系统应拥有以下特性1)细粒度:用于指定访问控制规则的语法足够灵活,能支持描述更多的信息,因此支持细粒度的访问控制;2)撤销:能够撤销对资源的访问权限,并确保被撤销权限的用户无法再访问资源;3)委托:一个主体可向另一个主体授予访问权限或部分授予访问权限,由于许多事物由其用户永久或临时拥有,并可能属于同一个组,因此有必要考虑委托机制设计。
  • 可靠性和可用性:物联网环境下,这两个属性描述为1)离线模式:即使决策者(可能是资源所有者)不在或没有连接,也可以进行决策。2)短期可用:物联网资源必须以合理的响应时间提供给授权用户,因为过程或数据可能有时间限制。3)长期可用:法规规定某些数据必须保存很长时间(如病历拥有规定的保存年限),只有有权限的用户才能删除数据,并且只能在相应的时间段过期之后。4)访问控制应易于管理、表达和修改,因为授权活动的参与者专业知识可能存在差异。

物联网环境中,设备无法自行执行所有授权功能,应选择一种集中式的方法,即为设备定义统一的授权管理中心。同时,系统中应存在对恶意行为的处罚。

3.2 模型

授权模型是用来清晰明确地表示安全策略的一组符号规则(通常是数学的),帮助抽象和理解安全策略,并用于验证策略的完整性和一致性。常用的授权模型包括自主访问控制 DAC,强制访问控制 MAC,基于角色的访问控制 RBAC,以及基于属性的访问控制 ABAC。我们使用的授权模型是基于加密机制生成的设备身份的授权。

定义 $subject$ 集合 $S$,这是希望访问其它节点资源的节点集合;$object$ 集合 $O$,这是持有资源的节点集合。每个属于 $O$ 的目标 $o$ 都有一组资源 $R_0$(数据或功能),每个属于资源集 $R_0$ 的资源 $r_0$ 都与一组访问权限集合 $A_{r_0}$(读,写或执行)相关联。对每个主体 $s$ 和资源 $r_0$ 都定义了一个属于权限集的映射,说明对该资源的相关权限授予该主体。为了满足离线模式下的可用性,定义 $L$ 为不同的权限级别,相同级别的主体拥有对对象的所有权限,高级别的主体拥有对低级别对象的读取和控制权限,低级别主体对高级别对象没有权限。该设计限制了数据由低级向高级的流动,并且保证了低级别的数据不能被高级别篡改。

3.3 架构

目前,大多数智能工厂都是基于云的集中式制造架构[1]。这样的架构使用户能够随时随地访问共享的制造资源池,并且可以通过最少的工作和第三方交互来实现资源的快速配置和管理[2]。但是,一方面,集中式架构非常脆弱。只要中心节点损坏,所有服务都将被暂停。同时,集中式服务器的部署与维护费用也很高,工厂还需要向中间商支付这种集中式解决方案的费用。另一方面,工业4.0的发展意味着工业网络物理系统(ICPS),增强/虚拟显示(AR/VR),IIoT和边缘计算等众多技术手段的集成和应用,从而要求工厂的架构体系从当前基于云的中心式架构向涉及工业流程所有实体的分布式架构转变。因此,我们的目标是建立一个分布式的节点相互监督的系统。我们提出的用于智能工厂的基于区块链的IIoT架构如图1所示。所提出的架构主体包括三部分:物理资源,区块链网络和存储网络。

架构设计
架构设计

Physical Resources:即位于工业网络最边缘的设备节点,主要指各种收集数据的设备如传感器,各种参与制造过程的设备如机械臂和制造设备,以及工作环境下的打印机、扫描仪等等其它物理设备。由于设备节点在功耗、性能、存储等方面的限制,其作用仅仅是将收集的大量数据交付给区块链网络中的网关节点。

Blockchain Network:区块链网络的成员包括三种节点。网关节点是与各类传感器相连的单片机或与其它设备节点相连的网关设备,它们接收来自设备节点的各种数据,经过简单处理和加密后,上传到存储网络。然后将数据哈希存入区块链中。同时,它们也需要执行来自区块链网络的由其它节点发起的控制命令并返回结果。网关节点的性能同样也是有限的,因此,它在区块链网络中作为轻节点而不是全节点存在。管理节点是工厂中普遍存在的工控电脑和普通计算机。负责验证交易,打包数据生成区块,广播区块以及将区块添加到区块链等一系列操作。用户节点是移动PC,智能手机和手持终端等设备,用来由用户操作向区块链发出数据查询请求或发出向设备的控制命令。

这里节点的作用其实还取决于共识的选择,类 PoW 的资源型共识只能由管理节点参与区块生成和添加,其它共识网关节点也可以参与。

Storage Network:由于区块链在存储上的困难,我们将收集的数据及日志存储在单独的存储网络中,同时为了避免单点故障和安全隐私问题,存储网络也同样适用分布式的架构。我们选择了 Ethereum 的 Swarm 作为本系统的存储网络。存储网络接收来自网关节点的数据,并返回数据的哈希。同时依赖用户节点发出的查询请求,根据数据哈希返回相应的数据。存储网络的节点与区块链网络的管理节点是部分重合的,它将中心化的云存储分散到了工厂所有的各独立的计算机中。

[1] [14] D. Wu, D. W. Rosen, L. Wang, and D. Schaefer, “Cloud-based design and manufacturing: A new paradigm in digital manufacturing and design innovation,” Computer-Aided Design, vol. 59, pp. 1-14, 2015.

[2] A. W. Colombo, T. Bangemann, S. Karnouskos, J. Delsing, P. Stluka, R. Harrison, F. Jammes, and J. Lastra, “Industrial cloud-based cyber-physical systems: The IMC-AESOP approach,” Springer Ebooks, pp. 15-16, 2014.

3.3.1 架构划分

与论文[3]相似,我们也将所提出的架构分为内联网和外联网。内联网旨在收集和存储数据,而外联网旨在利用数据为不同用户提供不同的服务

内联网由设备节点,区块链中的管理节点和存储网络组成。由于计算能力的限制,设备节点完全由与之相连的管理节点控制,数据上传到管理节点由其进一步处理,收到的控制命令也由管理节点发出。管理节点在转发控制命令前需要对请求发起者的权限做验证。另外,由于设备节点完全受管理节点支配,其身份需要得到验证,从而保证安全性。

外联网由管理节点,用户节点和存储网络组成。内联网和外联网之间的主要区别在于内联网面向设备,而外联网面向用户。传统的系统中,外联网连接到Internet并通过集中式服务器或云来为用户提供服务。本文的系统中,这一机制通过区块链网络和存储网络完成。用户节点发起请求后,区块链网络将根据定义在智能合约中的合理的访问控制策略来判断是否有相应的操作权限。请求通过时,对数据的查询请求将返回存储网络中相应数据的哈希,用户节点再通过哈希值调取数据,这样做能减轻区块链网络的存储和处理负担,加快响应时间。对设备的控制请求在被目标网关节点收到后,网关节点从区块链中查询其权限,确认权限后将控制命令转发给设备节点。

为了确保数据安全性和隐私性,区块链网络通过智能合约定义了相应的访问控制机制。决定了决定了访问或拒绝的权利。这种机制可以快速验证访问流量并过滤恶意流量,提供快速方便的安全性和隐私。同时,架构中的设备节点和用户节点的直接交互被隔离,数据请求和控制请求都先由智能合约处理,确认权限后才会进行下一步操作。另外,设备节点和用户节点获取的权限是有时间限制的。达到时间限制后,需要重新验证权限。

[3] Wan J, Li J, Imran M, et al. A Blockchain-Based Solution for Enhancing Security and Privacy in Smart Factory[J]. IEEE Transactions on Industrial Informatics, 2019.

[4] Lin C, He D, Huang X, et al. BSeIn: A blockchain-based secure mutual authentication with fine-grained access control system for industry 4.0[J]. Journal of Network and Computer Applications, 2018, 116: 42-52.

[5] Zhang Y, Kasahara S, Shen Y, et al. Smart contract-based access control for the internet of things[J]. IEEE Internet of Things Journal, 2018

3.3.2 共识

与公有区块链的不受信任的系统不同,所提出的系统是私有区块链系统,其中所有节点最初都是受信任的。因此,我们放弃了竞争和奖励机制。采用了 PoA (其实还不确定)共识算法。这种设计可以提高架构的容错性,可扩展性和实时性。

3.4 机制

在[3] [4] [5]三篇论文中,分别实现了自己的访问控制合约,现将它们的优势和不足分析如下

优点缺点
[3]- 访问控制权限有时间限制
- 数据存到分布式云中时数据哈希使用Merkle根形式获得
注册阶段使用固定IP,容易泄露身份
[4]- 节点真实身份通过属性得以隐藏
- 使用一次性密钥用于消息加密,密钥使用CL-MRE通过交易发送
注册使用的是区块链账户地址,易泄露
[5]- 实现了恶意行为判决和处罚
- 定义策略的合约与其它合约分离,便于销毁
- 访问控制权限有时间限制(对时间的判定即文中声称的动态验证)
- 三种合约分离,甚至每个访问控制策略都是一个合约,存储空间浪费严重
- 策略查询通过发起交易来调用合约实现,延迟较大

在我们的方案实现中,摒弃了以上方案的缺点,集合了它们的优点,如

  • 对访问控制策略进行时间限制
  • 添加对节点恶意行为的判决和处罚
  • 尽量在一个合约中实现,避免空间浪费
  • 数据在链下的存储不是单纯的计算数据哈希,而是使用 Merkle 根形式计算

另外,我们还采用了一些新的方法克服它们的缺点

  • 采用ECC生成公/私钥对,公钥作为节点身份来注册,定期更新,从而保证用户身份
  • 策略查询通过对节点中的区块链副本查询完成,不上链交易,节省时间。只有发起操作请求才会发起交易

3.4.1 合约设计

主体包括数据存储合约和访问控制两个合约

3.4.2 交互流程

注册。区块链中的网关设备和用户设备使用其公钥进行注册,终端无连接的物联网设备在其网关设备控制下生成对应公钥,然后进行注册。将区块链账户地址与身份公钥分离,身份公钥加密传输,可以保持隐私。

初始化应定义网关设备对终端物联网设备的所有权限。


  1. E. Munera, J. Poza-Lujan, J. Posadas-Yagüe, J. Simo, J. F. Blanes, and P. Albertos, ‘‘Control kernel in smart factory environments: Smart resources integration,’’ in Proc. IEEE Int. Conf. Cyber Technol. Automat., Control, Intell. Syst. (CYBER), Shenyang, China, Jun. 2015, pp. 2002–2005. ↩︎