A Case Study for Blockchain in Manufacturing “FabRec”

警告
本文最后更新于 2019-03-25,文中内容可能已过时。

Author:Atin Angrisha, Benjamin Cravera, Mahmud Hasana, Binil Starly

Published in:46th SME North American Manufacturing Research Conference, NAMRC 46, Texas, USA

被引量:7次

keywords:blockchain; cyber-physical systems; smart contracts; ethereum; decentralized networks; shareable databases

Abstract

随着产品定制成为新的商机,制造商必须找到在无信任网络中进行协作和实现信息共享的方法。在本文中,我们提出“FabRec”:一种用于处理由各制造商使用区块链技术产生的制造信息的方法。其中,制造机器和计算节点构成去中心化网络来实现制造过程的自动化与透明化,基于对历史记录的审计实现对制造过程的第三方验证,使用智能合约实现参与者之间无纸化合同。同时,系统将与制造相关的信息分类,并使其在P2P网络上可用,以通过可验证的审计跟踪确保透明度和数据来源。我们通过组合制造机器,片上系统(SoC, System on chip)和计算节点来建立测试平台,以展示组成联盟的不同制造商可以通过分布式网络进行通信的机制。我们的测试平台原型展示了驻留在分布式网络上的计算机代码的价值:用于验证区块链的信息以及在物理世界中自动启动操作的方式。本文旨在通过测试平台揭示系统组成,为更大规模的测试做准备,并讨论区块链在制造业的未来潜力。

I. Introduction

各制造商间及与机器间互联形成的制造网络为产品定制创造了机会。但参与方之间的信任是个问题,传统方式是通过多方的协商签订合同来达成信任。这一过程在产品定制这一生产模式下的经济可行性无法达成。现有的解决方案都在某种场景下存在现在从而无法很好的解决这一问题。

区块链技术是一种很好的解决方案,没有中心化控制,任何得到授权的参与者都可以查看和写入数据,而写入的数据是不可变的,因此建立了可信的数据来源。间接的,通过可公开查看的历史数据,制造商可以建立其区块链保障之外的信誉体系。

当前企业级区块链的实时依赖于Ethereum、EOS、Hyperledger和CoCo等提供的区块链基础设施,以及改进的区块链数据库技术如BigChainDB。驱动制造业应用的核心结构还有待发展。需要开发新技术来验证网络上机器的身份,在区块链中记录的事件在节点间得到验证和协调,定义节点的角色和职责,所有这些设计将支撑智能制造业网络中各级参与者之间的交互。

本文主要内容包括:

  • 一个分布式框架‘FebRec’的提出
  • 一个使用实验室设备(包括计算节点、片上系统、制造机器)组成的测试模型
  • 一组智能合约用来说明机器如何自动交互、事件如何验证、共识机制的实现等。

II. System Implementation

2.1 FabRec系统总览

图2.1 FavRec Overview
图2.1中的虚线代表信任域的边界,整个系统能实现跨信任域的受控信息共享,即允许跨信任域边界的数据集成。系统中参与者可能是人类、制造机器、计算节点以及制造商的代理,
  1. 每个参与者在网络中都有一个唯一的地址用于验证,经过验证的制造商从世界任何地点都能访问网络;
  2. 制造商重要的机器资产也可以被授予访问权限;
  3. 机器的构建者也可以是网络的一部分,或者提供数据,或者获得对区块链部分数据的访问权限。诸如寻找制造商的设计者,需要验证制造商的能力或者在网络上提出服务请求;
  4. 同样,监管机构、代理商都可以验证制造商的说明,特别是医疗植入物、航空航天部件等受监管的产品。

2.2 区块和交易结构

制造商拥有多台为客户提供服务的机器,每台机器都能唯一标识并拥有向私有区块链(所属制造商加入的那条链)直接写入’事件‘的能力。最终都被收集到区块中,而区块内容(即载荷)取决于:

  1. 机器类型
  2. 记录的事件类型
  3. 记录到区块中的交易数量

因此,一个块可包含与机器操作相关的多个交易。这些交易可包括几种类型:

  1. 机器信息,例如安装,服务更新,机器升级,故障,报废,生命周期内的访问日志等,可以包括机器类型、机器功能、机器所有者、服务提供者、操作员列表等的描述;
  2. 机器使用情况,包括如整体设备效率(OEE),正常运行时间,维护日志,功耗等的事件记录;
  3. 机器能力,如使用的材料,特征的复杂性,原始工件类型等

所有的交易类型都以一种类JSON的文本结构进行记录。

一个示例区块结构如图2.2所示,包含了有关机器信息的交易。

图2.2 example of block structure
随着车间中机器的不断使用,事件也被不断的记录到链中。因此,当客户打算与制造商进行交易时,可以被授予访问历史制造记录的权限,验证数据的真实性和来源。这种信息共享可以提高制造商的信誉并增加赢得新业务的几率。

2.3 智能合约结构

制造业产生的数据时大量的、多样的、动态的和专属的,为了对数据进行操作,设计了三种智能合约结构。

Global Registrar Contract(GRC)

主要功能是建立一个映射列表,将每个参与者(人类、代理商、机器等)同它们的以太坊地址相对应。当映射关系创建或改变时,可通过调用合约添加或修改条目。另外,合约还允许将参与者身份和其历史记录对应起来。

Participant Historical Event Contract(PHEC)

合约功能是允许检索与参与者相关的历史制造数据。还包含特定参与者与链上其它节点间的关系记录。通过检索历史记录可以帮忙建立信誉

Participant Relationship Contract(PRC)

合约当链中参与者和客户建立关系时启动并初始化,PRC中的每个条目都包含参与者间的约束协议和与该关系相关的元数据。有一个状态来只是关系是当前的、无效的还是成功完成的。如果该关系的涉及双方同意,还可以将关系的详细信息向全链参与者公开。PRC维护访问指针,以维护相关的参与者工厂内特定关系的详细数据历史记录。

三种智能合约的结构如图2.3所示。

图2.3 Smart Contract Structure in FabRec
为了说明,一个关于涉及制造商、机器和消费者的智能合约场景如下:

客户需要加工零件,并寻找满足其价格、质量和时间需求的制造商。客户通过发起交易,通过GRC合约搜索符合功能要求的地址列表。然后通过制造商的PHEC合约维护的历史记录进一步过滤选择,一旦客户和制造商通过PRC合约建立关系,客户就可以发送资金到代表机器的智能合约,机器可以根据工作标志和建议资金选择是否接受订单。订单被接受后,机器将作业排队,并把交易收集存储到区块上。

2.4 FavRec系统节点间的数据交换

设计了FavRec的组件,能够和目前制造企业使用的基础设施集成,假设这些已有的系统值得信任,每个企业拥有自己的内部数据库,记录了零件制造的详细信息。如图2.4,我们引入了四个组件,每个组件都有自己的作用:

  1. A Machine’s Virtual Twin Library,The virtual twin library enables machine communication with the digital twin/virtual manufacturing machine built on top of a NoSQL database
  2. 以太坊客户端,用于与区块链交互
  3. Nodal Database Sentry through MongoDB,Nodal Sentry可以被认为是执行加密证明的程序,
  4. FabRec区块链管理器,以可视化的人类可读的形式追踪区块链上交易,类似于etherscan.io但是用于机器数据。

图2.4 Data Exchange between participants
提供了这些组件的实现,这些组件与MongoDB数据库集成并通过用户界面进行管理。此外,任何数据库后端和用户界面都可以实现即插即用功能,只要它们可以通过API调用区块链上的相关智能合约。

值得注意的是,FabRec并不包括与零件制造相关的详细过程数据,而是只包括一个指针,这些数据存在企业内部数据库,当获得许可时,FabRec能通过指针访问这些数据。

III. 原型实现与评估

3.1 测试平台搭建

为了仿真该系统,我们建立了一个包括四个独立计算机的区块链网络,这些计算机作为区块链的参与者,代表不同的制造服务提供商,两个被指定为矿工包含区块链的完整副本。使用以太坊作为区块链平台,一个节点连接到Arduino,通过一个Python脚本与区块链网络相连,该脚本通过对JSON-RPC的API调用保持检查智能合约。交易可以通过geth控制台和python脚本完成,非计算密集型的python脚本允许单板计算机(本实验即Arduino)以低成本读写事件。

机器通过Beaglebone Black中的MachineKit接口(LinuxCNC的修改形式)也连接到网络,成为网络中的节点。在MachineKit OS中编写的脚本将关键事件(例如机器开/关/工作状态)发送到网络,矿工节点验证事件真实性并将其添加到区块链,可以对事件进行批处理以提高数据收集到区块的效率。仿真系统旨在演示智能合约如何处理机器传递的事件,并触发到另一台物理设备的命令,如控制Arduino板上LED的亮灭。并且,设备不必位于同一制造工厂的网络中,即同一信任域内。

图3.1 Physical devices interacting on the FabRec
如图3.1所示,智能合约设置为以交易的形式接受来自不同实体的出价。使用脚本通过API检查所有事件,并查找想要的字符串,查找到字符串后,脚本向Arduino发送信号使LED亮起。

3.2 Proof of Authority(PoA)共识

专用于私链的共识算法,链中有许多预批准的授权节点,有这些节点决定链中新块的添加,这些节点独立的验证区块内容,然后对区块进行投票,最后将区块添加到链中。

以太坊的测试网络可以使用PoA共识

3.3 结果

为了使用实验室中生成的机器数据测试两种共识算法,利用了以太坊的测试网络Ropsten(PoW)和Kovan(PoA),分析了两个指标:交易被包含在区块链的区块中所需事件和链延长到一定长度达成不可变所需的时间。两个指标都显示PoA较好。

但这不意味着PoW更差,主要是根据场景来判断。区块链的安全特性是牺牲网络性能换来的,这意味着区块链不是特别适合于实时数据传输和做决策。

IV. 工业上部署的挑战

  1. 区块链的本质要求它是去中心化的,自然而然的,这种情况下如何管理网络上的节点,并且可以信任对外部参与者的恶意攻击的抵御能力。必须设计新的商业模式来激励各制造商利益相关者参与网络,确保没有一组实体控制网络。
  2. 对许多制造商而言,共享制造数据是一个敏感话题
  3. 由于安全问题和缺乏基础设施,机器缺乏网络连接,阻碍了区块链更大规模的使用

V. Conclusion

FabRec原型提供了连接计算节点和物理设备(如Arduino / Raspberry PI和基本CNC机器)的概念验证系统,以证明在去中心化的和可互操作的网络上连接这些节点的可行性。我们使用以太坊智能合约,根据物理机器在网络另一部分记录的事件,自动启动给予Arduino系统的命令。展示了三种不同智能合约的数据模型。

支付宝
微信
0%