亓越
摘要:物联网设备充斥和便利了我们生活的各方面,但物联网技术的碎片化问题日渐成为物联网发展的巨大阻碍,影响技术的革新,区块链技术的出现使这一问题迎刃而解。
关键词:物联网;区块链;去中心化;边缘计算
中图分类号:TP39 文献标识码:A 文章编号:1007-9416(2018)07-0094-02
随着区块链讨论的持续升温,以及物联网技术渗透生活,不难发现物联网的分布式特性与区块链的去中心化和分布式特点有着相似的共性,IBM也发布报告称物联网可能是区块链技术的最佳应用场景。
在物联网中,设备的海量数据是发展的核心,数据是价值所在。信息的碎片化、安全性、软硬件互不相通问题,一直成为制约物联网发展的最大因素。区块链在物联网的应用核心目标是解决不同领域的物联网系统之间可信操作和繁重操作的问题,从而创建一个开放的生态系统。没有区块链的辅助,物联网是割裂、封闭的体系,广域物联网和局域物联网不能发生交互,私有化部署的工业系统和IDC为基础的IT网络难以连接。物联网的数据往往需要较高的一致性和安全性,这是任何一个中心化体系下的技术难以解决的问题。物联网和区块链结合,就解决了其大量运用的安全性和一致性的问题。
1 物联网在实际应用中的痛点
与生俱来的碎片化。不同类别的共享单车需要不同的手机应用开启,这些节点并不等价,没有标准,是碎片化的。不止于此,同样联网的感应门、烟雾报警器、咖啡售卖机、红外线灯等所连接的网络也是割裂的、封闭的。从而造成同样类型的产品都是碎片化的,更不要说不同类型的产品了。而解决碎片化的一种方式需要引入操作系统以及中间件的概念,兼容碎片化的所有硬件设备,并提供统一的编程接口。
标准化也是一直困扰和阻碍物联网大范围普及的核心问题。IT技术是标准化的,个人电脑通过HTTP 协议和服务器进行交互,在浏览器上呈现出来,这是一种标准化。比特币节点之间的全网广播,也是标准化的。在标准化这件事上,整个物联网行业尝试了二十多年,在物理层标准上有 WiFi、BLE、ZigBee 等,工业网络有Modbus、工业以太网等,不同标准之间不能兼容,应用层的标准也一直没有推行起来。设备 B和设备B连接成功,但设备A却并不知道任何操縱或是请求设备B的指令。更致命的是,同样是一种设备,不同软件商的私有协议各不相同,难以交互。
在物联网的大规模应用及安全层面,也面临众多痛点。设备、芯片、模块、网络、平台、应用、数据、服务等本身就是一条很冗长的产业链,涉及到的硬件设备技术和软件服务技术庞杂,市场通道也没有完全打开,导致价值传导效应慢;其次,各类用户、物体对象、感知控制设备、服务平台、监管平台、第三方资源系统等之间的协作体系、信任体系和价值体系尚不完善,也导致物联网融入行业的难度较大;最后,生产厂商或服务提供者的中心化物联网平台,大多拥有未经用户授权的权限,收集和分析用户数据甚至控制用户设备,对用户隐私和安全造成很大威胁。
2 物联网与区块链结合的技术解决方案
2.1 应用场景的物体抽象
在实际的物联网场景中,我们面临的设备是来自多个厂家的,每个厂商都有多种型号的数据,这些数据都不一样,因此如何对这些物体进行抽象,对所需要的数据进行抽象,这是物联网应用层要去解决的问题。物联网端的数据偏向后端,兼容不同的设备和数据结构,就显得尤为重要,做到能兼容市面上比较多的设备是一个浩大的工程。所以设计一个硬件的抽象层,把所有的硬件全部抽象出来,这样数据在上传到区块链的时候就不需要把一个高、低电频的信号量存起来。嵌入式设备的存储空间有限,光一个状态可能就记不起来了,这些设备可以进行验证,在中间被设置起来。整个构架保证边缘数据的采集,确保没有人工干涉,进而把相对干净的数据上链,并且提供相应接口,能和其他的链进行数据交互。
标准在应用层的统一,是物联网当下最需要解决的问题,也是未来万物互联互通的重要基础设施。 物联网的标准不会在中心化的云端实现,而是在边缘计算的可编程开始,摒弃传统的模块+云的模式,应用逻辑会在固件之外,形成统一的编程模型。
2.2 不同物联网设备间的可信互操作
物联网设备出场时,商家把一个唯一地址写入硬件,并在硬件的包装盒内放置该地址私钥的二维码。控制中心通过获得私钥后发送给设备绑定命令(使用该私钥签名),从而拥有该硬件的完整控制权。绑定后控制中心可以删除设备的私钥,仅保存控制中心自己的私钥即。点对点控制:控制中心通过给设备发起一条帯自己签名的控制指令,来操作设备。基于链上状态的控制:当控制端无法和设备建立点对点连接时,可以让控制端消费一些机区块链Token(通证),在链上写入一个"状态改变〃,或"控制命令〃来操作目标设备。目标设备可以直接从链上同步状态或控制命令,或则通过一个可信节点同步状态或控制命令。这样区块链解决了所有设备都连上云后的运维成本和稳定性问题。自动化控制:并不需要使用合约来设置"气温低于25度则关闭空调〃的逻辑,这些自定化控制逻辑可以用传统的开发语言在控制端(比如一个App)里实现,降低了设备支持合约所需要的硬件成本,同时也减少了主链因为运行合约帯来的可能的卡死。可以基于上述设施,多厂商可以共建一个开放的生态。
2.3 数据在区块链上的同步
我们常见的产品溯源场景,往往在产品生产、存储、流通过程中数据反复被ERP、MES、WMS等不同中心化的系统录入,整个环节的一致性是完全没有保障的。这些物联网的数据基本是以时间为序列的,和区块链有天然的结合。盖上时间戳的数据,可以防止重放攻击,解决并发导致的死锁等问题,解决数据在流通中的最终一致性问题,过往这些数据在割裂的中心化网络中并没有有效地被结合起来。
边缘计算节点会以同步的时间戳为核心,控制局域网络内的业务逻辑。时间戳在整个区块链网络是同步的,追溯同一时刻整个网络各节点的行为可以还原网络某一时刻的状态。
2.4 可实现价值转移的共识机制
考虑到物联网里主控设备的计算能力有限,故排除比特币使用的POW(工作量证明机制)共识机制,选择区块链技术中常用的DPoS(授权股权证明机制)作为共识算法。根据这种算法,全网持有区块链Token(通证)的人可以通过投票系统来选择区块生产者。一旦当选,任何人都可以参与区块的生产。网络上的资源不是免费的,在任何个包含了多笔物联网合约交易的区块诞生之时,系统将奖励打包区块者。这样就实现了数据的价值转移。未来基于区块链的物联网生态系统中,不同的参与方可以通过提供资源获取Token回报,或是消费Token获取资源,并且彼此分享,形成一个经济价值驱动的自治体。
2.5 区块链上的节点分类
物联网的节点往往是非常小的运算单元,算力很低,内存很小,MCU不会超过512kb, Linux版本的节点也就是路由器的级别,存储也很小,MCU的只有1M的Flash,这样的节点参与共识是非常困难的。所以物联网的结构一定是由多个节点组成一个网络,这个网络里会有一个或是多个应用,应用通过应用接口和链发生交互,而本地应用所需的计算能力来自边缘计算单元,可以是网关或是路由器。应用可以使用中心化或是去中心化的方式管理局部网络,并和链发生交互。根据以上特点,把物联网区块链生态里的节点进行细化分类,比如提供接口功能而无存储功能的轻节点、记载全网信息由高性能设备扮演的全节点、担负打包和投票功能的代表节点、验证交易的控制节点等等。
2.6 去中心化的安全性
物联网与区块链的结合在隐私和安全性方面也具备很强的重放攻击,因为本地自组网是去中心化的,在一个本地应用网络中,一旦主要应用节点发生故障,应用逻辑会转移到另一个节点继续完成,从而保障了本地应用网络一致性的问题。物联网本身的安全性是由操作系统本身保证的,采用对称密钥,密钥在网络中不传输。此外链网络释放基于时间戳的一次性Token 到应用网络,从而对抗重放攻击。
3 结语
物联网是区块链技术最佳的应用场景,同时物联网数据的一致性、安全性和不可篡改性也需要一个技术来实现和保障,解决信息孤岛,区块链与物联网的结合已成必然。