text: 物联网中区块链技术的应用与挑战
  目前，大多数物联网解决方案都依赖于集中式的服务器–客户端范例，以云计算的方式接入物联网设备. 在这种中心化的模式下，线性增长的集中式云计算能力无法匹配爆炸式增长的设备及数据规模；网络边缘设备与云服务器的传输带宽限制了网络性能，其网络延迟也带来了更多安全问题；数据的集中化管理使得隐私安全问题变得突出；网络边缘设备与云服务 器的数据传输给物联网设备带来了较大的开销. 因此，相继出现了一些基于分布式 P2P 的物联网架构，可以解决中心化网络架构存在的问题. 然而，直至引入区块链技术并将其与物联网相结合，才有效地解决了物联网存在的许多问题. 比如：物联网设备之间存在敏感的数据生成、交换、存储，可以凭借区块链的 P2P 特性确保其隐私性、鲁棒性、单点故障容错性；物联网中数据的创建、修改、删除等每个操作，可以在区块链中进行注册和验证来实现对物联网 数据篡改、滥用行为的检测. 此外，还可以通过区块链定制和实施访问策略，从而实现对数据的访问控制. 在区块链框架中，物联网设备无需人为干预就可以将数据安全地存储在不同的节点中，并利用区块链的特性保证其去中心化信任、真实性、安全性、隐私性等. 本文将综述相关文献，并主要介绍了区块链技术在物联网中的应用.
  1.1区块链技术概述区块链是一种以密码学算法为基础的点对点分布式账本技术，其本质是一种互联网共享 数据库. 区块链首次从技术上解决了基于信任的中心化模型带来的安全问题，它基于密码学算法保证数据与价值的安全转移，基于哈希链及时间戳机制保证数据的可追溯和不可篡改的特性，基于共识算法保证节点间区块数据的一致性. 区块链技术自 2008 年比特币提出以来迅速得到了应用. 最初，区块链技术主要应用在数字货币领域，并出现了多种类比特币的数字货币. 2014 年后，越来越多的领域开始尝试与区块链相结合，催生了广阔的应用前景.
  区块链是由包含交易信息的区块从后向前有序链接起来的数据结构. 每个区块头都包含它的父区块哈希值，这样把每个区块链接到各自父区块的哈希值序列就创建了一条一直可以 追溯到第 1 个区块（创世区块）的链条. 随着链上新区块的产生，该区块链的本地副本会不断地更新维护这个链，并通过共识算法和其他同步机制来保证每个区块链副本的最终一致性. 区块链网络是一个分布式的点对点网络，其中每个完整节点都存储了所有交易数据，而不需要第 3 方或中心化的节点来控制交易或数据. 这种分布式的数据管理架构赋予了区块链应用去中心化、开放性、自治性、信息不可篡改性和匿名性等优势.
  1.2区块链层级架构
  现有的区块链架构一般从下到上分为数据层、网络层、共识层、合约层、应用层，如图 1所示.
  区块链数据层一般是基于 levelDB 等数据库实现的. 区块体以 Merkle 树的形式存储了交易数据和账户数据等，而区块头则存储了区块父哈希值和 Merkle 树的根以及用于挖矿的nonce 值等数据，形成了区块链基础的链式结构. 除此之外，数据层还包括了时间戳技术和非对称加密技术等，是区块链实现数据可溯源且不可篡改的基础.
  网络层则决定了区块链的分布式点对点网络拓扑. 这一层包括了节点间的分布式 P2P 通信协议、区块同步算法、数据传播与数据验证机制，负责网络中的节点发现、消息广播、数据传输等功能.
  共识层主要涉及区块链的共识算法，包括了区块验证、矿工竞争出块、最长链确认等. 较为成熟的共识算法有：工作量证明算法（proof of work, PoW）、权益证明算法（proof of stake, PoS）、股份授权证明算法（delegate proof of stake, DPoS）以及实用拜占庭容错算法（practical Byzantine fault tolerance, PBFT）. 共识算法是区块链的核心机制. 各类共识算法各有利弊，目前已有许多工作针对共识算法进行了创新与优化.
  合约层包括了智能合约的部署、合约测试、日志管理、实例管理、合约接口等. 智能合约即在区块链上运行的图灵完备脚本语言，无需人工干预就可以在约束条件下自动触发，执行事先约定好的一切条款. 这也是区块链能够解决去信任的关键技术之一.
  应用层则包括了运行在区块链上的去中心化应用程序（decentralized application, DAPP），以及一些接口调用. 应用层封装了各种应用和案例，支撑区块链实现在金融货币、供应链、物联网、征信、社交娱乐等领域的应用落地.
  在无人机领域中，无人机技术的广泛应用受到了安全和数据隐私等因素的制约，而区块 链可以为无人机管控提供更高水平的透明度、安全性、可信度和效率. 例如沃尔玛在 2019 年 8 月 1 日公布了此前申请的名为“使用区块链克隆无人机”的专利，旨在以区块链技术保障无人机包裹递送系统的数据完整和安全. 文献 通过哈希算法实现数字签名，并提供了一种图像和传感器采集数据的加密方法，通过时间戳机制记录包含了 GPS 位置信息的交易日志，基于区块链实现了一个通用、可扩展且易于管理的无人机访问控制系统. 相信在不久的将来，这项技术可以在对消费者友好的小型无人机上实现，并且其服务器可以在诸如手机等移动设备上运行.
  区块链在车联网领域也得到了广泛应用. 在车联网中，车辆需要收集并共享数据以提高驾驶安全性，提供更好的服务质量. 区块链技术的引入一方面解决了集中式管理架构中车辆因担心单点故障和数据操控而不愿意将数据上传至基础设施的问题，另一方面也解决了分布式管理架构中未授权的数据访问和安全保护问题. 文献 利用区块链建立分布式数据库来管理车辆数据，通过部署智能合约来保证路侧基础设施（roadside units, RSUs）数据存储的安全与高效，通过基于信誉的数据分享方案来选择更加可靠的数据源以提高数据可信度. 车辆可以选择高质量、高可信的数据提供者，确保了数据存储和数据共享的安全性. 结果表明： 相比于传统方法，该方案在提高异常车辆的检测率以及确保数据共享的安全性方面具有很大优势.
  在未来电网中，除了主电网之外，间歇性能源和微电网也将成为能源供应的重要组成部分. 文献 将区块链与智能电网相结合，创建了一个更加高效的系统，通过人工智能和微交易来匹配电力需求和供应，更加合理地利用了分布在整个网络中的电力资源. 文献 提出了一个基于区块链的安全、透明、分布式的电力交易模型以消除传统能源市场的垄断，促进了能源和信用的合理交易，实现了平稳的能源管理需求. 现有的项目比如 Energo 就是通过代币的形式评估能源的占有量和消耗量，通过智能合约调整交易规则和电网切换策略；基于区块链和本地微电网实现了一个清洁能源计量、登记、管理、交易与结算的去中心化系统. 目前， 该系统已在东南亚和澳洲得到了推广与部署.
  在农产品运输等物联网场景下，传感器数据是重要的组成部分，物联网的正常运行依赖于大量传感器数据的传输，而区块链与传感器技术相结合可以实现传感器数据的存证和溯源， 是提高物联网去中心化信任和安全的有效手段. 文献 分析了在实际运输链应用场景中， 基于区块链的谷物质量跟踪系统的可行性. 文章指出：该系统可以将巴西的大豆出口收益额度提高约 15%. 加拿大的 Transport Genie 公司通过传感器检测运输车辆车厢内微气候，应用区块链技术保存与传输数据，使供应商、运输单位、食品公司都能实时掌握运输途中生鲜家畜的状况. 同时，该系统还实现了传感器数据的不可篡改与供应链数据的可溯源，在很大程度上确保了农产品供应的安全.
  除此之外，还有更多物联网领域都因为引入了区块链技术而具备了更强的安全、隐私、信任等特性. 区块链在物联网领域拥有广阔的应用前景，因此进一步研究区块链底层技术以及与物联网更加有效的结合方式变得尤为重要.
  区块链技术可以解决物联网的许多问题，但区块链本身并不是专门为物联网而设计的， 怎样将区块链技术与物联网可行有效地结合是一个值得研究的问题. 目前，已有很多研究对这个问题进行了讨论. 文献 分析了区块链基础设施在物联网设备更新场景下的应用，提出合理地设计区块链系统可以有效提升物联网设备更新的可用性，降低设备承受恶意攻击的风险， 提高设备的持久性. 文献 提出：在物联网中，区块链和其他技术的结合可以有效地应用于物联网边缘计算架构，解决隐私与安全问题. 此外，区块链本身也存在一些短板亟待解决，例如交易通量受限导致的系统性能低下，使得其不能满足物联网中需要频繁数据交换的应用场景；共识算法缺陷导致的系统去中心化不完全，使得物联网应用不能完全发挥区块链的去中心化优势；区块生成的冗余计算导致的大量能源消耗，使得传感器网络等能源受限网络的寿命减少；链上数据公开以及交易过程中的数据泄露，导致物联网数据的隐私安全问题等. 因此，在物联网领域应用区块链技术的同时仍需针对实际场景对区块链进行一定的优化与改进.设计新的系统架构、共识算法、智能合约、加密算法、时间戳技术、数据存储结构等，可以使得区块链更加适用于物联网领域. 例如文献 提出了一种优化的区块链，可以解决经典区块链中的高资源消耗、低扩展性、长处理时间的问题，同时为物联网保留了安全性与隐私 性. 为了更好地与物联网结合，现有的针对物联网场景下区块链底层技术的研究大多从以下三方面展开：系统架构、共识算法、智能合约.
  物联网架构的发展经历了从服务器–客户端到开放式云中心，再到分布式 P2P 的过程， 如图 3 所示. 传统的基于云服务器的物联网存在一些固有的安全隐患，服务器若出错或被攻击将直接影响整个网络系统. 此外，若单个物联网设备被攻击，则可能通过拒绝服务（denial of service, DoS）攻击破坏整个网络，从而影响到网络安全. 相比之下，基于区块链的分布式P2P网络架构则不依赖于某个中心节点或云服务器，且事务或交易在网络中以加密的形式操作和验证，因此在单个恶意节点存在的情况下可以拒绝该节点对链上数据的操作.
  图 3 物联网网络架构发展
  针对适用于物联网的区块链架构，研究者们提出了许多解决方案. 例如文献 考虑到典型的智能家居环境，基于区块链技术提出了一种新的轻量级体系架构. 该系统结构分为 3 层：智能家居、覆盖网络、云存储. 智能家居层在区块中加入 Policy Header，解决了身份认证和访问控制等问题；覆盖网络层通过签名与验签、账户公钥与 ID 解决了隐私问题；云存储层通过数据的哈希签名解决分布式节点的信任问题. 文献 基于区块链技术实现了一个新的物联网分布式访问控制系统，使用区块链存储并分发访问控制信息. 该系统由管理中心节点将多个约束网络同时连接至区块链网络，因此具有很好的扩展性与灵活性，能够适用于各种 物联网场景. 文献 提出了 IoTChain，结合了基于对象的物联网安全架构（object security architecture for the Internet of Things）和 ACE 授权框架，使 ACE 授权阶段变得可信而灵活. 该文以区块链替换单个 ACE 授权服务器，由智能合约处理授权请求，使用自我修复的密钥分发方案实现了物联网的高效管理. 文献 提出了一个多层分布式网络模型，有机地结合了区块链技术的安全性、可靠性和云服务器架构的高性能和管控能力. 该模型将网络分为边缘层和高级层. 边缘层包括了本地物联网实体，并提供与高级层的接口. 边缘层与当前的集中式网络模型一致：云服务器管理设备数据并处理请求，相当于实现 IoT 的局域网. 高级层连接边缘层并实现 IoT 的广域网功能. 在高级层中，同一层的所有节点均以分布式方式运行，基于拜占庭容错（Byzantine fault tolerance, BFT）算法来维护分布式记录的数据，使同一层的节点实现了自我管理和一定程度的容错；针对跨层通信，该模型也设计了特定的跨层寻址与 数据传输方法. 这种网络架构为建立广域安全物联网网络提供了可行的解决方案.
  设计更适合物联网的区块链系统架构，是两个技术领域交叉融合的基础. 据现有的研究来看，完全分布式的网络架构并不是最适合物联网应用场景的架构，而多层可扩展的区块链 架构能够在拥有区块链优势的情况下更有效地兼容物联网原有的功能，如图 4 所示. 同时，随着下一代物联网边缘计算的快速发展，分层结构的雾计算将成为更高效的物联网架构. 区块链与雾计算结合将是未来区块链物联网系统架构研究的重要发展方向.
  图 4 结合雾计算的区块链物联网多层架构
  2.2共识算法
  在区块链中，共识机制用于分布式 P2P 网络能确保各节点维护相同内容和顺序的交易记录. 在共识过程中，各节点独立构造候选区块，获得记账权的节点将自身构造的区块广播至其他节点，而其他节点将收到的有效区块加入各自区块链. 共识算法是区块链的核心技术之一， 在保证其去中心化、维护其安全性等方面发挥着重要作用. 类似传统 PoW 的共识算法具有较高的安全性，但其挖矿过程给区块链带来了低通量、低可扩展性以及高能耗的问题，这在物联网场景中是不可接受的. 因此，优化或设计更适合物联网应用的共识算法已经成为区块链落地的关键问题.
  文献 对比了传统区块链与有向无环图（directed acyclic graph, DAG）区块链的共识算法，DAG（即以网状拓扑而非链式结构存储区块链数据）概念作为共识算法，最早在2013年由以色列希伯来大学学者提出. 文章认为：在没有矿工参与的情况下，交易有向无环图（transaction directed acyclic graph, TDAG）区块链的共识过程相比于 PoW 具有更好的去中心化程度、更小的能源消耗以及更高的可扩展性. 提出区块链应用DAG的共识算法，可以给边缘设备为主的物联网提供完整有效的解决方案. 文献 提出了一种适用于物联网的轻量级区块链共识算法：身份认证证明. 它包括了两个认证步骤：1）认证区块以及区块的源. 2）在可信节点成功认证区块之后，第 1 个认证该区块的节点信任值增加一个单位. 之后所有节点更新区块，在此过程中区块内的非法交易会被识别出，任何对这个区块进行过错误认证的节点 将失去一个单位的信任值，直至成为一个普通节点. 身份认证证明不需要逆 Hash 计算，从而减少了能源消耗，使区块链可以有效地集成到资源约束网络，并且在分层网络和雾计算场景 中依然有效. 文献 为物联网应用场景提出了一种混合区块链 Hybrid-IoT. 在 Hybrid-IoT 中，IoT 设备以 PoW 区块链的形式组成若干小组，而各 PoW 区块链之间使用 BFT 共识算法连接，这种共识类似于跨链交互的 Polkadot或Cosmos. 文献 分析了PoW 共识算法在子区块链应用的有效性，证明了 PoW 与 BFT 混合共识的安全性，为针对物联网的区块链共识算法设计提供了新的解决方案.
  共识算法作为区块链的核心技术，其优化与改进对区块链物联网的性能表现起重要作用. 在大多数情况下，PoW 类的共识算法不再适用于物联网环境. 相比之下，在网络规模大且安全性要求高的环境下，可以使用 PoS 共识算法. 在网络规模小、安全性要求不太严苛的环境下，可以使用 DPoS 和 PBFT 等共识算法. 总的来说，更多的工作应针对更高效、更节能、更大交易吞吐量的共识算法进一步研究；而更加前沿的 DAG 无链结构共识算法，省去了打包区块的时间，在效率方面有了质的飞跃. 使区块链的容量和速度有了质的提升，DAG 共识算法的应用也将成为区块链物联网的新趋势.
  2.3智能合约
  区块链在去中心化数字货币等领域取得成功后，支持各类智能合约的区块链设计使得区块链技术在其他领域得到了更广泛的应用. 智能合约是一种使用区块链来实现各方之间协议的方法. 通过使用加密算法和其他区块链安全机制，智能合约允许在没有第3方的情况下执行可信交易. 这些交易是可追踪的，也是不可逆转的. 因此，智能合约提供了优于传统合约的安全性，并降低了与合同相关的其他交易成本.
  智能合约本质上是在区块链的特定地址上记录的预定义指令和数据的集合. 合约操作的结果通过矿工的共识打包进区块中，保证了整个网络同步更新数据. 由智能合约定义的公共函数或应用程序二进制接口（application binary interface, ABI）允许用户在给定预定义的业务逻辑或合同协议的情况下与它们进行交互. 智能合约将操作逻辑封装为字节码并对分布矿工执行图灵完整计算，允许用户将更复杂的业务模型转化为区块链网络上的新类型的交易， 因此可以提供可扩展的解决方案，允许物联网设备在区块链网络上完成更灵活、更细粒度、更复杂的业务.
  文献 在以太坊基础上根据智能合约定义的访问控制方法，通过检查对象的行为来实现基于预定义策略的静态/动态访问权限验证. 访问控制框架包括了多个访问控制合约（access control contracts, ACC）、一个裁决合约（judge contract, JC）和一个注册合约（register contract, RC）. ACC 为每对主体–客体提供一种访问控制方法，通过检测主体的行为来实现基于预定义策略的静态/动态访问权限验证. JC 实现了一个非法行为的判断算法， 通过接收 ACC 的行为报告来辅助 ACC 进行动态验证并惩罚非法行为. RC 注册登记访问控制以及非法行为判断方法的信息，并提供管理这些方法的接口. 该访问控制系统的实现，证明了利用区块链智能合约实现分布式物联网设备访问控制的可行性. 文献 基于以太坊区块链开发了一个物联网设备管理系统. 该系统将密码公钥存储在区块链上，而将私钥保存在各个设备上，通过图灵完备语言编写的智能合约轻松管理物联网设备的配置并构建密钥管理系统. 智能合约的应用使得物联网设备的管理达到了更细的粒度.
  通过智能合约区块链能灵活地实现物联网应用功能，因此智能合约已经成为区块链技术 在各个领域落地的关键点. 除了访问控制和设备管理等，当前区块链物联网中供应链产品溯源、传感器质量控制、分布式智能电网等应用都依赖于智能合约来实现，可见智能合约在物联网中的应用场景仍有待开发. 与此同时，物联网环境下的智能合约代码审计和代码安全等问题也将成为重要的研究方向.
  区块链技术与物联网的有效结合，为物联网带来了去中心化信任、安全、不可篡改、可溯源等优势；同时区块链本身作为一个尚在发展的新技术，也为物联网带来了新的问题和挑战， 这意味着对区块链进行进一步设计的同时对区块链物联网也有了更高的技术要求. 目前，大部分工作将重点放在隐私安全、节能高效、通量性能等方面.3.1隐私安全
  如今物联网与人们的日常生活息息相关，物联网设备遍布城市各个角落. 各类传感器以及通信设备承载的海量数据信息也引起了人们对于隐私安全方面的担忧，尤其在区块链系统 中交易数据公开透明地存储在链上，虽然地址与用户真实身份是匿名对应的关系，但仍然带来了严重的安全隐患. 在涉及敏感数据的应用中，如何确保数据隐私安全是区块链物联网需要研究的重要问题.
  文献 首次提出了用区块链来保障物联网数据隐私安全的方法——FairAccess，利用分布式账本的一致性来解决物联网中集中式和分布式访问控制的问题，开辟了区块链新的使用 领域，即物联网访问控制. 文献 提出了ControlChain，这是一种基于区块链的访问控制架构. 该架构不但可以保护物联网的隐私安全，而且可以与物联网中的各种访问控制模型兼容. 文献 提出了一种区块链连接网关的设计，可以自适应地保护用户隐私安全. 区块链在用户和物联网设备之间起着中介的作用，用户可以获得连接到区块链网关的设备信息以及隐私 策略. 用户通过网关访问设备，而不是直接访问以免数据泄露. 此外，区块链网关将存储用户对于物联网设备的隐私偏好. 由于区块链数据的不可篡改性，存储的用户偏好信息可用于解决用户和物联网服务提供者之间的隐私争议. 该区块链网关的设计在不改变传统物联网结构的情况下，为提高用户隐私安全和物联网应用信任做出了贡献. 然而，即使在区块链架构下，如果数据是通过高级加密标准（advanced encryption standard, AES）等对称密钥方案加密的， 那么在矿工验证出块的过程中，密钥与数据也会一起共享，这意味着区块链物联网的数据隐私性依然是个问题. 文献 基于属性加密算法（attribute-based encryption, ABE）提出了一种隐私保护的区块链物联网架构，将 ABE 加密技术应用于区块链以重构区块链协议，为物联网生态系统提供了端到端的隐私保护方案，为解决实际应用问题提供了新的思路. 然而，基于加密算法的隐私安全优化也会为物联网设备带来更多的计算开销，需要根据实际应用场景权衡利弊.
  3.2节能高效
  在分布式 P2P 网络中，物联网设备大多是嵌入式终端或传感器节点，具有较低的计算能力和存储能力. 在使用电池供能的无线传感器网络中，能源消耗甚至直接影响到整个网络的寿命. 设备性能的影响极大地限制了区块链在物联网中的应用，因此如何保障区块链的节能高效是一个必须解决的问题.
  文献 分析了物联网设备应用区块链的 3 个限制条件：一是区块链挖矿需要大量的计算资源，使物联网设备不适合成为矿工节点；二是区块链的任何设备都需要一套完整的加密功能，这提高了硬件设备的最低门槛；三是每个完整节点需要存储区块链副本，但一般的物联网设备可能无法提供如此大的存储容量. 因此，该文提出了基于 Twitter 概念的 Tweetchain， 使用类似推文的结构对交易和状态进行编码，重新制定共识协议以取代工作量证明，从而大幅降低区块链的性能开销. 文献 认为区块链计算开销昂贵，可扩展性有限，并且有显而易见的带宽开销和延迟，不适合物联网场景，于是提出了一个分层的轻量级可扩展区块链（lightweight scalable blockchain, LSB）. LSB 针对物联网需求进行优化，包括轻量级的共识算法、分布式信任和通量管理算法以及交易路由和数据流的分离，大大降低了能源消耗，使得区块链能够适用于低性能的物联网设备.
  据当前已有的研究来看，共识算法依然是制约物联网设备能耗开销的最主要的问题. 在一般的物联网应用场景下，采用轻量级的共识协议可以有效降低物联网设备计算、通信和存储 的负担，但在类似无线传感器网络等更加严苛的能源受限环境中，针对区块链物联网的节能 高效问题仍有待进一步研究.
  3.3通量性能
  通量和性能的提升是目前区块链领域的热点问题. 现有区块链通量有限，比特币平均每秒只能处理 7 笔交易，以太坊平均每秒只能处理 15 笔交易. 虽然使用效率更高的共识算法可以在一定程度上提升每秒交易数量（transactions per second, TPS），但仍难以满足业务需求.在物联网的某些场景下，提升区块链的通量性能也是应用区块链技术的重要前提. 文献 提出网络吞吐量是物联网协议的一个重要指标. 文献 就适用于物联网的区块链进行了评估， 认为基于拜占庭容错共识的大规模区块链在物联网应用中表现为通量性能存在很大的不足， 并且该不足随节点规模的增长越发明显.
  当前许多区块链的交易通量并不足以支持物联网应用，因此出现了许多针对区块链物联网提升交易通量的工作. 文献 对区块链的优化在一定程度上减少了带宽要求和处理时间， 提升了网络通量. 文献 实现了一种基于物联网雾计算的区块链云架构，并通过通量、响应时间和网络延迟来评估系统. 实验显示该架构可以有效提升区块链数据通量，但从目前的工作来看，区块链物联网在通量上的改进并不明显. 通量性能可能还需要在区块链基础设施的大幅优化之后才能得到明显的提升. 目前比特币、以太坊等团队也正在着重针对这个问题进行优化.
  本文针对区块链技术在物联网场景下的应用与优化、提升与挑战，综述了目前的研究成果和热点问题. 可以看到，区块链在有效提升物联网表现的同时也存在需要研究和解决的问题. 近年来，学术界也针对区块链及其在实际应用中的核心问题与关键技术开展了相关研究. 但目前区块链物联网仍处于起步阶段，并没有一个完美的解决方案，因此针对物联网的区块 链底层技术，尤其是共识算法的研究十分重要. 可以说在这个研究领域机遇与挑战并存，仍需对关键技术进一步深入探索，使区块链技术在物联网领域可以得到更好的应用与发展.