范吉立 张岩峰 聂铁铮 于 戈
(东北大学 沈阳110819)
随着物联网技术的不断发展,物联网设备和传感器的数量巨大并继续保持稳定的增长速度。据国际数据公司(International Data Corporation,IDC)预测,到2025年,物联网设备将超过410亿台,它们生成的数据将达到80ZB[1]。数量如此庞大的物联网设备,将面临终端设备易遭受攻击、设备接入验证不可靠、数据交换不安全、管理服务集中配置部署[2]、供应链各主体之间缺乏信任[3]等一系列问题。区块链技术利用公私钥加密算法、共识协议,实现了一个可信的分布式系统和应用平台,具有无需信任、数据共享、分布式存储、容错性高、通信安全等特性,能够在多个方面解决物联网所面临的挑战。
2014年以来,区块链在金融、网络安全、物联网、物流等非加密货币领域获得巨大的关注。尤其在物联网领域,区块链作为通用的基础平台,承载交易和智能合约,通过满足特定的货物或环境条件执行相应程序。据IBM分析,区块链和智能合约可以为物联网提供建立信任、降低成本和加速交易[4]等优秀特性。与智能制造密切相关的工业物联网(Industrial Internet of Things,IIoT),在区块链技术的支持下,能够弥补其安全性方面的缺陷,解决可扩展性、隐私性和可靠性问题[5],为制造业提供预测和决策信息。同时,区块链还能够降低传统工业物联网架构中的服务器负荷,保证供应链可追溯,通过智能合约对设备进行追踪管理[6]。
物联网与区块链的集成示例如图1所示,物联网设备与物联网系统和区块链互联,区块链上包含多个智能合约,负责物联网设备的管理、设备间数据交互以及提供应用服务等。
图1 物联网与区块链集成示意图
物联网系统中,每个物联网设备都可以对外提供服务,物联网设备之间还有大量事件交互以及复杂的关系,当这个规模不断扩展时,就会带来前所未有的安全问题[7],主要体现在几个方面:物联网缺乏相关的标准协议、隐私安全无法得到有效保护[8]、物联网设备易遭受攻击、设备访问控制不可靠。
以物联网为基础的智能制造系统在各个设备制造商之间起到协作作用,在整个制造生命周期中不间断地收集数据并且由数据驱动[9~10],其中涉及到大规模的分布式制造商及其设备,因而智能制造系统及参与者之间的信任性成为值得关注的问题。智能制造系统信任的重点在于数据的准确性、完整性和可信性,因为失真的数据将导致基于此的预测和诊断决策出现失误,从而影响制造过程。制造商与客户,供应商,分销商,服务提供商之间无信任的协作也会导致检查、认证等过程产生高额成本。此外,智能制造系统还要求具备互操作性、信息透明性和分散决策特性[11]。当前制造系统在上述关键特性实现上,仍然存在很多问题,如互联程度低、信息数据不共享、资源大量浪费、设备安全控制较差、必须集中决策等,需要借助先进信息技术作为辅助,提升智能化水平。对于物联网和智能制造面临的这些安全挑战,研究人员在试图通过区块链和智能合约技术提出相应的解决方案。
区块链是一种电子记录形式的账簿,其中每一个区块是账簿的一页,从第一页“链接”到最新一页。这些区块一旦被确认就不能修改,每个区块包含了当前一段时间内的所有交易信息和区块元数据,具有分布式、去信任、开放、不可篡改、匿名、自治等特性[12]。作为交易的记录载体,区块链可以用作分布式存储机制应用于各个领域,存储在区块链上的数据信息具有不可篡改、可验证、可溯源等特性。
区块链是一个分布式部署的记账系统,它在网络上各个节点之间需要共识来实现数据的一致性。目前主流的共识机制有PoW(Proof of Work)、PoS(Proof of Stake)、DPOS(Delegated Proof of Stake)、POA(Proof-of-Authority)、PBFT(Practical Byzantine Fault Tolerance)等。其中工作量证明PoW是当前应用最普遍的共识机制,在Bitcoin、Ethereum、Litecoin、Dogecoin等区块链中广泛应用。
PoW需要计算能力超过全网的节点计算能力总和的51%才能更快地解决工作量证明的数学难题,从而有机会篡改已经确认的区块,更改历史交易的内容。然而,随着区块链网络的不断增大,越来越多的节点不断加入,增加全网的计算能力,一个单位或组织想集结计算能力并更改已确认的区块变得越来越困难,因为区块都是通过工作证明链接起来的,区块后面被确认的区块越多,篡改的成本就越大,这种篡改难以持久。PoS和DPoS均根据持有数字货币的数量和时间决定区块的记账权,区别在于DPoS需要先选举出代理人,类似董事会投票,再由代理人来为区块记账。PBFT是一种状态机副本复制算法,每个副本节点都需要和其他节点进行P2P的共识同步,具有(N-1)/3的容错性,其中N为参与节点总数。
上述共识协议均具有抗攻击性,公有链(Bit-Coin、Ethereum等)的抗攻击能力最强,需要全网过半的计算力才可能攻击成功,即使用于小规模部署的联盟链共识PBFT,也具有接近1/3的容错能力,这些共识协议保证了区块链已经确认的区块内容不可篡改,从而保护交易数据的安全。
区块链中获得记账权的节点在创建新区块时,在当前数据区块头中加入时间戳信息,标明区块数据的写入时间。主链上各个区块按照时间顺序依次排列。时间戳可以用作区块数据的存在性证明[13]。同时,区块创建过程中生成的所有交易记录通过层层哈希计算,形成Merkle树结构,最终生成Merkle根哈希值,与时间戳一起保存在区块头中,该哈希值生成过程都要经过其他节点的验证。这种存储机制保证了数据的真实和可验证,无论在什么时间、在什么机器上验证,都将得到一致的验证结果。
区块链本身是从创世区块到当前区块的一条最长主链,不同于传统集中式数据库系统记录的是当前数据状态,区块链基于时间戳和哈希值,记录了区块数据的完整历史,数据可以沿着链条逐个追溯,理论上可以追溯到所有历史源数据、目标数据以及处理过程。但实际上依靠区块链本身的简单查询不易实现溯源,需要通过构建智能合约或外部查询应用,为数据内容和对应的交易建立索引,才能实现链上数据的可信溯源。
链上数据具备了上述三种特性,即可保证数据的安全可信。将区块链应用于物联网和智能制造,可以把物联网设备之间的弱信任转变成对区块链系统的强信任。区块链分布式系统的特点也正好契合物联网设备的分散部署,智能制造多方协作和数据交换的实际需求,因此研究和开发区块链与物联网、智能制造系统的集成将对该领域的发展具有重要推动作用。
物联网技术利用现有网络基础设施,将各种物理设备与互联网集成,实现物与物、物与人之间信息交换,随着物联网设备的不断增长,分布范围越来越广,设备的安全控制、身份认证、数据交换、安全防御等问题逐渐凸显,传统集中式的访问控制系统已经不能适应物联网的发展需求[14]。基于区块链技术实现的物联网成为当前学术研究的重点。2017年3月中国联通和中兴通讯联合多家研究机构在ITU-T SG20成立全球首个物联网区块链标准项目,定义了物联链(Blockchain of Things,BoT)概念,即基于区块链的分布式物联网。2019年11月,中国通信标准化协会(CCSA)牵头多家通信公司和研究机构,发布了《“物联网+区块链”应用与发展白皮书》,提出一系列物联网+区块链技术应用的发展建议[15]。
区块链技术应用到物联网领域,涉及到区块链系统与大量分散部署的物联网设备进行连接和通信,因此,需要解决的一个问题是物联网设备如何与区块链系统进行集成,关于这个问题,目前研究者们提出多种方案。
4.1.1 设备直接接入区块链
物联网设备全部接入区块链网络,这种是最直接的集成方式,物联网设备之间的所有通信都通过区块链,能够确保交互记录不可篡改并且可追溯,IoT应用可以很方便地提供服务。Ana Reyna等[16]分析了这种集成方案存在的挑战,比如在区块链中记录所有的交互数据将给带宽和数据存储带来很大压力,为了向区块链发送数据,设备需要具备加密功能,这样对硬件的计算能力有更高的要求,从而给计算能力较弱的节能型终端节点或传感器等设备接入区块链系统带来很大的挑战。
4.1.2 网关设备连接至区块链
Shi-Cho Cha等提出物联网网关设备连接至区块链方案[17],该设计利用网关设备向区块链网络发送交易数据,在区块链上创建相应的智能合约记录IoT设备信息,管理IoT设备和用户访问权限,达到对IoT设备信息隐私保护的目的。该方案减少了接入区块链网络的物联网设备数量和数据传输的带宽压力。
4.1.3 混合互联
采用云计算、区块链、物联网混合的云块物混合互联方案[18],是对前两种方案的改进和扩展。前两种方案对于有高性能需求的物联网应用支持较弱,同时也不能满足大规模物联网设备之间交互通信的需求。在混合方案中,需要持久保存的关键交互信息记录在区块链上,其余的交互信息仅在物联网设备之间进行,并将数据存储和处理交给云计算设施。这种方案要求物联网应用能够明确区分并优化实时交互事件和需要上链的交互事件,对它们进行合理调配。
4.1.4 物联网区块链
除了与现有区块链技术进行集成外,还有一些扩展架构,例如,针对IoT领域而设计的下一代区块链IoTA[19],IoTA使用基于有向无循环图(DAG)的Tangle数据结构,与传统区块链中的区块不同,Io-TA不需要矿工,当发送一个IoTA交易时,需要完成对另外两个未确认交易进行验证的任务,从而克服区块链的上链成本和可扩展性限制问题。这样,可基于传感器等设备建立一个快速、低能耗的区块链物联网网络。
表1详细对比了四种集成方案的优势和不足之处。其中,云混合互联方案更通用,符合实际应用场景的需求,既保证了关键数据信息能够存储到区块链,实现设备和组织间的数据共享,通过网关和云计算技术使得隐私策略能够得到执行,保护组织内部设备数据,同时也避免了大量数据上链带来的网络和存储成本过高问题。基于DAG的物联网专用区块链,虽然提高了数据的上链速度,增强了实时性,但在网络中需要协调者的角色,不利于隐私保护,降低了系统的抗攻击能力。
表1 集成方案对比
区块链技术在物联网应用场景的独特优势,主要体现在解决物联网体系架构中出现的设备和数据安全问题,以及用户之间的信任问题。
区块链的数据可追溯、可验证等安全特性,在物联网的应用中能够从多个角度保护数据,加强系统整体安全性。针对前文所述物联网缺乏相关的标准协议、隐私安全无法得到有效保护、物联网设备易遭受攻击、设备访问控制不可靠等挑战性问题,均有相应的解决方案。除此之外,在数据溯源、分散设备管理、运营模式创新方面也具有优秀案例。
4.2.1 标准化
针对物联网数据存储和查询标准化问题,有研究者将物联网基础设施与区块链网络集成,把大量数据存储在分布式文件系统中(例如IPFS或Swarm)[20],并将文件资源的元数据保存在区块链,由智能合约管理和跟踪[21]。从网关取出数据、在后端存储中保存和查询数据等操作都由智能合约的JSON-RPC调用来实现,从而实现数据操作的标准化,简化IoT开发,提高数据安全性。
4.2.2 隐私保护
物联网数据隐私保护方面,区块链也可以提供可靠的解决方案。Ozyilmaz等提出的IDMoB系统[22],基于以太坊实现了物联网数据提供方与数据消费方之间安全可信的传递和交互,以构建一个去中心化数据市场。数据提供方将IoT设备注册到系统中,设备通过HTTP协议将加密的传感器数据上传到分布式存储,元数据推送到区块链。数据消费方也注册到系统中,请求消息发送到智能合约,由智能合约担任数据管理者和密钥交换中间人,最终加密的数据和解密密钥发送给消费方。整个过程没有第三方参与,数据交换过程安全、可信、透明,为数据生产者和消费者提供端到端的标准化流程。Chandana Roy等将区块链技术应用于Safe-aaS基础服务架构[23],基于IoT节点和传感器等设备采集的数据,为注册用户提供安全相关的决策服务。引入区块链技术,能够保护传感器节点采集到的数据以及安全服务提供商(SSP)与用户之间的交易隐私安全,在为用户共享决策数据的同时,保护用户信息和传感器原始数据的隐私,让服务数据可追溯,提高服务质量。
4.2.3 设备防护
针对物联网设备安全防御,周启惠等提出基于区块链的防护物联网设备DDoS攻击方法[24]。将众多边缘计算节点组成区块链网络,把传统目的端分析DDoS攻击的方式转变为源端DDoS异常攻击行为分析预警,通过区块链节点之间基于密码学的安全通信,进行预警数据的共享和分析,并借助智能合约,建立一套从DDoS攻击受害者到异常结果提交者间的奖励机制。该方法避免了传统在目的端防御DDoS攻击中流量清洗引流造成的高额成本和网络阻塞。
4.2.4 访问控制
在访问控制方面,Dorri A[25]、Yuanyu[26]、梅颖[27]等提出了物联网访问控制模型,设计思路大致相似,利用区块链和智能合约保证访问策略的执行,避免人为干预访问权限。权限可以由资源所有者自主控制,同时起到保护用户的隐私和设备安全的作用。
4.2.5 数据溯源
曹婷婷[28]等将区块链应用于物联网设备数据采集溯源,利用采集设备和IOT网关完成数据的筛选,对异常设备统计并进行警告,将真实和高质量的数据存储到区块链,用于数据和产品的溯源。
4.2.6 分散设备管理
Christidis Konstantinos等[29]提出将物联网设备都部署到区块链网络中,利用区块链上的智能合约存储设备固件更新的哈希值,来对物联网设备进行更新和升级,固件二进制文件存储在分布式文件系统IPFS[30],固件升级由设备自动来检测和安装。这种集成方式能够解决大量物联网设备的固件安全更新问题,同时,降低了物联网设备制造商的固件维护成本。
4.2.7 运营模式
除此之外,区块链还能为物联网应用创造新的协作模式。初创公司Transactive Grid运营一个新型能源市场项目[31],该能源市场建立在区块链基础上,计算节点将街道旁屋顶太阳能电池板产生的能量记录进区块链系统,房主之间能够根据自己的能源剩余情况自主交易,形成社区范围自治的本地微电网,能源交易不必通过Duke Energy等中央能源公司。麻省理工学院的初创公司SolarCoin[32]提供数字货币为能源生产方发放奖励,与新能源市场项目形成一个生态系统。该模式可用于工业物联网的能源供应和新能源转型,同时也适用于物联网设备间提供生产数据服务。
以上解决方案,均以可编程智能合约技术为核心,依靠区块链技术的分布式部署、事务不可篡改、记录可追溯、签名通信等特性,使得块链在物联网的安全和应用中发挥巨大的作用,解决目前物联网存在的安全问题,降低设备管理成本,提高数据共享效率,为物联网创建可靠的基础设施环境。
区块链技术具有不可篡改性和分布式结构,为非信任环境运行的系统提供了基础架构。物联网应用中,区块链可以作为数据后端系统,并提供数据分析和数据共享服务,设备制造商不必维护存储数据的云后端,AI服务提供商也可以方便地利用大量数据进行训练和测试,避免花费高额费用租赁云服务资源。智能合约作为自动执行的脚本部署在区块链上,形成一套自治系统,可以为数据隐私保护、设备安全防护、身份访问控制提供解决方案。然而,要让区块链技术在复杂庞大的物联网系统中实际应用,还有很多挑战需要面对。
对于物联网应用而言,成百上千个终端节点在短时间内会产生大量的数据,这些数据需要被存储并分析。但一般IoT终端设备配置资源有限,如果所有数据都存储在区块链上,完全节点很难满足存储需求,随着系统不断扩展,新的节点加入需要花费很长时间同步数据。虽然大容量二进制文件或媒体文件可以存储在离链的分布式文件系统中,但该模式无法满足大多数物联网应用场景。
因此,需要研究一套适用于物联网的可扩展的区块链存储解决方案。包括:减少冗余的存储策略、多类型的区块结构、适合区块链的数据压缩方法、IPFS文件存储技术等。
现有的主流区块链系统仍然存在处理低效率问题,TPS吞吐率有限,难以满足大规模生产的需要。
目前主流区块链解决方案中,交易数据采用非加密方式存储在区块中,通过分析区块中交易列表,可解析到对应的传输数据。如果数据生产者设备向区块链中发送经过加密的数据,对于数据的消费者而言,需要通过共享密钥的方式,对数据解密运算才能使用,这在实际应用中将对生产者和消费者设备的计算能力有较高的要求因此,需要研究支持大规模生产的区块链事务处理解决方案,包括:优化的P2P网络通信技术、高效率的共识机制和调度策略、高并发的智能合约执行策略、高效率的数据一致性维护策略。
现有的主流区块链系统主要用于商务应用,在制造业应用中,难以满足实时处理的需要,因为对于设备产生的数据需要及时记录和确认,对于设备上的操作数据,需要及时的认证。
公有区块链网络创建新区块具有时间间隔,存在区块传播延迟,如果数据的消费者想实时跟踪数据反馈,则必须面临高延迟的问题,然而大多数智能制造和IoT系统都要求实时或接近实时,需要即时交易确认。基于Hyperledger的联盟链虽然缩短了交易确认时间,实现了低延迟交易,但其有一定程度的集中化,并且可扩展规模受限[33]。专门为工业物联网设计的IoTA,虽然提高了区块生成时效,但交易确认过度依赖于协调者,协调者停止工作后将停止确认[34],这就导致系统去中心化程度不高,扩展性较差,同时也不支持智能合约,不适于物联网的复杂和智能化应用。
因此需要研究面向区块链的实时调度技术,包括:最坏时间分析技术、实时调度策略等。
虽然区块链具有较高的可靠性和安全性,但在工业环境下,对于区块链的可靠性和智能合约的安全性检查和验证,要求更高的标准。另外,如何安全地在多个设备之间共享密钥,也是物联网系统设计面临的一大挑战[35]。
对于PoW共识算法的区块链系统,共识算法依赖于物联网设备的哈希运算能力,由于传感器等轻量级设备与物联网网关、云计算服务器等节点间运算能力差距甚大,产生算力不平衡现象,容易造成高性能的节点算力超过其他轻量级节点算力总和,产生51%攻击。
因此在工业物联网应用场景中,需要研究支持工业标准的区块链安全加固技术,包括:安全多方计算技术、密文访问控制技术、程序正确性形式化验证、安全漏洞检测技术等。
本文阐述了区块链技术与物联网的关系,分析了区块链技术在物联网领域应用的解决方案,并提出了区块链技术应用的局限性。其中,混合互联方案结合云计算、物联网、区块链技术,对直接接入、网关设备接入和物联网区块链方案做了优化,根据实时性和安全性的不同要求对交互信息进行区分,同时兼具高性能、高安全性的特点,适合网络结构复杂的需求。区块链技术能够在数据存取标准化、隐私保护、访问控制、数据溯源等方面解决物联网存在的问题。但区块链技术的应用也存在一些不足,存储数据量大且冗余性高,在实际应用中会存在很多限制;执行效率低,TPS吞吐率有限;实时性不高,如一个交易从产生到最终被固化到区块链有一段时间延迟,缺乏面向区块链的实时调度技术等,这些需要未来做进一步的研究。