
关键技术:
微服务
为了满足供应链各个参与主体的灵活性、数据自主性需求,可以采用微服务架构,让系统具备可扩展性和高可用性。将供应链管理拆分成多个业务模块,每个模块专注于供应链某一主体的业务,对其提供个性化服务,让其可以独立编译及部署。

微服务网络架构
(1)服务支持方即平台运营单位,包括身份权限管理、电子合同管理、智能合约创建和配置、运行状态监控、收费管理、信息中心等业务模块。
(2)核心企业用户可以是制造商或零售商。以零售商为例,包括需求与计划、供应商管理、订单管理、销售管理、电子合同管理、仓储配送管理等业务模块。
(3)供应商用户包括原材料管理、订单管理、仓储配送管理、库存管理、电子合同管理、账户管理等业务模块。
(4)制造商用户包括需求与计划、制造与加工管理、订单管理、电子合同管理、仓储配送管理、账户管理等业务模块。
(5)分销商用户包括订单管理、销售管理、结算管理、配送管理、电子合同管理、账户管理等业务模块。
各个主体的功能模块打包为各自的应用服务,各微服务都有对应的独立业务数据子库,每个服务运行在独立的进程中,只关注单一的业务功能。服务和服务之间采用轻量级的通信机制相互沟通、彼此协作,各个主体通过同步记账向区块链网络写入数据,从而组合成一个完整的系统。由于拆分的模块之间耦合度很低,当发生问题时影响范围仅局限于该模块本身,而系统中的其他主体不受影响,整个系统依然可以正常运转。
微服务的基本工作流程为:
(1)客户端发起调用请求;
(2)调用的内容被序列化后通过网络发送给服务端;
(3)服务端接收到调用请求,执行具体服务并获得结果;
(4)将执行结果序列化后通过网络返回给客户端。
采用Spring Cloud作为供应链管理系统的微服务应用框架。Spring Cloud提供了一系列工具,可以快速搭建分布式系统中的公共组件,为各类服务提供模板性配置。通过Spring Cloud Netflix的Eureka组件可以搭建服务注册中心,实现服务注册与发现;通过Zuul组件可以实现服务网关,向外部系统提供统一的REST API;通过Ribbon组件可以实现服务消费以及均衡负载。Spring Cloud Config可以实现应用多环境的外部化配置以及版本管理。此外,Hystrix的融断机制可以避免在微服务架构中个别服务出现异常时引起的故障蔓延。
微服务的部署架构包括区块链网络、应用服务、服务支持和CA身份认证4个部分

部署架构
(1)区块链网络:提供统一的区块链服务。网络中核心企业、制造商、供应商、分销商节点体现为角色代表,记账节点不代表具体的参与方。共识节点支持集群部署,记账节点支持动态增加,外部服务通过统一区块链接入服务进行系统交互。
(2)应用服务:主要提供核心应用服务,与区块链网络协作共同完成系统运行。应用服务在WebLogic中间件上部署,数据库采用Oracle、MySQL两种数据库,提供横向扩展能力。
(3)服务支持:为供应链管理运营方提供服务管理,独立部署,负责各网络的配置和管理。可以动态增加网络中成员,实现BAAS服务能力。
(4)CA身份认证:提供统一的数字证书认证服务,主要包括参与方接入、用户接入、应用服务接入区块链网络等;提供第三方CA服务。
微服务架构模式有着系统组件化、部署灵活独立、系统复杂度低、易于维护等优势。它将系统组件化并分解为若干个相对独立的服务,服务和服务之间不相互依赖,可以独立部署。当功能改变时,只需要修改相应的服务,减轻开发工作量。同时,微服务架构将复杂功能分解为多个模块,降低开发难度,让开发过程更可控。当某个功能出现问题时,故障将被隔离在某个服务中,不会向进程内扩散,这样也就降低了维护风险。
2.多链
在供应链活动中,牵头单位可以是制造商,也可以是零售商。为了使供应链管理系统更具灵活性,本章进行了多链的设计,让系统能够适用于不同的场景。所谓多链,即以联盟链为架构的多个单链,单链与单链之间的业务交易互相隔离,每个单链都有独立的账本体系。联盟链以核心企业为中心,拥有更高一级的用户权限。在供应链网络中,允许一个业务节点同时接入多条通道,从而加入到多条链,参与到不同的业务中。例如,某一核心企业的二级供应商同时为另一家核心企业供货,那么该二级供应商就可以同时加入这两家核心企业牵头的单联,在不同通道中维护自己所在链的账本信息。

供应链管理系统的多链设计
在某个单链上,牵头单位通过与第三方CA的信息交互,负责其他用户(如供应商)的身份认证及准入。对于认证成功的用户,分配本单链的公钥和私钥,并加入允许用户列表。众所周知,区块链的非对称加密不仅能够通过私钥保证资金被某一特定用户接受,也能通过公钥来验证资金来源。当两个业务节点发生连接时,首先需要通过公钥验签完成“握手”,确认对方在允许用户列表中,再进行下一步的业务活动。具体如下:
(1)双方节点在允许用户列表中将其标识显示为公开地址。
(2)双方节点验证对方地址是否在其允许用户列表上。
(3)双方节点向另一方发送质询消息。
(4)双方节点发回质询消息的签名,证明他们对公开地址所对应的私钥的所有权。
如果任一节点对结果不满意,则终止该连接。
在单链创建时,允许牵头方在配置文件中设置该条单链的参数,包括区块链协议、出块时间、区块大小、活动权限类型、共识难度、点对点连接的IP端口以及JSONRPC API、允许交易的类型、每次交易的最大元数据。多个单链可以在单个服务器上处于活动状态,每个单链都有自己的名称和配置文件。要创建新的单链,需要两个步骤:
第一,牵头方输入链的名称,创建包含默认设置的配置文件,用户可以修改此文件;
第二,牵头方启动区块链,并被赋予所有用户权限。创世区块自动加载,保存配置文件中所有区块链参数的哈希值,以防止后续的意外更改。
首次启动时,区块链仅在单个节点上运行。如果要添加新的节点,需要提供三个参数:目标区块链名称、目标区块链的IP端口、现有节点的IP地址。之后,系统生成包含新节点地址的消息并发送给牵头方;牵头方验证新节点身份,成功后通过创建简单命令向该地址赋予连接权限,准予接入区块链;最后,新节点自动下载该条单链的配置文件,成功连接。
多链通过用户权限的划分解决了联盟链的数据隐私、效率和安全性问题,主要价值在于:
(1)确保某个单联上的活动仅对选定的参与者可见,保障供应链活动的保密性。
(2)引入预警机制,对异常交易加以控制。
(3)共识机制不同于公链,由于对多链进行了不同通道的划分,与规模相关的问题迎刃而解,共识效率得到了提高。
(4)作为一个封闭系统,某个单联只包含参与者感兴趣的交易(信息传递),避免区块链随着时间推移变得越来越庞大,包含越来越多的冗余信息。
3 物联网设备的数据安全与隐私保护
在供应链管理系统中,除了记录资金、订单的情况,还希望能够将资产的真实情况反映到区块链上。例如,用区块链记录材料采购、加工运输到终端销售的整个环节,并在区块链上追溯货物的生产过程、物流路径等细节,真正做到资金流、贸易流、物流的三流合一。
国内外已有文献涉及这方面的研究,主要集中在药品、零部件和食品供应链的追溯方面。
在这些场景中,需要从接入物联网(Internet ofThings,IoT)的设备上获取信息。
物联网本质上是一个传感器智能网,通过RFID、红外感应器、激光扫描仪等传感设备将物体与互联网连接,实现物体的智能化识别、定位、监控与管理。然而不幸的是,有研究表明物联网设备存在着安全隐患。
2015年,美国应用安全公司Veracode测试了6种常见的物联网设备,发现了严重的安全问题。该团队分析了物联网系统中使用的通信协议安全性,检查了前端(用户与云服务之间)和后端(设备与云服务之间)的连接,发现除了一种设备外,其他设备都未能执行强密码,因此前端连接是不安全的;另外,一些设备对用户连接缺乏加密,这将导致他们更容易受到攻击。后端的测试结果更加糟糕,一些设备没有针对中间人攻击提供足够的保护,也缺乏对回放攻击的预防,这可能会出发未经授权的操作;在实施过程中,也缺乏适当的证书验证,不能妥善保护敏感数据。
此外,大规模分布式传感设备的接入也让物联网的安全运维面临着挑战。基于Mirai僵尸物联网的分布式拒绝服务(DDoS)攻击曾经造成Dyn瘫痪,使得Twitter、Paypal等知名网站不得不中断服务。随着物联网设备的指数级增长,中心化的数据管理负载过重,造成信息严重堵塞,数据标准不一致还有可能导致通信兼容问题。目前的物联网中大部分数据都保存在中央服务器,通过集中数据管理服务器(CDMS)在广域网上提供服务。然而,提供服务的可靠性和可信赖性不能以完全安全的方式进行,数据的安全问题和隐私问题时有发生。通过虚假认证,设备有可能将更多的敏感数据泄露到通信网络或NPT之外,安全和隐私问题成为物联网发展的最大阻碍。
为了处理大规模物联网系统中的大量数据,需要增加互联网基础设施。解决此问题的最佳方法是利用分散式或分布式网络取代对数据的集中维护。该分布式网络需要满足“对等网络(PPN)、分布式文件共享(DFS)和设备自治与协作(ADC)”,而区块链技术正好同时具备这三个功能。
区块链允许物联网系统跟踪大量连接和设备,并协调设备之间的信息交互;同时,在分布式账本的帮助下,物联网可以以更快的方式进行对等消息传递。使用区块链技术的物联网系统,其网络结构和数据传递过程均不同于传统的物联网。
传统的物联网采用中心化的网络结构:
数据流向为传感器→广播网络→路由器→互联网→中央服务器→大数据→数据分析→用户;
而在基于区块链的物联网中,采用多中心或完全分散式的网络结构:
数据流向为传感器→广播网络→路由器→互联网→区块链分布式网络→数据分析→用户。
这里,区块链取代了中央服务器和大数据,数据被分散存储和访问,计算被边缘化。区块链的分布式网络不受单一用户控制,消除了单线程通信(STC)的信任危机,用户的数据可以掌握在用户自己手中。
随着物联网中采用区块链技术,数据流将变得更加安全和可靠。

因为区块链具有很强的可追溯性,可以通过提高供应链前向和后向关联的安全性来确保供应链安全。当供应链上的物品改变所有权时,区块链会记录时间、地点、价格、参与双方以及其他的相关信息。
以物联网设备制造商/网络提供商为例,既可以通过区块链访问上游供应链不可变更的产品交易记录、追溯原材料在供应链中的生命轨迹,也可以通过相关的交易记录识别下游供应链易受攻击的物联网设备用户,跟踪漏洞处理进度并向用户发出警报。
如果发现物联网安全漏洞,区块链可以跟踪此漏洞并在它进一步恶化之前加以遏制,这样与物联网相关的安全危机(如Dyn上的网络攻击)会变得更容易处理。

区块链在提高物联网设备前向和后向关联安全性的作用

本解决方案通过将不同企业的ERP系统主数据上链,可以打通企业间的信息壁垒,并保护商业数据在网络中传播的安全性和私密性;
利用智能合约能够保障供应链的信任环境,提升供应链运作效率。
然而,将区块链技术在供应链领域的应用还属于初级阶段,还面临着很多困难,例如缺乏通用标准和监管、缺乏成功的应用案例、参与主体对新技术认识程度不高、不愿意共享数据、区块链人才短缺、开发成本高等问题。
但是,伴随着技术的日趋成熟、国家政策的大力支持、应用落地的逐渐增多,区块链技术将逐步被市场所接受,在供应链领域大放异彩。

