gossip 区块链_【论文】基于区块链智能合约的物联网恶意节点检测和定位


戳上面的蓝字关注我们哦!
基于区块链智能合约的物联网恶意节点检测和定位
黄豪杰 1, 吴晓晓1,2, 李刚强1
1 深圳大学电子与信息工程学院,广东 深圳 518060
2 鹏城实验室,广东 深圳 518055
摘要:
随着物联网中分布式设备数量呈现快速增长态势,在网络规模不断扩展的同时也带来了更加复杂的协作机制与优化算法的安全性问题。针对这一前沿议题,在现有研究中大多数分布式算法仍局限于单点运行环境,并面临数据封闭性、易受单一故障点影响等局限性。为了弥补这些不足,在传统检测手段的基础上引入区块链技术和智能合约方案成为必然选择。该方案通过发挥区块链技术的高度去中心化特性和多处备份优势实现了数据的有效共享,并避免了传统方法存在的单一节点故障风险;同时利用智能合约系统提供的透明可追溯特性保证了检测流程的可信度与安全性;最后通过基于树莓派平台的实际验证证明了该方案的有效性和优越性
关键词: 物联网 ; 数据注入攻击 ; 区块链 ; 智能合约 ; 恶意节点
1 引言
物联网技术正在引领新一轮的技术变革,在推动全球范围内信息技术的发展进程。
2 基于平均共识的攻击者检测模型
物联网是由智能手机、个人计算机及传感器等终端共同构成的一个全球型的分布式网络。当物联网接入大量智能体时,通常情况下需要对有限的资源进行合理分配以完成这一过程。在资源分配过程中,每个正常节点都会与邻居节点交换数据并更新其状态信息。然而,在这种过程中存在一类恶意节点会发起数据注入攻击,在参与状态交换的同时仍然能够保持自身的状态。如图1所示的数据注入攻击下的分布式物联网模型表明,在这种动态变化过程中恶意节点为了隐藏自身行为特征会在每次状态交换时添加一个衰减的噪声以模拟正常节点的状态收敛特性。针对这一动态变化过程研究发现可以通过邻居节点收集的状态信息对恶意节点进行有效检测与定位

为了便于研究,在数据注入攻击场景下考虑分布式物联网模型时,我们可以将其抽象为一个无向连接图G=(V,E),其中V={1,...,n}代表网络中的所有节点集合;E⊆V ×V表示各节点之间的连接关系;而Ni∈V则表示节点i的所有邻居构成的集合。在上述定义中:粗体字母用于表示向量或矩阵(如向量x),xi则代表向量x中的第i个元素
2.1 基于平均共识的攻击者模型
假设网络中共有n个节点,且存在恶意节点的集合Vs⊆V,

,n s r =V/Vs。所有节点的状态可以表示为

,其中,

表示算法迭代次数,

为自然数集,

表示共识过程中的一个实例,

表示节点i在第k个实例中第t次迭代时的状态值。假设节点i∈V,初始值为

,则网络的共识目标为

定义如下:用符号1代表各元素均为1的列向量。在平均共识算法运行过程中,在采用随机Gossip协议下的异步通信机制下进行操作。在异步通信模式下,在每个时间段内只有一个节点i被激活,并且当某个时间段内激活的该节点完成任务后会根据概率pij选择一个邻居j∈Ni进行信息交换与状态更新操作。其中概率pij表示该激活过的当前活跃状态中的某个特定位置所连接到各个邻居的概率分布情况,并且每次交换过程可以用以下数学表达式来描述:
x_i^{(k+1)} = x_i^{(k)} + \sum_{j\in N_i} p_{ij}(x_j^{(k)} - x_i^{(k)})

经过t→∞迭代后,网络会收敛至

,整个共识过程可描述为

其中,W(t)为第k个实例中第t次迭代时的状态转移矩阵。定义

,则转移矩阵的期望可以表示为

其中,I为单位矩阵。根据式(3)和式(4)可以得到网络中状态值的期望为

如果网络中存在多个恶意节点,并且这些恶意节点通过协同攻击影响整个网络,则该网络系统的平均状态会随之偏离其初始设定的目标状态。假设这些恶意节点试图引导共识目标转移至一个新的稳定点或特定方向,则后续系统的动态行为将受到这一策略性干预的影响

,则整个网络中节点的共识最终将收敛到式(6)。

在数据更新过程中,在确保自身状态不变的情况下避免被轻易检测到的前提下(例如式(7)所示),恶意节点通过在交换状态时以随时间衰减的方式添加噪声来规避检测机制

其中,"异常主体"是为了模仿正常收敛状态而引入的零均值噪声项.具体而言,当"异常主体"持续维持原有状态时,则容易被相邻主体察觉其潜在攻击行为.因而,"异常主体"会在自身状态下加入随着时间衰减的随机扰动项,从而增强了自身的隐匿能力.研究表明,在"异常主体"引入带有时间衰减特性的零均值扰动后,系统仍能达到预期的目标共识.针对上述问题,本文采用基于时间差分和空间差分的方法来实现对"异常主体"的有效识别与定位.
2.2 时间差分检测策略
在存在恶意节点的情况下,在Vs中的恶意节点s会影响共识结果与初始目标的一致性。

。随着算法的不断迭代,当t=T时,网络会收敛到最终的共识目标值

改写说明

当时间T足够大时,在网络中各节点的状态值与最终的目标值之间的误差将趋近于零;此时可认为网络已达成一致

和

分别对应节点j的最终收敛结果与初始状态值。其中,在式(8)中定义的k∈{1,…,K}表示算法运行的一个具体实例。通过考察更多具体实例的数据分析,有助于提升检测方案的有效性。具体检测指标如式(9)所示。

其中,

为预先设置的检测阈值,

表示节点i无恶意的邻居节点,

标记节点i周围的恶意邻居。当正常节点检测到网络中存在恶意攻击行为时会立即响应并执行邻域定位任务该定位过程利用式(10)中的评估标准完成。

其中,

表示节点i的邻居节点j不是恶意节点,

表示节点i的邻居节点j是恶意节点,

为预设的定位任务阈值。
2.3 空间差分检测策略
时间差分法仅涉及节点在收敛后的状态值以及初始值,并未考虑到共识过程中各节点的中间状态信息。该方法通过引入空间差分技术,在默认情况下 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() 的时候 getDefaultParameterSetting() ,从而更好地检测和定位恶意节点.

,

当网络中存在攻击者时,在此情况下,节点与其邻居节点之间的差异均值不等于零。在此基础上,检测策略引入了指标如公式(11)和(12)所示。

在式 (11) 中, 其中变量 i 属于集合 V_r, 而 m 则属于自然数集 N 并与 {i} 进行并集运算;在式 (12) 中, δ_{II}>0 作为该空间差分策略攻击检测方法的关键参数设定。为了实现恶意节点定位任务的目标, 定义了一系列评估指标, 如公式 (13) 和 (14) 所示。

在式(13)中,

可以通过节点i由式(11)计算得到,

用来衡量邻居节点j与自身i之间的差异程度;在公式(14)中作为预先设定的定位任务阈值。
3 区块链和智能合约
3.1 区块链底层数据结构
区块链是一种由多方共同维护的分布式账本技术,并利用密码学确保数据传输的安全性和可访问性以实现数据一致存储难以被篡改以及提供不可抵赖的记账功能其基础架构和技术模型未发生变化。该技术由一系列按顺序链接的区块组成每个区块可划分为区块头和区块体两个部分通过图2所示的区块结构可以看出这些组成部分的具体构成情况。具体来说 区块头包含了版本号时间戳随机数前一区块头哈希值目标难度值以及Merkle根等关键信息而区块体则存储了多笔交易信息及交易数量这些交易信息通过连续迭代计算哈希值来生成最终Merkle根

图2 区块结构示意图 区块中的各部分含义分别如下。 1) 版本号:验证该区块时使用的协议版本。 2) 时间戳:生成该区块时对应的时间,精确到秒,该时间采用统一的Unix时间戳。 3) 随机数:用于证明工作量的随机参数。 4) 前一区块头哈希值:前一区块的区块头的哈希值。 5) 目标难度值:生成该区块时要达成的难度目标。 6) Merkle根:区块体中的交易通过反复哈希迭代后生成的树形结构的根节点值。 7) 交易:区块链网络中账户之间的转账信息。 8) 交易数量:存储在区块中的交易数量总数。 综上所述,区块链的数据结构运用了大量哈希运算,而哈希运算具有抗碰撞特性,从而保证了数据唯一和不可篡改。在区块体中,每一笔交易都附带发送方的数字签名,以保证交易数据的真实可靠。因此,在数据上链的过程中,依靠交易发送数据可以确认数据的来源,进而防止数据发送方抵赖,保证了数据可追溯。
3.2 区块链的运行流程
区块链系统本质上是一个以交易驱动的状态机,在其运作中涉及多个关键步骤
3.3 智能合约
智能合约始于1996年Szabo提出,并被定义为一种数字化合同条款。智能合约是一种自动运行程序系统,其目标是通过数字化合同取代现实世界中的交易关系。该系统的一个显著特点是部署后自动运行且无法更改,但由于缺乏可靠的平台支持,这一概念尽管经过多年提出,却长期未得到广泛应用直至比特币出现后才逐渐进入人们的视野中。
比特币采用了被称为比特币脚本的一种代码块实现智能化转账等简单合同功能,但其缺乏图灵完备性这一限制因素,因而制约了其推广应用范围目前广泛讨论的智能合约多数基于以太坊平台,该系统采用图灵完备性强效的语言——Solidity编写智能合约代码,这种特性进一步扩大了智能合约的应用场景目前已有众多优质应用实例
一个完整的智能合约生命周期包含三个阶段:生成、发布及执行三个环节中,一旦生成则无法篡改因此生成环节必须由多方协商一致最终生成的内容将转化为程序字节码文件发布环节与交易发布相似当一笔转账交易广播至全网节点时接收方地址为空白状态此时区块链系统会将其识别为部署指令经交易验证后将相应合约为区块链存储
一旦发布就会产生特定地址该地址下存储着编译好的字节码文件及相关状态数据外部程序可通过该地址与系统进行交互所有的智能合约均运行于独立于外界环境影响的独特虚拟机环境中该虚拟机与外界完全隔离以确保合按严格的编写的逻辑执行
在执行过程中每一次状态变化都会被记录至区块链的状态数据库中供各方查询及验证
考虑到系统的开发及部署挑战本方案选择基于以太坊平台构建该系统采用Web3.js框架结合Json-Rpc接口调用Geth提供的远程管理功能从而实现对虚拟机及数据库的有效控制外部程序与系统的交互界面如图3所示其中State tries用于存储各账户数据Storage tries用于存储合按数据Transaction tries用于存储交易数据

图3 外部程序与智能合约交互示意图
4 基于区块链的检测系统架构
该系统架构整合了区块链技术和智能合约机制,并将其整体功能划分为物联网模块、共识模块、智能合约模块、区块链模块以及检测模块五个子系统。其中1)物联网子系统负责构建通信网络平台;2)共识机制运行平均一致性算法;3)智能合约部分细分为数据存储层、数据查询层以及恶意节点检测层;4)区块链部分负责整合并管理全局数据集合;5)定期触发恶意节点检测算法运行以实现网络拓扑优化(如图4所示)。

图4 系统架构
4.1 物联网模块
物联网模块的主要职责是构建通信网络结构,并完成节点间的连接与数据传输任务。根据传输距离将物联网的通信技术分为两类:一类是LPWAN等低功耗技术;另一类则是基于RFID、NFC等多种近距离通信技术。考虑到共识过程中需要频繁的数据交互,在本系统中采用了吞吐量较大的Wi-Fi协议来搭建底层网络以提高数据交换效率
4.2 共识模块
该模块负责物联网网络中节点本地状态数据的上传并执行共识算法,在数据来源方面具有重要地位。其工作流程如图5所示,在每一轮次中包含以下具体操作:首先,在每个周期内依据泊松过程随机唤醒节点i;其次,在此之后该节点将随机选取一个邻居节点j建立通信链路;随后,在双方进行状态交换以更新自身状态;最后,在完成信息传递后双方将共同评估是否已达成一致意见。若判定达到一致,则将通过Web3.js接口调用存储与查询合约数据的上传功能;若未达成一致,则返回至初始环节持续循环。

图5 共识模块工作流程
4.3 智能合约模块
智能合约系统主要包含三个功能模块:数据存储模块、数据查询模块以及异常检测模块。其中前两个模块分别负责完成数据的组织化存储以及提供给共识层节点调用的数据获取服务功能。具体来说,在共识层节点向系统提交数据后,系统会通过预先定义的数据结构将用户提供的数据组织并存入区块链系统中;接收方节点则会根据接收到的具体查询指令调用预设好的数据库管理逻辑进行信息检索,并将计算结果返回给发起请求的节点。而异常检测模块则主要承担着实现时间差分检测算法和空间差分检测算法的任务,并通过调用特定函数对网络中的异常行为进行识别与定位。在完成相关操作后返回相应的检测结果信息。这些检测算法在运行过程中会动态调用区块链系统中预存的相关共识状态信息,并基于这些状态信息对网络中的恶意行为进行实时监控与定位服务
系统的运行流程主要包括两个主要阶段:合同部署阶段与合同执行阶段
在合同执行阶段主要包含三个步骤:第一,在请求方发起一笔新交易时需向智能合约系统提交相应的ABI码字节参数到指定地址;第二所有参与此交易的节点验证其有效性后将在以太坊虚拟机上启动相应的代码块并执行其中的所有指令,在此过程中任何状态变化都会被永久记录于区块链上;第三当所有参与方确认完毕后请求方将能够通过特定接口获得完整的交易结果信息
4.4 区块链模块
区块链模块主要负责对数据进行存储与读取操作。如图3所示,在整个系统架构中相较于传统区块链存储模型,以太坊系统新增了一个基于Merkle树类型的Storage数据库来专门用于存储智能合约上传的数据及其状态信息。通过合约地址可以基于该数据库访问对应的合约数据空间。共识数据的底层数据组织架构如图6所示,在该结构中采用Solidity内置哈希表实现数据存储机制。

图6 共识数据的逻辑存储结构
4.5 检测模块
该系统中的数据监控机制由数据监控中心负责实施,并采用智能分析平台对实时数据进行处理与评估。具体运行流程如下:首先,在每个监控周期开始时(即每天零点),若当前系统的负载水平超出预设阈值,则通过Web3.js技术向智能分析平台提交一批数据采集请求;其次,在完成数据采集后,在线分析平台会自动调用预设的数据评估算法模型进行计算,并将计算得出的结果反馈给相关业务处理部门;最后,在这一过程中(即当监控对象处于活跃状态时),系统会持续跟踪各关键指标的变化趋势,并根据评估结果采取相应的应对措施:若发现异常情况,则会立即触发警报机制并启动应急响应程序;同时,在整个监控过程中(即从数据采集到评估完成),所有正常运行的设备均会将实时监测数据上传至云端存储库,并通过区块链技术实现数据的安全性和完整性的验证
在这一过程中(即当监控对象处于活跃状态时),系统会持续跟踪各关键指标的变化趋势,并根据评估结果采取相应的应对措施:若发现异常情况,则会立即触发警报机制并启动应急响应程序;同时,在整个监控过程中(即从数据采集到评估完成),所有正常运行的设备均会将实时监测数据上传至云端存储库,并通过区块链技术实现数据的安全性和完整性的验证
5 仿真分析
本节将展示仿真数据以评估本模型的有效性如图7所示。在仿真阶段中我们选取图7所示的一个包含9个正常节点的小型网络来进行有效性测试后续将讨论更为复杂的网络结构例如小世界网络模型等。其中正常状态下的每个节点包括一个中心点(此处定义为点2)与多个边缘点(包括点1点3点5以及点8)相连这些连接关系是预先设定好的并且全部基于文献中的标准配置在此基础上我们对所有参数进行了严格的一致性测试包括但不限于初始条件设置等关键指标均采用文献中的默认值进行计算。

,

恶意节点添加的随机衰减噪声为

,

是

本节主要探讨了测试网络的收敛性和时间/空间差分性能,并通过以太坊智能合约评估了节点状态上传模块和节点检测模块的表现。具体而言,在一个包含9台树莓派的集群中进行实验部署:其中一些树莓派被配置为恶意节点(通过树莓派自身模拟)。所有设备均接入测试网络,在共识算法收敛后完成数据上传任务。实验过程中,在每个正常运行的节点上均运行恶意检测模块:当接收到来自恶意检测结果后,则会终止与其通信并将其驱逐出网络。

图7 曼哈顿网络
5.1 分布式网络收敛性分析
图8展示了网络节点状态的变化趋势。对比分析了正常网络与包含恶意节点的系统中的各子系统运行结果差异性。其中横坐标表示迭代次数纵坐标代表各子系统的运行结果数值。在图8(a)所示的系统中在没有恶意注入的情况下各子系统的运行结果趋于初始平均值

;图8(b)的网络中,节点 1为恶意节点,网络的共识结果被节点 1 引导至

,偏离了网络初始均值

。

图8 网络节点状态收敛变化
5.2 时间差分和空间差分策略的性能
以图9为依据展示的时间差异与空间差异策略的表现情况,在该图表中基于受试者工作曲线(ROC(receiver operating characteristic))这一指标展开分析

式(15)和式(16)中,

和

分别为邻域检测(定位)任务中的检测效能和误报率的计算,请参考式(17)和式(18)。


在图9中展示了时间与空间差分策略的表现,在式(17)中,Dp(D_n)表示检测任务中的正样本(负样本)数量,I(⋅)是一个指示函数。

在检测任务中样本的真实类别与预测类别之间存在对应关系。在式(18)所描述的定位任务中,L p 和L n 分别代表正例与负例节点的数量

分别为节点的真实类别与预测类别之间的关系, 定位指标采用了相同的计算方法来评估其准确性。观察图9中的纵轴, 该轴表示的是各个节点的检测概率; 横轴则代表虚警率, 即误报的概率。通过分析图9中的数据可以看出, 时间差分 (TD) 和空间差分 (SD) 方法在检测与定位上的性能表现存在显著差异。具体而言, 当K取值达到25时, 时间差分方法已经能够实现可靠的攻击探测以及对恶意节点的有效定位。相比之下, 空间差分方法因为能够捕捉到更多的瞬时状态变化信息, 其整体性能表现更为出色; 在K=5的情况下即可达到很高的探测准确率和定位可靠性。
5.3 基于区块链的节点状态共享
本节阐述了节点在共识达成后通过区块链实现状态共享的过程。该过程被划分为两个阶段:第一阶段是将存储合约部署到区块链上;第二阶段是节点通过调用数据存储合约上传共识数据。

由于Solidity语言不具备存储浮点数的能力,在上传数据之前需要先对所有的状态进行放大处理1万倍,并保留四位小数的精度随后会对这些放大的数值执行下取整操作得到实际上传的数据具体而言,在这种情况下放大操作相当于对随机变量αk施加了一个线性变换

放大相同倍数,即

,然后在共识过程中更新状态时将状态数值向下取整。
5.4 基于智能合约的恶意节点检测
本节阐述了基于智能合约的恶意节点检测机制。该流程可分为两个阶段:首先是在区块链上部署检测合约;其次,在调用上述检测合约的同时,系统会根据测试结果动态优化物联网网络结构。具体而言,在表1所示的交易中包含了用于部署的智能合约相关数据;而表2则展示了触发事件后系统响应的相关交易信息。值得注意的是,在这些交易中有一些特殊的行为模式值得关注:例如,在表2中的某些交易中包含了触发条件字段;而在表1中则没有此类字段。此外,在图1所示的交易列表中还包含了一些特殊的事件类型(如异常事件)。这些特殊字段的存在与否可能会对系统的运行产生显著影响。


6 结束语
我们开发了一个基于区块链技术和智能合约机制的物联网恶意节点检测与定位系统,在由9台树莓派构成的物联网模拟网络环境中进行测试。这些共识数据被上传至区块链网络供各节点查询与验证,并实现了去中心化的共享与异地备份功能以解决数据孤岛问题;通过引入智能合约机制,在系统运行过程中保证了结果的高度透明性和可追溯性;下一步计划通过整合密码学算法与权限控制机制等技术手段进一步优化方案设计,并考虑将部分数据迁移至IPFS等其他区块链存储系统以降低交易成本
作者简介 About authors
黄豪杰(1997-),男,湖北天门人,在深圳大学电子与信息工程学院攻读硕士学位,在物联网、区块链及数据挖掘等领域开展相关研究工作。吴晓晓(1982-),女,湖北鄂州人,并持有深圳大学博士学位,在该大学担任助理教授一职,在社交网络中的数据挖掘算法、5G通信网络关键技术及信道编码理论等方面致力于学术探索与实践工作。李刚强(1991-),男,河南驻马店人,在深圳大学电子与信息工程学院攻读博士学位,在社交网络中的数据挖掘算法、分布式协议以及机器学习等前沿技术领域持续深化个人学术素养。

『物联网学报』办刊方针与业务范围如下:本刊致力于发表原创性研究论文,在物联网及其交叉学科领域展示具有创新性的基础理论、关键技术及前沿研究进展等,并全面展现我国在该领域的科研成果和发展水平。本刊不仅突出显示我国在该领域取得的重要科研成果和领先技术地位,在推动我国物联网产业创新发展方面也发挥着重要作用。中国电子学会物联网青年技术委员会是中国电子学会于2019年设立的重要专业组织机构。该委员会由中国电子学会物联网专业领域内从事物联网及新一代信息技术工作的青年科技工作者自愿组成。其宗旨在于促进行业内年轻科技工作者之间的交流与合作,并致力于改进学风作风、弘扬科学精神、培育创新文化氛围;同时注重营造风清气正的科研环境以及培养热心投身于我国物联网等高科技事业的专业人才;最终目标是打造一支充满创新活力和卓越影响力的专业化团队。


扫码关注物联网学报 和物联网青年专技组 吧


