和老师商量着定了大方向是物联网和区块链的结合,这篇文章是这段时间以来对该方向调查的总结。
物联网(Internet of Things,IoT),有两层含义:其一,物联网是在互联网基础上进行延伸和扩展的网络,其核心和基础仍然是互联网;其二,网络的用户端延伸和扩展到了任何物品与物品之间,可进行信息交换和通信,也就是物物相连。
我国将物联网定义为:通过信息传感设备,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。在物联网时代,能接入网络的不仅仅是计算机和智能手机,还有汽车、健身设备、锁具、交通摄像头甚至你能想到的一切。
常见 IoT 场景:智能电网、智能家居、智慧交通、智能制造,智慧城市
1. 背景
1.1 中心化的问题
云服务器和维护成本:在过去的十几年中,“中心化的云服务器+小范围部署”是物联网主要的通信形式。然而,物联网技术为产业升级带来变革的前提是海量设备的入网。当接入设备达到数百亿或数千亿,服务器面临的负载将越来越大,面临单点瓶颈和故障问题。云存储服务的需求也不断提高,这些都需要企业投入大量的资金来维持,从而带来巨额成本,阻碍物联网进一步发展。
数据流动:在物联网时代,各种产品都接入一个庞大的智能网络,交易的主要目的是产品使用权的流转,甚至网络中的每一个节点、每一个产品都可以同时承担交易对象和交易发起者的角色。因此,交易数量会呈几何级数增加。举个简单的例子,如果购买一辆汽车(取得所有权),那么在用它代步的这段时间里,交易一次就够了,而如果仅仅是获得流转中的使用权,那么我们需要每使用一次就进行一次交易。因此,物联网中会产生天文数字的交易频率和交易数量,相关的清结算系统要分秒不停地顺畅运转,这无疑会对相关的基础设施提出极大的挑战。这将是一个复杂的网络,复杂到任何一个中心化的机构都无法承担这样的任务。
区块链并不是解决中心化问题的好办法,首先,对于海量数据存储的需求,区块链的存储同样是昂贵的,其次,区块链的固有延迟导致了它的吞吐量甚至不如传统的中心化系统。区块链可以解决单点瓶颈和故障,但是其它的分布式系统也可以,区块链的优势之处在于保证参与各方之间的信任,因此用来存储一些关键且重要的信息,另外还可以减少中介的参与,缩短交接时间,使交易各方之间的协调更快;遇到问题更容易和更快追溯出问题的地方,减少欺诈风险等。
1.2 数据安全和隐私
数据安全:现有物联网设备朝着能耗低、重量轻的方向发展,其能量和计算资源大部分用于执行核心程序,只有很少一部分配给处理安全和隐私问题。这导致传统物联网设备极易遭受攻击,数据易受损失且维护费用高昂,此外,由于物联网设备同生活生产联系紧密,会生成、处理和交换大量安全相关的数据和隐私敏感的信息,受到攻击后产生的后果也极为严重。一些物联网设备典型的信息安全风险问题包括:固件版本过低、缺少安全补丁、存在权限漏洞、设备有过多的网络端口、未加密的信息传输等等,事实上,由于物联网的核心是互联网,互联网上层出不穷的黑客攻击、数据泄露、恶意软件、网络窥探都可能威胁到物联网。
数据隐私:此外,制造方经常在产品中留有后门或权限,在未经用户同意的情况下获取用户在使用中产生的数据,而用户对此要么毫不知情,要么没有办法制止,用户的隐私权受到严重威胁。所以对用户来讲需要一个透明度保障的办法,保障用户知晓其他人对自己数据的使用以及自己对数据的完全控制权。
物联网安全问题的核心是缺乏设备之间的相互信任机制,传统的认证和授权机制易受网络攻击影响,区块链由于不可篡改的特性可以有效抵御大部分攻击,方法是利用区块链来实现认证和授权。
另外,区块链无法保证隐私,区块链中每个参与者由其公钥标识,交易时只需要知道对方的公钥,但这种匿名属于伪匿名,由于区块链中所有交易都是公开的,通过分析这些数据,可以识别地址和用户之间的关系,推断出用户真实身份。另外,区块链的匿名不受监管,大概率会沦落为犯罪和洗钱的温床,这是国家所不能忍受的,如果区块链想继续发展,必然不可能向该方向努力。
但区块链中隐私的需求又真实存在,但我们需要正确理解隐私的含义:
- 用户拥有对自己数据的完全控制权,包括知晓被谁使用和如何被使用及随时撤回授权;
- 数据的隐私而非身份的隐私,存在区块链中的数据由于是公开的,可能被竞争对手利用从而获得竞争优势。
对于解决隐私问题,目前看到三种方法(可以缓解但无法消除该问题)
- 每笔交易使用新的密钥或对每个交易对象使用新的密钥;
- 对私有区块链,如果其他参与者可以通过跟踪您设备的活动获得竞争优势,建议不要对所有交易使用相同的区块链,通过仅为需要协作的实体设置区块链,并仅将它们用于自己希望协作的进程,最大限度地减少设备地暴露。与单个区块链相比,这增加了协调成本,但减少了隐私暴露的可能性;
- 同态加密和零知识证明。虽然能解决,但是这两种方法都是资源密集型的,在资源受限的 IoT 设备上适用性有限。
1.3 自动化
互联网本身就是一个去中心化的网络,在物联网时代,较之现在,接入网络的节点数量会出现极大的增长,因此,未来的物联网一定是个自组织、自调节的系统。在这样的系统中进行信息和价值的交换,必然需要可靠的去中心化点对点价值传输网络,区块链可以提供这样的平台。
另外,区块链技术中的智能合约可将每个智能设备编程为可以自我维护和调节的独立的网络节点,可在植入的规则基础上与执行与其他节点交换信息或核实身份等功能。智能合约运行是分布式的,能完成高度自动化的工作流程,这一点可以进一步应用。
2. 区块链自身的问题
相比于集中式的数据库,区块链解决方案交易处理吞吐量比较低,交易确认延迟跟高,公链中这个问题尤为突出。
区块链中每个节点执行相同的任务,没有空间用于并行任务执行,即没有分片,以太坊在努力改进这一点。分片主要是为了扩大每个区块的容量,从而提高交易吞吐量。
矿工问题,矿工虽然不能伪造交易或重写历史,但可以拒绝把有效交易添加到区块链中,所以要慎重选择自己的挖矿节点,最小化它们之间的串通机会,私人网络中应签署法律合同来合理地惩罚合谋。
智能合约的法律可执行性有限。如果交易实体对智能合约操作的结果提出异议,会发生什么?增加法律可执行性的可能性的一种方法是在智能合约中包含对实际真实合同的引用,反之亦然。这是一个称为“双重集成”的过程,它的工作原理如下:(a)部署智能合约,在区块链上记录其地址,并在真实合同中包含该地址(b)哈希相应的真实合同,记录其哈希摘要,将真实合同存储在安全空间(可以集中或分散),(c)向智能合约发送包含真实合约在其元数据中的哈希值的交易;然后智能合约将该信息存储在自己的内部数据库中。如果出现法律纠纷,可以指向存储在智能合约中的哈希值,然后显示真实世界的合约(由该哈希值唯一标识)并证明区块链上的操作与预期结果之间的联系
设备所有权的证明,当希望提取设备在区块链中对应的货币时(比如把设备卖出去了),遇到不支持智能合约的区块链,怎么办,办法是把现实世界的合同哈希值作为元数据放在代表该设备价值的代币里。即任何时候都可以对这些代币进行公证。
智能合约是把双刃剑,里面代码写的有问题,就可能发生严重的安全事故,就像以太坊的the DAO事件。
最后,区块链网络可能需要以下机制来补充其功能,并且这些机制也应是分布式的。
- 指向区块链中资源的DNS服务,用于查找相应的区块
- 安全的通信和文件交换,区块链中的消息通信是公开的,如果需要两个节点间专用的通信,需要 telehash,Whisper 之类的协议,文件共享则可以通过内容寻址的 P2P 文件系统来解决,例如 IPFS
求解 PoW 难题的高资源需求
由广播交易和块到整个网络造成的交易确认的长延迟和低可扩展性
3. 应用场景
3.1 软件更新
常规的物联网设备的软件更新或bug修复需要对设备的完全控制,这一机制的安全性是个大问题,并且,当设备数较多时,厂商的服务器压力很大,扩展也是一个问题。其中,手环等可穿戴设备往往要借助智能手机来完成更新。
制造商的所有物联网设备都在同一个区块链网络上运行,制造商部署智能合约并允许它们在区块链网络上存储最新固件更新的哈希值,物联网设备要么将智能合约的地址存到它们的区块链客户端,要么通过搜索服务找到智能合约。然后它们可以查询合约,了解新的固件更新,并通过分布式对等文件系统请求更新并通过哈希验证更新的正确性。对该文件的第一次请求由制造商自己的节点(该节点也加入区块链网络)提供服务,但更新文件传播到足够的节点后,制造商的节点可以停止提供服务,由已获得更新的设备向未获得更新的设备提供服务,提供这一服务的节点可以收取适当的费用,这一功能由区块链中的加密货币系统提供,所有的交互都是自动的。
3.2 设备提供资源
这里包括三种含义,一种是设备所有权的更换,二是设备短时间的租用,三是设备向其他人或物提供某种服务。在这里,每台设备都可以拥有自己的账户,然后将设备本身或设备服务的价值数字化,并固定在加密货币中,这样就形成了物联网中的付费层,为设备间的服务市场铺平了道路,即使没有人的参与,设备间也可以自己调用自己账户中的资金租用其它设备完成某项任务,从而实现整个物联网系统的自动化。这里有一个例子,如可以固化房屋的价格,设定在电子锁中,通过支付房主设定的加密货币数量和验证正确的签名,与锁通信来解锁它,通过让所有这样的电子锁运行在同一区块链上来简化计费,同时简化现实房屋合同的拟定过程。
又比如一个分布式存储的例子,过去,一些基于云的在线文件存储服务(如Dropbox)允许用户上传其硬盘备份,提供备份存储服务并允许用户每月访问和向用户收费。但是,这种方式效率低下。DSDIN的智能合约允许分布式存储生态系统开发,因此用户可以通过出租自己的硬盘赚取少量费用或租用未使用的网络空间来降低文件存储成本。合同的工作原理如下:首先,有人将需要上传的数据分成块,加密每个数据块以保护隐私,然后构建一个Merkel树。然后,此人应根据以下规则创建合同。对于每N个块,合同将从Merkel树中提取随机索引(使用可通过合约代码访问的前一个块的哈希来提供随机性),然后为第一个实体提供一定数量的DSD以支持使用类似的简化验证付款(SPV)[15]证明树中特定索引处的块的所有权。当用户想要重新下载他的文件时,他可以使用微支付通道协议(例如,每64K字节0.1DSD)来恢复文件;对于费用,最有效的方式是付款人直到最后才发布交易,并且应使用具有相同随机数的稍微更具成本效益的交易来替换每64K字节后的原始交易。
该协议的一个重要特征是,虽然似乎一个人信任那些不会丢失文件的随机节点,但他可以通过秘密共享将文件分成许多小块,然后监视合同以知道每个小块仍然是由某个节点保存。如果合约仍在支付,则证明有人仍在保存文件
3.3 能量领域
布鲁克林的一个社区实验,居民的太阳能电池板的能量盈余记录在区块链上,通过智能合约可以将其出售给邻近各方,同时,有能量缺口的居民也可以通过合约购买,电力部门也可以参与到这一过程中来。
能量区块链:满足IIoT不断增长的能源需求是一个挑战,而且IIoT节点的数量和性能需求不断增长。之前的研究已经提到IIoT节点可以以P2P方式与其他节点交换其剩余能量,从而达到能量的供需平衡。结合energy harvesting, wireless power transfer, and vehicle-to-grid等技术,IIoT目前有三种典型的能量交易场景。
Microgrids:具有太阳能电池板或风力发电机的智能建筑物可形成微电网,其中建筑物在微电网中以P2P方式收集环境能量并相互交换能量。
Energy harvesting networks:具有能量收集能力的工业节点可以从可再生能源获得能量,也可以使用P2P的能量交易方式通过移动充电桩进行无线充电。
Vehicle-to-grid networks:电动车辆在电网负载小时充当能量存储设备,在负载高时把能量送回电网。也可以以P2P的方式把能量出售给邻近的需要充电的电动车辆。
现在面临的安全与隐私问题:
IIoT节点在不可信和不透明的能源市场中进行大规模分散能源交易是不安全的。
具有剩余能量的IIoT节点由于担心隐私而可能不愿意作为能源卖家参与。在这种情况下,IIoT节点之间的能量供需是不平衡的。
在P2P能源交易中,有一个中介来审核和验证IIoT节点之间的交易记录。
使用联盟链来解决这些问题,是一个场景通用的成本可接受的能量区块链。
3.4 供应链
货物在供应链各环节流通时,装运信息缺乏可见性,并且拥有装运延迟,这种延迟通常是由于一个流通的批准文件或货物交接造成的,随着这种事务的增加,相关的交接文件可能错位或丢失,或处于等待状态,可以使用智能合约数字化这一过程,并从供应链中删除这类中间商的工作。如1中所述,区块链主要记载货物的位置和时间信息,作为货物的装运证明和交付证明。这样可以最大限度地减少装运延迟,更准确地预测货物地交付时间,更好地实时检测库存水平。
位置数据由IoT传感器捕获,IoT传感器将数据转发到IoT平台。供应链的参与者包括原始设备制造商(OEM),供应商,第三方物流提供商,托运人和仓库。每个参与者都可以根据参与者的角色查看区块链中的相关货运数据。制造商使用物流管理系统来查询区块链的装运数据,并向区块链提供额外的装运信息。
具体举例如下:
装有产品的箱子从制造商离开,通过铁路到达最近的港口,通过海运到目的港口,再送到经销商处,最后到达零售商。整个过程设计多个利益相关者以及多道交接和检查,令每个利益相关者携带一个智能跟踪器,里面包含BLE,GSM或LTE以及安装好的区块链客户端。BLE用于设备判断它们是否接近,接近时它们可以通过LTE在互联网的区块链上进行交易,GSM用于定位,而区块链客户端,是因为我们设置了一个区块链网络用于跟踪货物信息,这样就意味着有一个共享数据库可跟踪,每一方不再需要维护自己的数据库并根据交接内容不断地更新数据库。另外,区块链中的数据还具有加密可验证性,自动沿网络传播并扩散到所有利益相关方,物流信息在区块链中不可更改,可用于审计工作。当两个利益相关者见面且箱子也在时,他们的设备可以自动的将签名的消息发送到预定的智能合约,以允许链上的每个人知道现在箱子的位置,同时因为交易被签名,它会作为海运公司关于集装箱已到达目的港的加密可验证收据的声明。资金的流通也可以通过智能合约在银行间自动完成。
或者利用比特币的代币交易模型完成供应链的整个过程,是一个很有意思的想法。
同时,可以令需要定制服务的用户也加入供应链,用户直接在区块链上提交自己的需求(可能包括产品的模型和各种参数),工厂收到后确认自动完成并自动交付。完成整个过程。
案例:Precyse Technologies专门提供基于有源RFID技术的实时定位和供应链可视化解决方案,主要用于跟踪物体位置和移动人员或实物资产的室内外定位,帮助工作人员有效的识别、定位、检测状态和沟通。
3.5 自动驾驶车辆
车辆可以自行加油或充电。如果车辆上的传感器检测到需要维修,则车辆可以自动安排预约并开车到维修设施。自动驾驶汽车制造商可以及时获得区块链上捕获的发动机或动力传动系故障信息,并可以使用此信息来确定组件是否出现故障趋势
客户受益于制造商提高的服务水平,提高消费者信心。制造商,监管机构和供应商可以适当了解区块链中的组件故障,并可以更快地主动应对故障趋势,以确保消费者的安全和满意度。在没有人为干预的情况下,车辆将安全地自动支付加油或维修费用。加油,维修和付款的永久记录将记录在区块链上,并由参与者共享,包括车主,制造商,维修设施和融资公司
将传感器的数据放在区块链,利用智能合约可以达成自动修车、加油,并利用区块链货币的固有智能完成维修和加油的费用支付。这些支付记录也将存在区块链中,同样还利用其采集的信息不可改变供车主、制造商、维修设施等各方访问数据。
3.6 制造工厂资产管理
区块链和物联网解决方案可以预防和预测制造工厂设备的故障。设备传感器可以检测诸如过度振动或热量之类的情况,这可能导致故障或操作员受伤。从传感器在区块链上捕获的关键阈值数据将用于检测这些故障的趋势,并在故障发生之前促进主动维护和维修。从工厂设备生成的分析和认知数据的应用将使可靠性,维护和操作人员能够更加详细,准确地了解资产绩效。监管机构和工厂设备供应商可以查看设备记录,并可以及时提供检查和认证,以确保设备的可靠性。第三方维修合作伙伴可以监控区块链的预防性维护,并将其工作记录在区块链上
设备制造商可以通过设备中安装的传感器预测客户设备的某些部件需要更换,并预先将备件运送到客户附近的仓库,这可以大大缩短客户等待更换的时间,减少停机造成的损失;而另一方面,客户无需囤积大量备件,占用资金和仓库,这种方法还可以降低客户从其他品牌购买备件的可能性,增加制造商的收入。
基于区块链的缓存内容分发那篇论文主动缓存策略分两阶段,第一阶段是预取阶段,边缘服务器先从服务提供者那里下载资源,第二阶段是交付阶段,内容被交付给移动客户端。这和该案例中设备提供商会根据数据事先将相应配件放在工厂附近的仓库,工厂需要时直接交付,和两阶段过程较为相似
基于物联网数据的时间序列性质,大多数设备故障的预测或检测问题可以抽象为半马尔可夫决策过程。
4. 落地项目
4.1 ADEPT
2015年1月,IBM宣布将与三星联合打造ADEPT(Autonomous Decentralized Peer-to-Peer Telemetry)系统,利用区块链技术实现去中心化的物联网。ADEPT平台由三个要素组成:区块链(智能合约)、Telehash(P2P信息发送)和BitTorrent(文件分享)。通过该平台,两家公司都希望带来一个能自动检测问题、自动更新、不需要任何人为操作的设备,这些设备也将能够与其他附近的设备通信。
4.2 Filament
2015年8月,区块链物联网项目 Filament 获得A轮融资500万美元。Filament 的联合创始人兼首席执行官艾瑞克·詹宁斯(Eric Jennings)谈到,Filament 是一个使用比特币区块链的去中心化的物联网软件堆栈,能够使区块链上的设备拥有独特身份。通过创建一个智能设备目录,Filament的物联网设备可以进行安全沟通、执行智能合约以及发送小额交易。基于上述技术,Filament 能够通过远程无线网络将辽阔范围内的工业基础设备沟通起来,其应用包括追踪自动售货机的存货和机器状态、检测铁轨的损耗、基于安全帽或救生衣的应急情况监测等。鉴于这一设想,詹宁斯认为他的项目与 ADEPT 项目在本质上是相似的,不同的是它将针对工业市场,使石油、天然气、制造业和农业等行业的大公司实现效率上的新突破。
Filament 的一种服务是,传感器不接入区块链但连到网关从而降低部署成本,网关形成网状网络,通过称为“telehash"的协议以分布式和安全的方式相互通信,并通过公链上的智能合约相互交互。
4.3 NeuroMesh
2017 年 2 月,源自 MIT 的 NeuroMesh 物联网安全平台获得了 MIT 100K Accelerate 竞赛的亚军。该平台致力于成为“物联网疫苗”,能够检测和消除物联网中的有害程序,并将攻击源打入黑名单。所有运行 NeuroMesh 软件的物联网设备都通过访问区块链账本来识别其他节点和辨认潜在威胁。如果一个设备借助深度学习功能检测出可能的威胁,可通过发起投票的形式告知全网,由网络进一步对该威胁进行检测并做出处理。
4.4 DIPS
众享互联与克莱沃合作提出分布式物联网安全解决方案——分布式智能配电信息安全系统(DIPS),由管理软件、安全加固型电源分配单元(PDU)和网络安全控制器构成。该系统采用安全通讯协议、动态加密隧道、多分片随机传输和双因子验证等技术手段,可以解决物联网架构络层中数据网关到中心/管理中心的数据传输安全问题。
5. 一些思路
5.1 IoT 设备接入区块链
把物联网终端设备和网关集成到基于区块链的物联网平台上可以通过以下方法实现:
- 网关作为区块链的全节点,终端设备和网关通信
- 网关作为区块链的轻节点,终端设备和网关通信
- 终端设备作为常规传感器,电池供电的终端设备不足以集成区块链客户端,由物联网网关把数据推送到区块链
- 终端设备作为服务器可信的客户端:使用BCCAPI这样接口的简单形式的客户端可以集成到电池供电的物联网终端设备中
- 如果终端设备不是由电池供电并且始终开启,终端设备可以作为区块链的轻节点
一个实例为:LPWAN技术可以跟踪覆盖数公里范围的人员或设备。电池供电的物联网终端设备将位置数据发送到LoRa网关。然后,LoRa网关使用智能合约将此数据流通过官方Golang的以太坊客户端Geth路由到私有的以太坊区块链。使用连接到Dragino LoRa / GPS Hat 的Raspberry Pi 2构建LoRa终端设备,使用Raspberry Pi 3构建LoRa网关。为了实现这样的双向LoRaWAN-Ethereum代理,网关应运行LoRa协议软件以与终端设备通信,并运行以太坊客户端以将数据路由到区块链网络。LoRa协议软件用于将数据包转发到应用程序服务器。此外,使用初始生成块创建私有以太坊网络,其具有简单的挖掘设置,以实现更快的响应时间,即更短的挖掘时间。
要使网关和区块链交互,需要部署智能合约,部署后智能合约的地址和程序二进制接口(ABI)用于与其交互。使用一个 smart proxy 从 LoRa 包转发器捕获数据,然后通过 JSON-RPC 接口将其提供给 Geth 并调用智能合约。相关的项目代码位于 blocky
由上产生的思路:
- 比如通过Wi-Fi,ZigBee,LoRa等不同的无线技术连接到区块链节点
- 无线接入过程中的损耗,延迟问题
- 通过休眠节省能量的设备和区块链节点间的同步问题
- 本地搭建私链时 PoW 的替代方案
- 向周围的边缘服务器借算力
- 参与非工作量证明的共识算法
- 只有全功能节点参与共识,使用簇头管理簇内节点的形式
5.2 和其他技术结合
区块链使得在链上数据不可篡改,如果仅是单独使用,则无法解决数据可信的问题,但是如果搭配好物联网和人工智能技术,则可以在很大程度上提升上链信息的可信性,确保线下实物准确向线上映射,提升系统总体上的可信性,进而在更多地场景实现落地。
参考文献
[1] 工业和信息化部信息中心. 2018 年中国区块链产业白皮书[M]. 北京. 2018.5:84-86
[2] 张健. 区块链,定义为了金融与经济新格局[M]. 北京:机械工业出版社. 2016:20-27