基于区块链的物联网边缘计算安全存储管理

1. 引言

区块链最近作为一种利用社区验证来同步多个用户之间复制账本内容的技术而变得非常流行[1]。作为一种去中心化账本,区块链通过验证并存储交易记录,在性能上优于基于中心化数字账本的同类方法。在区块链中,数据记录以区块形式存储,其逻辑关系被构造成由数据块链接而成的链表结构[2]。通过共识机制,数据块中的更新会在整个网络中同步反映,从而形成一个防篡改平台,用于数据的存储与共享[3]。凭借区块链中这种自动化的数据共享,无需中间实体介入,从而实现了从集式管理向去中心化管理的范式转变。它最初被引入是为了在比特币中解决双重支付问题[4],但随着时间推移,已扩展应用于其他领域,例如智能应用电网、医疗保健、配送网络和物流系统。然而,它并非没有缺陷,其扩展能力有限以及处理高频密集型任务的能力不足被认定为最大的[5]。

物联网 (IoT) 等包含大量连接到互联网的物理对象的平台,可以利用区块链的安全优势来实现其服务的隐私保护。物联网中的众多互联系统通过互联网相互通信,从而产生和交换大量可能具有敏感性质的数据[6]。区块链的去中心化特性使其成为以点对点 (P2P) 方式保护此类系统隐私的潜在候选技术,可保证所交换信息的安全。然而,由于区块链在挖矿和共识过程中消耗大量资源,而物联网节点的资源有限,这使得在物联网及其他移动服务中直接应用区块链变得困难[2]。

从这一角度来看,移动边缘计算为处理工作量证明 (PoW) 难题提供了互补的方式,并促进了区块链在物联网系统中的应用。边缘计算作为云资源和服务分布的延伸,被引入网络边缘,以在云上提供分布式的资源与服务[7]。它为用户提供了多接入环境,使其能够享受类似云的增强型计算、应用和存储服务。因此,资源受限的移动设备可以通过将挖矿和存储任务卸载到边缘服务器来提升其计算能力。区块链与边缘计算的集成将为可扩展且安全的交易创建一个用于外包计算和安全存储的去中心化环境。然而,实现这一集成仍存在的主要障碍在很大程度上与边缘计算中的安全方面及去中心化管理相关[8]。

除了资源管理问题、功能集成和可扩展性提升等方面外,安全性的最关键方面也必须得到充分解决,才能实现集成。已有许多研究致力于探讨这些问题的解决方案,我们从这些研究中了解到,为了有效利用区块链在物联网的去中心化数据存储中,必须解决匿名性、适应性和完整性方面的问题。由于区块链仅能保证假名性,完整性依赖于诚实矿工的数量和工作量证明的复杂性,而适应性反而受限于复杂性,因此亟需研究针对这些问题的缓解措施[6]。

我们专注于研究通过将私有物联网设计与P2P及区块链结合边缘计算相结合,来影响区块链的匿名性、完整性和适应性的各种因素。P2P架构主要提供一个具有数据隐私保障且无单点故障的强健去中心化存储系统。区块链负责交易的受控访问和身份认证,而边缘计算则提供通信和计算资源,以支持能力较弱的物联网设备参与区块链。我们研究现有的区块链技术,以实现一种能够满足所需安全性和可扩展性的架构集成设计,并解决数据完整性问题。我们还进一步探讨了多种协议和技术,这些协议和技术可通过实现超越假名性的匿名性来增强物联网应用中的隐私保护。

缺乏一个公开认可的平台来在物联网中部署区块链,促使我们开展此项研究,考虑到物联网通过大量设备互联和海量数据交换为个人和机构带来的巨大潜力。通过探索边缘计算的特性与区块链的安全性,我们的研究旨在发现一种适用于物联网的区块链部署的安全可扩展的环境,本研究的主要贡献如下:

基于边缘计算的分层架构和区块链的P2P分布式账本,我们详细阐述了在物联网系统中实现区块链部署需要克服的典型障碍。

•我们提出了一种新颖的框架,以解决物联网系统中区块链与边缘计算成功集成所面临的匿名性、完整性和适应性问题。我们进一步描述了这些解决方案如何在边缘计算架构的不同层中实现。

•我们提出了一种在区块链上实施去中心化应用的实用方法,并对原型的协议和运行环境进行了概念性分析,以实现面向物联网应用的边缘计算平台中可扩展且安全的区块链数据存储。

本文其余部分的结构安排如下:第2节首先介绍相关工作。第3节给出拟议框架的要求和考虑因素。第4节提出该框架的模型。第5节包含系统原型设计、实施设置、框架概念性评估与讨论。最后,我们在第6节总结本研究。

2. 相关工作

2.1. 核心技术

2.1.1. 区块链技术

区块链是一种利用安全加密机制提供去中心化电子账本的技术,该账本由按时间顺序连接的交易区块序列构成[9,10]。区块链由不可篡改且公开可验证的记录组成,这些记录由P2P网络的节点维护,以确保已批准交易的防篡改传输和存储[3]。区块链网络中的参与者使用某种事先约定的共识协议来确认或拒绝每笔交易,然后按照验证顺序将其添加到区块链中[9]。图1a,b 下面分别说明了区块链的整体架构及其区块的内部结构。区块链中的参与者通常被称为矿工,只有在执行“挖矿”过程后,才被允许向链中添加新的数据区块,以保证数据的有效性和完整性。挖矿过程计算量巨大,矿工必须求解一个称为工作量证明 (PoW) 的难题并获得一个哈希值,该哈希值经大多数矿工验证后,方可成功添加至区块链。

已批准的交易作为持续增长的区块链存储在区块链中(因此得名“区块链”),每个区块都与前一个区块相连。从通常被称为创世区块的初始区块开始,链中的每个区块都包含一个指向前一个区块的哈希值、一个时间戳以及一些交易详情。前一个区块的哈希值在创建新区块时计算得出,而创世区块作为链中的第一个区块,不链接到任何先前的区块。每当成功添加一个新区块后,公共账本会在网络中的所有参与者之间同步,从而对所有人可见,防止具有恶意意图的实体进行篡改。

示意图0 区块链的配置;(b) 区块链中区块的内部结构)

根据所需的权限属性,实体与区块链交互有三种选择,即公有区块链、私有区块链或联盟区块链 [3]。在公有区块链中,所有参与者都参与交易的读取、提交、验证以及达成共识,无需中心实体来管理成员资格或禁止非法的读取者或写入者[11,12]。与公有区块链相反,私有区块链通过将写入权限集中于单一实体来管理,并将读取权限保持公开或仅限于网络中的某些特定实体[11]。至于联盟区块链,只有预先选定的一组对等节点参与共识过程。它可以被视为一种部分去中心化的网络,其中读取权限可以是开放的,也可以限制给特定对等节点,而区块的有效性由预先选定的少数节点确认[3]。

表征区块链作为通用去中心化账本的关键属性包括自治、分布式、不可篡改、匿名和合约化[3,11]。其自治性体现在网络通过共识机制由所有参与者共同管理和控制。区块链以P2P方式运行,具有分布式特性,新批准的交易会被广播到系统中的所有其他对等节点,进行验证和存储,而无需任何中心实体的干预。不可篡改意味着区块链中的记录始终准确且不变,因为任何修改都需要经过其他节点的验证。此外,区块链网络中对等节点之间的交易和数据传输保持匿名。区块链确保了信任,发送方或接收方的区块链地址足以完成身份认证[13,14]。区块链的另一重要属性是智能合约中建立的规则和策略,这些规则和策略在网络中被正确且及时地执行,而无需任何中心授权实体的干预[3]。

2.1.2. 物联网

物联网(IoT)是一种网络范式,其中执行器、传感器、车辆和其他智能技术等物理设备连接到数据中心以进行通信并交换信息[15]。物联网构成一个异构环境,允许各种系统(包括硬件和软件系统)之间的交互。物联网中的设备通过嵌入低成本传感器持续集成到其周围环境中,适用于智能电网、智慧医疗和智能交通等多种应用。它由三个主要层级构成:设备层、网关层和云层。云层形成互联网上的后端层,在此存储数据(可能在此完成繁重的计算)。网关部署在中间层,用于将物联网设备连接到互联网,提供对数据和服务的访问。低功耗物联网设备构成第三层,其特点是计算资源较少、功耗较低且缺乏足够的存储内存[10,16]。

为了克服计算能力和存储能力的限制同时确保安全,物联网设备可以结合低功耗硬件加速器来建立一类新的安全应用[17]。对称预共享密钥的使用在物联网中仍被作为安全性的传统解决方案,但这种简单的方法无法适应物联网中大量设备的需求。区块链提供了一种有前景的方案,能够满足典型去中心化拓扑中能力较弱的物联网设备的严格需求。研究人员正在努力采用区块链技术,利用公钥方案保护物联网中的通信安全,相关部署方法在研究社区中受到广泛关注[10,18]。

2.1.3. 边缘计算

移动边缘计算(MEC)定义了一种技术,该技术“在移动网络边缘、无线接入网(RAN)内,并靠近移动用户的位置提供IT服务环境和云计算能力”[19]。它是一种新范式,是技术的快速增长所带来的结果,使得原本在云中提供的计算服务和资源如今正向移动网络的“边缘”转移[8]。迅猛的增长移动设备数量的增加使得传统的集中式云计算在满足许多应用的服务质量(QoS)方面变得无效。在移动边缘计算(MEC)中,计算和存储资源(即云点、雾节点或微型数据中心)被部署在靠近终端设备的互联网边缘的基站处[7]以避免障碍物和系统故障[20]。主要目的是实现高网络效率、最小化延迟,并确保可靠的服务交付,从而提升用户体验[19]。通过直接连接到最近的支持云服务的边缘网络[21],延迟敏感型应用的用户(如虚拟现实(VR)和增强现实(AR))可以满足其严格的延迟要求。将资源推向边缘可实现增强的移动性、低延迟并提供位置感知[8]。MEC是实现下一代蜂窝网络(5G[19])和互联网(物联网[15]及触觉互联网[22])诸多愿景的关键技术,有助于促进新应用的广泛部署。它通过提高吞吐量、自动化、极低延迟和增强的可扩展性,满足了5G和物联网的严格要求。它催生了新的价值链、崭新的商业机会以及跨多个领域的大量新用例”[19]。

边缘计算的结构如图 2a 所示,其中边缘服务器比云上的服务器更靠近用户。其架构大致可分为三个不同层次:前端由终端设备组成,近端由边缘服务器组成,远端则由核心云构成[8,15]。如图 2b 所示的层次结构直接反映了分布式信息系统中不同层级组件的计算能力。

示意图1 基本边缘计算架构 [13];(b) 边缘计算网络的典型架构)

如执行器和传感器的终端设备部署在前端,以向终端用户提供交互性和更高的响应性。该层级中的设备具有有限的能力,无法满足大多数要求,因此需将任务转发至边缘服务器来完成。

作为网关部署在近端的边缘服务器负责传输和分发流经网络[15]的流量。边缘服务器还可以满足实时数据处理、数据缓存和计算卸载的资源要求。大多数计算和存储任务因此将被卸载到近端,以实现更好的性能和更多存储空间。

云服务器位于远端,具有更强大的计算能力和更大的存储能力,但由于部署位置远离终端用户,因此面临显著的传输延迟。在此层级,我们提供了大规模并行数据处理、机器学习、大数据挖掘和管理等功能,仅举几例[15]。

该架构设计专为在边缘执行关键任务、计算密集型和延迟敏感任务而定制,同时边缘服务器中的应用与核心云同步数据以实现长期存储。

2.2. 现有研究工作

在基于面向物联网的区块链即服务的研究中,Samaniego 等人[10]指出,区块链有望为物联网设备提供防篡改存储和经过认证的交易。他们认为托管环境是成功在物联网设备中部署区块链的关键挑战。随后,他们对雾计算和云作为候选部署平台的使用进行了评估,并发现雾计算的表现优于云。

熊等人在[2]中提出了一种在受限资源设备中利用边缘计算进行区块链的原型。他们展示了移动设备通过访问和利用边缘网络中的计算资源,从而在其应用中实现区块链使用的可行性。他们的测试平台和实验结果表明,随着更多矿工加入网络,这种集成对矿工和服务提供商都有益处。

刘等人 [23] 提出了一种利用边缘计算促进区块链在视频流系统中用于转码的资源分配框架。他们设计了一种激励机制,并考虑了两种在边缘计算环境中卸载转码任务负担的方法。他们的仿真结果验证了该模型在最大化卸载和自适应资源分配方案中的平均利润方面具有良好的效果。

对区块链在物联网中的应用进行系统化的文献综述;Conoscenti 等人 在 [6] 中旨在确立在物联网应用中采用区块链和 P2P 实现去中心化私有设计的可行性。他们的研究发现,匿名性、适应性和完整性三个方面是成功集成的主要障碍。他们发现,匿名性仅由假名机制来保障,完整性依赖于工作量证明的复杂性以及大量诚实矿工的存在,而适应性则因工作量证明的复杂性而受到意外限制。

针对此类问题的缓解措施已由不同的研究工作分别在[3,24–30]中进行了研究。余等人[30]和刘等人[26]解决了完整性问题;冯等人[3],、Miers 等人[27]和Sasson 等人[28]提出了关于匿名性的解决方案。至于可扩展性问题,Kasireddy[25],、Yeow 等人[29]和Eyal 等人[24]的研究提出了可能的解决方案,以实现区块链对物联网的适应性。

上述研究共同描绘了将边缘计算集成到区块链中以支持物联网应用的可行性。尽管一些研究侧重于集成所需的通用架构问题,另一些则是一般性地探讨区块链中特定问题的缓解方法,还有一些研究将这种集成作为部署特定应用的平台。虽然托管环境被视为部署理想方案的一项挑战,但部分研究已确定匿名性、完整性和可扩展性是实现成功集成的基本问题。我们的研究基于设计一个合适的平台,用于在物联网中部署区块链服务,并重点关注如何解决已识别的关键适应性和安全问题,以确保实现安全的去中心化存储。

3. 拟议框架的要求和考虑因素

实现我们私有设计的基于区块链的物联网与边缘计算以进行安全数据管理的构建模块如图3所示。在此框图中,展示了支持框架、需要解决的关注领域以及所提出模型的目标要求。在设计中,这些支持框架被集成在一起,以解决关注问题并满足目标要求。

示意图2 架构的构建模块和目标要求)

3.1. 集成的需求

除了这些独立技术所提供的广阔前景外,区块链、边缘计算和物联网各自也存在局限性和挑战,而通过集成可以相互弥补。一方面,尽管区块链为科技领域带来了诸多优势,但为了实现更高的交易吞吐量并维持高安全标准,节点必须满足对计算、存储和带宽的严格要求。另一方面,尽管边缘计算的分布式结构具有吸引力,但其在开放协同计算环境中支持异构设备时所表现出的移动性和动态性,容易受到潜在的恶意攻击。这给外包存储、去中心化网络控制以及任务的卸载计算带来了需要关注的安全挑战。此外,尽管物联网提供了一个便捷的平台,使世界更加互联、智能和高效,但其设备通常具有受限的计算能力、低功耗和有限存储容量。

通过集成所有这些技术,区块链的挖矿和复制过程在异构的边缘计算环境中确保了有效、一致且准确的交易。区块链中的假名和智能合约实现了隐私保护,并以最低的运行成本增强了边缘计算的高效、可靠和自动化资源协调。此外,边缘计算的P2P原始特性促进了区块链共识协议中的信息分发。边缘计算还充当桥梁,使物联网中资源受限的终端设备能够通过将繁重的计算任务卸载到边缘服务器而参与区块链。另外,边缘计算为区块链创建了一个保密且独立的环境,使其能够将存储负担外包给边缘网络上的服务器,并满足其存储需求。

3.2. 影响物联网区块链采用的问题

匿名性 :区块链中负责处理交易匿名性的假名由于存在去匿名化的可能性而变得不足[6]。通过对流量或账本本身进行分析,可以揭示区块链网络中用户的身份。实现去匿名化的几种技术在[6]中被总结为更换地址、多个输入、与IP关联以及使用某些中心化服务。这些技术的详细描述在此不再提供,但它们都涉及通过揭示输入地址的所有权、将同一参与者拥有的多个地址关联起来[31],、通过分析流量模式关联IP地址或使用某个中心化实体进行服务管理[32]来披露用户身份[31,33]。

完整性 :当网络中交易的可靠性、准确性和一致性任一方面受到破坏时,区块链就会出现完整性问题。尽管容易受到其他完整性攻击,如[6]自私挖矿攻击、历史篡改攻击和顽固挖矿攻击;这些属于轻微攻击,在本研究中未予涵盖。对完整性最突出的威胁是恶意矿工的行为失当,此类矿工可能掌握了区块链网络中较高比例的处理能力。这类矿工可能会破坏共识协议,并导致历史数据丢失。

适应性 :如[26,34,35],所述,可扩展性问题是由区块链的运行模式引起的,该模式要求网络中的所有参与者必须验证并永久存储每个新增区块和每笔生成的交易。当交易数量增长到非常高且变得更加复杂时,对带宽、计算能力和存储的需求也随之增加[25],从而阻碍了区块链的可扩展性。大量交易导致更大规模的账本,对于具有有限资源的物联网终端设备而言,存储成本过高。此外,复杂的工作量证明难题以及区块链中区块最大尺寸1 MB的上限规定[6],导致延迟更长且吞吐量降低。最终,这限制了其在实际的基于区块链的解决方案中的适应性。

3.3. 问题陈述

尽管人们一直在努力为物联网应用中的区块链部署寻找合适的平台,但匿名性、适应性和数据完整性仍是尚未解决的关键问题,而这些问题对于确保数据的安全存储至关重要。由于区块链仅能保证假名性,且完整性依赖于大量诚实矿工和工作量证明的复杂性(这也影响了可扩展性),因此必须研究适当的技术,以提供比假名性更强的匿名性,并实现可适应的数据完整性。

3.4. 设计要求

如图 3 所示,为确保边缘计算与区块链在物联网应用中的成功集成,所设计的架构必须满足以下设计原则:

去中心化数据存储中,边缘计算与区块链的集成架构应相互补充,通过参与实体在P2P基础上结合其存储容量来存储和共享交易,从而扩展物联网设备的存储容量。

•卸载计算,即终端设备外包给边缘服务器的处理任务,应是可验证的,并能确保产生准确结果。

•数据完整性,该集成系统需要内置可靠机制来验证数据所有者和消费者的行为,以确保在去中心化环境中对外包数据进行一致且准确的修改。

•交易真实性,旨在移动、去中心化和异构的边缘计算环境中建立安全通信通道;相关实体及其各自交易的有效性必须得到充分认证。

•匿名性,旨在确保区块链网络中的用户数据隐私,并允许网络参与者在无需担心被追踪或身份在网络上被溯源的情况下便捷地执行所需交易。他们的身份不应是认证的强制要求,而应仅需交易地址即可[13,14]。

•适应性,该架构必须具有足够的灵活性,以支持波动的环境,并满足设备数量增加以及持续生成和存储的交易量增长所带来的未来发展需求。它应能适应未来应用中这些不断增长的需求和日益增加的复杂性,同时保持可接受的系统吞吐量、延迟和安全水平。

•低延迟,该模型应权衡并在计算和交易从一个实体传输到另一个实体的过程中所引起的延迟量之间达到最佳水平。明确涉及哪些计算任务,并决定这些任务应在终端设备与云服务器之间何处执行,对于确保系统中的最小延迟至关重要。

受控访问,必须在框架中实施访问策略,以规范用户的数据可共享范围以及被谁查看。

4. 拟议框架

本节介绍了区块链与边缘计算集成以满足物联网处理和存储需求的概念设计。该方案采用分层结构,将区块链的密集型操作迁移至独立的层中,使其脱离包含受限资源物联网设备的应用层。随后,我们详细描述了框架各层所涉及的操作。接着讨论了物联网的三个基本要求类别:计算卸载、外包数据存储以及网络流量的控制与管理,并阐述了这些要求在框架中的部署方式。服务部署的描述还附带说明了框架中如何实现匿名性、完整性和适应性解决方案。

4.1. 设计概述

我们的设计由三层组成,即云层、边缘层和设备层,如图4下方所示。该框架采用了与边缘计算架构相同的层次结构,但在每一层中增强了设备的P2P连接,以提供额外的存储和计算能力。设备层由P2P连接的物联网终端用户构成,数据源自这些用户,他们利用边缘网络中的资源。边缘层由以P2P方式互联的服务器和存储设施组成,提供额外的存储能力,确保系统鲁棒性,并避免单点故障风险。该层负责短期数据存储、实时数据处理与分析,以及处理不同节点之间交换的各种数据和消息的通信。云层由更强大的设施组成,提供长期数据分析与存储,以及企业级报告和通信功能。云中的资源也可配置为区块链上的节点,以确保系统中数据的隐私性和完整性。

4.2. 提出框架的分层架构

在本节中,我们描述了拟议框架的全部三个层,即去中心化物联网设备层、边缘服务器的P2P网络和分布式云资源,以解决所述问题并满足目标要求。

4.2.1. 去中心化物联网设备层

该层由能够参与区块链系统以相互交换物联网数据消息的用户设备P2P网络组成,这些设备作为物联网数据的源和消费者。此类设备包括带有传感器和执行器的智能设备,用于收集数据并与其它对等节点共享,或转发至上层。智能设备接入系统的通信机制可以通过边缘服务器进行集中式通信,也可以通过P2P网络实现去中心化通信。在集中式通信中,采用私有区块链,对等节点之间的交互由服务器控制——包括新对等节点的添加、区块挖掘以及现有对等节点的移除。在此模式下,对等设备之间的通信仅通过服务器向设备发放的共享密钥来实现。

另一方面,设备和服务器都可以通过点对点通信模式参与公有区块链。在这种情况下,由于终端设备的有限资源,其在区块链中的参与由上层、边缘和云中能力更强的服务器提供支持。因此,繁重操作由服务器执行,而终端设备仅执行较轻任务,例如与对等节点共享交易摘要文件或接收固件更新。

示意图3

示意图4

设备之间的P2P连接所带来的去中心化,使它们能够灵活地将密集型任务(无论是存储还是计算)卸载到边缘服务器或最近的更强大对等节点,从而实现更快的响应时间。通过卸载,设备只需存储与其自己的交易相关的部分区块链,而无需存储整个区块链,同时免除了繁重的计算负担。此外,由于不同厂商的智能设备缺乏互操作的标准,区块链使得这些设备都能够参与同一个区块链网络。

4.2.2. 边缘服务器的P2P网络

边缘层将云扩展,使服务更接近终端设备,从而提升性能并实现低延迟。在为智能物联网设备提供所需资源的同时,边缘服务器还能在彼此之间分发消息,以实现数据的复制存储和协同数据处理。为实现这一目标,在边缘层的服务器上部署区块链,以建立分布式平台,确保网络中数据的安全传输。在进行网络消息传递的同时,边缘节点还为其他对等节点及自身执行轻量级分析,以实现边缘节点的动态添加和移除过程中的自组织。它们还对数据进行处理,并根据各自需求,将实时数据分析结果转发至分布式云进行长期存储,或返回终端设备。该层的P2P架构创建了一个移动资源池,用于短期存储、快速计算和分析。

如果计算需求超出了边缘服务器的处理能力,这些服务器还可以将工作负载卸载到云并请求云服务。区块链提供的共识协议可用于验证设备对计算和存储声明的需求。在以太坊等公有区块链中,采用轻量级共识协议的智能合约最适合确保P2P网络连接的边缘服务器和云上分布式资源在更广范围内的更低延迟和更高吞吐量。

4.2.3. 分布式云资源

云层主要用于提供存储和计算的“服务”,但在我们的框架中,它也可以被视为区块链网络上的一个节点,能够参与挖矿过程。由于拥有大规模存储和计算设施,分布式区块链中的共识机制对于云层提供安全、低成本且及时访问以提供最优质的计算服务至关重要。被配置为区块链节点的资源在行为良好时会被激励,若行为不当,则会通过集成的数据完整性服务受到相应惩罚。

与边缘层的节点不同,云层节点独立于数据,通过使用区块链,所有记录在它们之间共享并保持完全复制。

4.3. 物联网应用的服务部署与设计需求的实现

本节讨论了如何在框架中部署不同的服务以满足物联网需求,以及这些服务在实施中如何实际实现。随后,本节还阐述了所提出的方案对先前定义的设计原则的满足情况。

4.3.1. 物联网要求的服务部署

计算卸载是我们框架中部署的首个服务,其作用是将计算能力较弱的终端设备上的繁重且密集的计算任务卸载到边缘网络中功能强大的服务器上。由于区块链挖矿过程中解决工作量证明等难题需要较高的计算能力,因此资源受限的运行物联网应用的移动设备无法独立执行这些任务。通过在网络边缘靠近终端设备处部署边缘服务器,可以利用其丰富的资源分担设备的处理负载,从而使这些设备能够参与区块链网络。涉及此类计算的任务哈希、加解密以及工作量证明的计算操作从设备端卸载并外包给边缘服务器执行。当计算操作需要分配给多个边缘节点时,区块链保障了该模块的安全方面。设备摆脱了这些操作后,延长了电池寿命,并以高效且安全的方式加快了任务执行速度。

For offloading computation in our framework we adopt the off-chain statechannels proposed byKasireddy in[25]. This approach offers extensibility for blockchain tostore more data and performmore complex operations. Withthis scheme implemented in our model, the issue of adaptability willbe addressed and blockchain’s ability toscalewith increasing number of transactionswillimprove.Tools to implement off-chain state channels in our model include a smart contractpowereddecentralizedLightning Network(https://lightning.network/) presented in[36] or its Ethereum equivalent, RaidenNetwork(https://raiden.network/) that extendsEthereum withscalable and timelytransactions.

The off‐chain 状态通道提供了一种区块链交互机制,将原本应在区块链上执行的事件转为在区块链之外进行。如下方图 6 所示,该过程通过密码学安全机制分三个步骤实现,显著提升了速度并降低了成本。在第1步中,通过智能合约锁定部分区块链状态后,参与者可在第2步中对其期望的交易进行更新,而无需提交至区块链。随后,在第3步中,参与者将最终状态提交回区块链,通过关闭状态通道并解锁状态来完成结算。在此过程中,只有第1步和第3步涉及在区块链网络上发布的执行操作,而执行大多数密集型任务的第2步则完全不涉及区块链。

示意图5

利用链下状态通道,能力较弱的物联网设备可以在上述步骤1中锁定其自己的交易所需的区块链部分。然后在步骤2中,这些设备可以下载固件更新或上传数据和文件,并附上其交易摘要以与其他设备共享,而无需处理整个区块链。最后,在最后一步中,对锁定状态所做的更新被提交回主链,此时状态通道关闭,锁定的状态被解锁。

Yeow 等人提出的方案 [29] 以及 Eyal 等人提出的比特币‐NG(下一代比特币)协议 [24] 均涉及使用侧链。其目标是通过一种允许新侧链连接到主链并在主链与不同侧链之间进行交易双向转移的协议来提升性能。然而,该方案在资金跨主链转移到目标侧链时会产生较高的延迟,因此不适用于我们的模型。

与云计算中的集中式存储机制相比,通过边缘计算与区块链的集成实现的去中心化数据存储充分利用了二者的优势,提供更大的存储容量、更高的存储数据安全性,并使数据更靠近用户。将数据存储在靠近所有者和消费者的边缘服务器上,可降低通信延迟,提升系统可用性、耐久性和性能。边缘计算提供的大存储容量与区块链中经验证的安全性相结合,确保了基于P2P基础的去中心化存储管理,而无需将数据委托给任何中心化实体。此外,还引入了空间证明和时空证明机制,使证明者参与者能够向验证者参与者证明其数据存储的复制能力和持续时间。这些附加功能结合在一起,实现了数据完整性服务,支持数据验证以确保存储数据的完整性,并结合使用了以太坊和智能合约。通过该服务,物联网应用能够通过将存储外包给边缘端及其他对等节点上的高容量服务器来获得更大的存储容量,同时由区块链保障安全存储。我们利用了Dziembowski 等人在[26]中最初提出的Data Integrity Service以及上述计算卸载部署中所述的链下状态通道,在我们的框架中实现了安全的外包数据存储。

如图7所示,基于区块链的数据完整性服务(DIS)在 [26]中被详细描述为一种数据完整性的潜在解决方案。在DIS中,用户被识别为运行各自数据所有者应用(DOA)和数据消费者应用(DCA)的数据所有者和消费者。云存储服务(CSS)既可以仅作为云上的服务提供,也可以实际视为区块链上的一个节点。数据所有者和消费者均通过其在区块链系统中的对应公钥进行唯一标识。当加入区块链网络时,DOA和DCA都会生成一个密钥对,包括一个私钥和一个对应的公钥。公钥用于标识每个节点的账户,而相应的私钥则用于访问该节点的账户。系统中所有交易只有在节点账户拥有足够押金的情况下才能完成。尽管DOA和DCA都可以灵活地作为矿工加入网络,但由于计算能力不足,DOA通常难以且大多无需通过成为矿工来获取押金。至于DCA,则可根据其硬件设施和财务状况,灵活选择是否充当矿工。

示意图6

在我们的集成框架中,通过结合以太坊和智能合约实现了外包存储数据完整性服务的实用解决方案。该方案要求来自终端设备的数据在外包之前必须进行加密,以保护数据机密性。利用空间证明 (PoSpace),参与P2P网络的对等节点必须证明其押金声明的合法性,并承诺投入其所拥有的存储空间[30]。在此背景下,空间证明(PoSpace)描述了一种机制,即证明者通过投入大量内存或磁盘空间来响应验证者发布的挑战,从而在请求服务时表达其有效兴趣。需要注意的是,在解决空间证明所发布的挑战过程中,除了需要投入指定的存储空间外,证明者与验证者之间还需交换大量文件,这使得该方法在实际应用中相当不切实际,但安全始终是有代价的。

为了在区块链中生成和链接交易,对等节点需要通过解决空间证明中设定的验证挑战来注册并验证其交易。物联网用户在此框架中利用智能合约存储交易。在本地加密信息以防止未授权访问后,由所有者客户端创建交易,并向P2P网络广播,同时声明要求并查询将产生的费用。相应地,矿工( P2P网络中的对等节点)检查用户的请求以及交易中可用的服务,向客户提供所需的存储租赁服务。通过智能合约实施充分的激励与惩罚机制,物联网设备 thus 可将其数据外包至去中心化P2P存储系统进行存储。

为了检查外包数据的完整性,物联网用户会生成一个新的挑战交易,托管数据的矿工需要为此计算一个证明(由用户进行验证),并将该证明记录到区块链上。当计算出的证明未能通过验证时,作为数据托管方的矿工会受到惩罚,其在向物联网用户注册时缴纳的押金将被没收。矿工在需要时可以通过生成取消交易来撤销已承诺的存储空间,并取回注册时缴纳的押金。

网络流量控制,以及上述两项服务,确保实体间数据传输的安全性至关重要。该服务旨在提供网络控制机制,以在设备之间传输数据,支持经过网络中若干中间节点的交易。这还延伸到保护承载管理各种交易方面的规则的智能合约通信本身。这些合约可能由位于网络对端边缘的节点交换,因此其传输必须受到保护。因此,必须同时保护数据和智能合约通信,以实现网络中可靠且高效的协调。这些消息中包含权利和特权、用户寻址、加密信息以及交易有效期限等详细信息。当消息在网络中的设备之间传输时,必须在设计中充分应对不同层面的安全攻击。由于边缘计算连接下层与上层,并与多种其他系统和协议(例如Wi‐Fi、M2M和蜂窝网络)进行交互,因此在此异构环境中进行网络管理不可避免地成为一项挑战。针对此部署的有效措施是采用软件定义网络(SDN)及其扩展SDN组件( SDNC),如Sharma等人在[37]中所述,通过将控制平面与数据平面分离来提供更好的网络可见性。

最终,利用在软件定义网络(SDN)环境中,网络资源的动态虚拟化简化了网络管理,并通过区块链促进了网络中隐私和安全的实现[38,39]。我们的框架融合了区块链技术措施,以实现访问控制、用户和交易的身份验证、完整性和数据隐私。

为了在我们框架中的网络节点间流动的流量中实际实现增强的匿名性,我们利用了Zerocash— Zcash(https://z.cash/)、其前身Zerocoin(http://zerocoin.org/)以及文献[40]和[41]中提出的可链接环签名方案(https://github.com/sorrge/LSAG)。Zerocash提供了一种强保护隐私的数字货币, Zerocoin提供一种隐藏交易细节的加密货币,而可链接环签名方案则提供了验证两个不同的签名是否由同一签名者生成的方法,但仍然无法确定签名者的身份。

我们从冯等人在[3]中发现的三种可能的方法来保护区块链的匿名性:混币服务、环签名和非交互式零知识证明。混币服务可以通过模糊交易中发送方和接收方之间的关系,来防御匿名攻击。混淆技术能够隐藏参与通信的实体身份以及传输内容。环签名由一组选定成员形成,这些成员在无需任何中心实体干预的情况下加入环,并由其中一名成员代表所有人匿名签署消息。环签名从参与者组成的环中生成一个有效但匿名的数字签名,同时不暴露签名生成者的身份。至于零知识证明(ZKP),它提供了一种密码学方案,可在不泄露任何额外信息的情况下验证交易。

尽管混币服务在区块链交易混合方面具有自发性,但当参与者在交易能够被混合之前相互发现时,会带来大量延迟。如图 8a 所示且最初由[42],设计的环签名——
示意图7 环签名匿名性;(b) ZCash (ZEC) 交易的高层视图)

在不深入细节的情况下——使用公钥基础设施(PKI)为环中的所有成员生成有效签名,验证者可据此验证签名的有效性,而无需发现实际签名者的真实身份。可链接环签名是一种方案,其中一个实体在环中可以使用相同标签对同一消息两次签名,而已使用的签名可通过PKI机制进行链接,但签名者身份保持匿名[3]。尽管环签名提供了强匿名性,但其交易体积大、签名大小与环中实体数量成正比,以及审计困难等关键限制问题仍然存在。

另一方面,ZKP提供了一种合适的协议,通过其非交互式零知识证明(NIZK)变体在区块链中匿名验证交易。在NIZK证明中,去除证明者与验证者之间的连接,以实现交易过程中的匿名性。无需深入解释其运作机制,零币和零现金均利用NIZK证明中的密码学过程来防止交易分析并增强匿名性。零币由Miers 等人提出,用于[27]应对交易的图示分析,并允许完全匿名的货币交易。它采用NIZK 证明程序,在硬币被铸造时进行验证,之后用等值的新硬币赎回,新硬币不包含先前信息,从而切断交易与其支付来源的关联。此外,[28]中描述的零现金为区块链提供了更高层次的隐私,使参与者能够直接匿名相互支付,而无需揭示交易中的来源、目的地和金额。下图8b说明了使用屏蔽地址发送和接收Zcash的机制,以及通过生成的ZKP,其他参与者能够在不揭示地址的情况下验证交易中的加密数据。

4.3.2. 框架中设计需求的实现

总结见下表 1,以下简要描述了在我们的拟议框架中如何利用不同的工具和其他部署的服务来满足所定义的目标要求。

目标需求 框架中的实现
卸载计算 通过使用雷电网络实现的链下状态通道,复杂的计算负载从物联网设备转移到边缘的强大服务器。
去中心化数据存储 通过利用数据完整性服务(DIS)和链下状态通道,通过区块链与边缘计算获得安全且大容量的存储容量,数据在P2P基础上进行管理,无需委托给任何集中式权威机构。
已认证交易 为确保系统中交易的有效性,节点需要求解在分布式信息系统(DIS)的智能合约中预设的挑战,用于存储时交易。只有在为已发布的交易计算出的证明有效时,该交易才有效挑战由用户验证。
受控访问 通过为数据所有者生成的公私钥对,消费者在分布式信息系统注册时,节点账户由由相应私钥控制访问的公钥。这确保了对系统中存储的数据的受控访问。
匿名性 可链接环签名等工具中的加密机制混合体,零币和零现金被用于实现更强的匿名性区块链中交易超越假名以确保用户隐私及其各自的数据。
数据完整性 通过使用由智能合约强制执行的奖惩机制智能合约在分布式信息系统中为数据所有者和消费者提供服务,物联网的数据完整性得到保障设备将数据外包,以在点对点存储中进行去中心化保存。
低延迟 通过部署实现对物联网应用的快速响应(即低延迟)网络边缘靠近终端设备的边缘服务器。
适应性 通过链下状态通道增强该方案的扩展能力通过使用闪电网络或雷电网络来支持未来的扩展更多设备和大规模交易。

5. 实验评估

5.1. 拟议框架的原型设计

在本节中,我们介绍了拟议框架原型实施的详细实验设计和所需工具。作为初步的概念验证,以验证我们去中心化存储方案的可行性;我们使用了下图9所示的设置进行实验。一台功能强大的工作站,例如配备Intel Xeon 处理器 E5‐1630 v3(10 MB SmartCache,运行频率为3.70 GHz)的工作站,被用作边缘计算服务器。在实际运行中,将实现边缘服务器的P2P网络,但此设置应足以运行我们的初步测试。另一方面,安卓设备被用作物联网终端节点。此外,在众多云服务提供商中,如亚马逊 S3、Digital Ocean和IBM BlueMix,我们选择了微软的微软Azure来构建、部署和测试我们的框架。

表2下方汇总了开发原型所需的工具、设备和技术及其相应说明。

序列号 项目名称 项目描述
1 安卓移动设备 运行物联网应用的终端节点。
2 边缘计算服务器 用于承载卸载任务的强大服务器。
3 无线接入点 一种网络中心,用于提供设备之间的连接。
4 微软Azure云 提供云服务。
5 TestRPC 以太坊区块链的模拟。
6 Truffle 用于开发智能合约的框架。
7 MetaMask 适用于网页浏览器的以太坊客户端。
8 web3 API 以太坊JavaScript API。
9 npm JavaScript的节点包管理器。
10 Node.js JavaScript的运行时环境。
11 数据完整性服务 基于智能合约的数据完整性框架。
12 雷电网络 以太坊扩展以提供链下扩展。
13 可链接环签名 一种用于验证匿名消息签名者的数字签名方案。
14 零现金 一种加密货币,可实现交易的选择性透明。

最终目标是让物联网终端节点作为矿工,在边缘计算服务器上执行挖矿操作,而边缘计算服务器的计算和存储能力可通过微软Azure云上的服务得到提升。通过使用以太坊JavaScript API( web3https://github.com/ethereum/web3.js/),我们开发了一个数据存储去中心化应用(DApp),其客户端模块可安装并运行在物联网节点上,并由运行在边缘工作站上的以太坊平台进行操作。开发此应用需要三种基本工具,即TestRPC、Truffle和MetaMask。

TestRPC 作为以太坊客户端之一,可用于在本地模拟以太坊网络,以便在部署到主网络之前运行和测试智能合约。它可通过 npm 包管理器获取,npm 是 Node.js 的默认包管理器。通过Node.js,可以本地创建并启动以太坊网络,并配置一些默认账户、私钥以及监听指定端口 (例如8545)。

Truffle 被用作开发以太坊基于Solidity的智能合约的工具套件。Solidity 是一种面向对象的高级编程语言,其语法与 JavaScript 类似,广泛用于智能合约的开发。Truffle 配备了智能合约的内置编译、测试和部署功能,同时还提供 JavaScript 抽象,以简化智能合约与用户应用程序接口之间的通信。它也可通过 npm 获取,并且无需额外安装或配置即可兼容 TestRPC 和 web3 API。在创建的项目树中,可以初始化Truffle服务,以托管智能合约、管理部署文件以及存放测试文件,这些文件对于测试智能合约和正在开发的应用非常有用。

示意图8

作为最终的工具组件,MetaMask 提供了一个在网页浏览器中运行的轻节点以太坊客户端,向开发的去中心化应用(DApp)暴露 web3 API,并使用户能够通过在浏览器中运行该客户端与以太坊网络进行交互。MetaMask 工具以谷歌浏览器扩展程序的形式提供,用户可通过它连接各种以太坊网络,包括主网络、某些在线测试网络或在 TestRPC 上实现的本地网络。用户可以从指定端口更改网络,并将 MetaMask 连接到由 TestRPC 在本地运行的以太坊网络。

利用上述环境配置,我们开发了去中心化应用(DApp),并将其与零现金项目( https://github.com/zcash/zcash)以及可链接环签名方案(https://github.com/sorrge/LSAG)集成,以增强隐私保护。同时,采用了以太坊网络的扩展——雷电网络,以实现可扩展的即时交易。该去中心化应用中的智能合约通过以太坊网络实现,以提供数据完整性服务。通过所开发的去中心化应用,移动设备可通过无线接入点(AP)连接至边缘服务器,并执行挖矿过程。在此场景中,矿工借助以太坊服务,向边缘服务器请求存储和计算服务。已挖出的交易区块随后可通过以太坊网络进行访问和分发。

为了衡量框架性能,我们旨在通过结合在Node.js上运行的TestRPC以模拟以太坊网络,以及我们开发的用于智能合约和其他集成功能的去中心化应用(DApp)来进行实验。使用Node.js,我们首先创建了初始的5000个区块,然后利用移动节点在主区块链之上发起区块挖掘。通过改变挖矿设备数量,我们考虑了三种不同情况——分别使用三、四、五个矿工。我们固定每个被挖掘区块中的交易数量(例如20笔交易),并通过智能合约调整工作量证明难题的“难度”目标。随后,我们使用中央处理器(CPU)利用率来测量这三种情况下矿工的计算需求趋势。在模型开发的这一初始阶段,我们的目标仅是评估成功挖矿的概率。我们通过边缘服务器CPU利用率来衡量计算服务需求,方法是改变矿工数量及其相应的需求,该服务需求进而反映了成功挖矿的概率。类似地,我们还计划进行实验以评估能耗和内存消耗,以及激励式外包存储结合优化的卸载模型的全面部署。

5.2. 概念评估与讨论

我们针对区块链技术的研究旨在实现框架中的匿名性、完整性和适应性水平设计目标,并已发现潜在解决方案。这些方案需要整合到一个基于区块链网络构建的统一去中心化应用中,以验证其平稳运行。在本节中,我们讨论了研究结果以及对框架初步实践实施的概念分析。

通过在区块链系统中引入分层架构,解决了物联网设备异构性以及边缘计算环境中涉及的各种协议所带来的扩展性和互操作性限制。这包括将区块链部署划分为独立的层,并将其从应用层中分离出来,从而使能力较弱的物联网设备仅需存储与其自身交易相关的区块链部分。对于容量较低的设备而言,存储整个区块的成本非常高,因此这种方式避免了这一问题。不同实体在各层中的操作和交互在拟议框架部分中已详细说明。如前所述,链下状态通道方案允许区块链的部分操作在链外执行,从而将区块链密集型操作分离到另一个独立的层中。在我们的模型中,大量数据存储和密集型交易可以从物联网设备外包为边缘层及其他对等节点中的链下存储和链下计算资源。借助P2P网络中积累的大量存储和计算能力,该框架能够提供足够的存储和处理能力,以实现区块链对物联网应用的适应性。由于繁重的任务已被外包至链外,因此可以实现更安全、高效的物联网系统,能够适应环境变化以及用户和交易量的增长。

至于去中心化系统中确保可靠访问与控制的关键匿名性方面,仅靠区块链的假名是不够的。在涉及分布式计算和带有已验证交易的安全数据存储时,某些应用需要更强的匿名性,而仅仅使用假名无法满足需求,应采用多种加密方案相结合的混合方案来实现完全匿名。如前所述,使用可链接环签名等工具可以隐藏交易中发送方的身份,并允许网络中的用户以匿名且可信的方式执行交易。此外,零币(zerocoin)和零现金(zerocash)采用非交互式零知识证明,为混淆交易中包含的信息提供了完美的工具。这些工具通过将交易中的信息位转换为与原始信息无关联的不可理解的随机比特序列,使得攻击者无法破坏匿名性。这种能够阻止恶意实体恢复交易中哪怕单个比特信息的强大抗性,使这些协议更适用于保障我们模型中的匿名性。

此外,利用以太坊和通过空间证明实现的智能合约所提供的数据完整性服务,为数据完整性提供了一个充分的解决方案。这种组合将数据所有者和消费者聚集在一起,以P2P方式互动,分别满足其存储和数据方面的要求。智能合约在系统中建立了激励与惩罚机制,鼓励更多矿工加入网络并贡献其存储空间,同时惩罚那些未能验证其行为的参与者,以确保数据的真实性和完整性。因此,我们认为该机制适用于保护我们去中心化框架中的数据完整性,并实现数据存储所需的安全性。此外,通过使用不同的工具以及如前文表2中所示的各种加密机制的组合,我们的集成方案已满足目标要求。

基于这些研究成果,我们开发了一个系统原型,并整合了所发现的解决方案,以在边缘计算平台中实现一个面向物联网设备的安全区块链存储系统。我们的方案利用以太坊的JavaScript API创建了一个去中心化应用,并在TestRPC以太坊模拟网络上进行了测试。通过使用Truffle框架中的智能合约以及MetaMask以太坊网页客户端,我们成功部署并测试了该应用。通过雷电网络扩展以太坊,我们应用中的智能合约得以实现部署时配备了零现金和可链接环签名方案,以及数据完整性服务。通过这种组合,我们能够利用雷电网络实现适应性,雷电网络是一种链下扩展解决方案,其主要目的是提供即时、低成本和可扩展的交易。借助该网络,我们可以实现一种分层架构,其中运行物联网应用的终端设备仅存储区块链的部分内容并执行轻量计算,而大存储需求和密集计算则被卸载到上层功能更强大的服务器上。数据完整性服务通过以太坊智能合约中定义的规则在应用中得以解决,最终我们通过零现金协议和可链接环签名方案实现了物联网中用户和交易的强匿名性。

结论与未来方向

我们的研究旨在通过集成两种高度流行的技术——区块链与边缘计算,寻求一种安全数据存储且高性能的物联网设计。我们提出了一种基于P2P网络的集成物联网框架,使边缘计算和区块链分别凭借其大存储容量和强安全特性相互补充。为了满足模型的安全与性能要求,我们研究了合适的现有技术,以解决对区块链与边缘计算集成至关重要的完整性、适应性和匿名性问题。

我们采用了一种基于空间证明的解决方案,用于基于智能合约的数据完整性服务,以验证存储的交易并增强数据完整性,且无需中央机构参与。为了提高设计的可扩展性,我们采用了分层架构,通过雷电网络将区块链与应用层分离,从而在以太坊基础上实现快速且可扩展的交易。这种分离使得资源受限的物联网设备仅需存储与其自身交易相关的部分区块链数据。在匿名性方面,我们发现可链接环签名、零币和零现金是隐藏用户身份及模糊化交易中包含信息的有效工具。因此,在框架原型中,我们采用了零现金和可链接环签名来增强匿名性。根据本研究,我们设计了一个实用系统原型,用于实施区块链与边缘计算集成的系统,实现安全且去中心化的数据存储。对所采用的独立解决方案进行的概念评估表明,其具备成功集成的可行性,足以支持多种物联网设备之间大规模信息的安全存储。

未来工作:在本文中,我们仅提供了一个系统原型的概念设计,并主要基于所采用的各方案的优势进行了简明评估。我们的未来努力方向是利用所开发的去中心化应用来评估所提出方案的成功运行情况,并优化涉及的不同参数。我们将从边缘服务器上简单的CPU利用率、内存使用和功耗模式开始,以评估系统性能,目标是实现跨所有层的全面部署。随后,我们将制定一些用于外包的优化模型以及卸载策略(例如,卸载什么、何时卸载以及卸载到哪里),并评估与网络延迟和带宽消耗相关的所有方面的性能,以实现更高吞吐量和快速响应系统。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐