EdgeChain An Edge-IoT Framework and Prototype

警告
本文最后更新于 2019-10-15,文中内容可能已过时。

EdgeChain设计

EdgeChain的核心思想是集成一个许可区块链和内部货币系统,将边缘云资源池与每个物联网设备的账户和资源使用行为关联起来。基于信用的资源管理系统主要根据设备优先级、应用类型和历史行为调整设备信用,控制设备可以从边缘服务器获取多少资源,同时面向资源使用智能合约强制执行预定义规则和策略,规范物联网设备的行为。整个思路的问题空间和解决方案空间概览如下

1. 设备

EdgeChain使用许可区块链(私链)换取更高的交易吞吐量和一个受控制和监管的环境,挖矿工作由边缘服务器完成,并将IoT设备分为两类:

  1. legacy devices(EdgeChain-unaware):不需要获取资源,不需要安装区块链客户端,由IoT代理创建区块链账户代表这些设备和区块链交互
  2. non-legacy devices(EdgeChain-aware):安装区块链客户端,和边缘服务器交互获取资源

2. 基于信用的资源管理

EdgeChain使用内部货币把边缘云资源池与IoT设备账户和资源使用行为相关联。每个设备有一个区块链账户,给予一定的初始货币作为信用积分,积分余额决定了设备获取资源的能力。边缘服务器会记录信用积分使用情况,根据一组预定义的规则分配资源,这组规则综合考虑了预定义的优先级、应用类型和历史行为。

3. 面向资源,基于智能合约规范化物联网行为

EdgeChain根据IoT设备的资源使用与活动来监控和调节其行为,根据预定义的优先级、应用类型和历史行为,智能合约可以自动执行相关资源分配策略。有助于抵御内部攻击,快速识别、控制恶意节点,并且可以采用进一步的行为如黑名单阻止设备的进一步操作。

4. 部署

EdgeChain可以两种模式部署,独立模式如smart home,以及分布式模式如smart campus和smart city。以下是smart home的一个例子,这样独立部署的一个模块可以称作一个box,多个独立部署的box合作就可以构成一个分布式部署的场景。

基于边缘服务器和货币系统的资源管理方案暂且不考虑,目前有借鉴作用的是对物联网行为规范化的处理,基于智能合约预定义策略,同时考虑利用货币系统定义的信用积分,用来做恶意行为检测,提升区块链安全性。

设备分类在架构设计时是应考虑的,考虑作为安装客户端的轻节点还是由网关代理与区块链交互,但在具体的场景中,比如对摄像头或传感器进行管理,是固定的,一般不需要分类。看最后定什么样的场景再决定吧。

框架和基本模块

总体架构如下图所示,分为IoT代理、智能合约接口、智能合约、区块链服务器和应用接口五个功能模块

  1. IoT代理:主要功能是监听和嗅探legacy device的活动,为设备创建区块链账户,协助它们与区块链和智能合约交互。注册方式与non-legacy device相同,因此行为规范化的策略也适用它们,除了不能自己直接和区块链交互,和non-legacy device没什么不同。

  2. 智能合约接口:当物联网活动发生时会触发智能合约并执行相关的管理策略,主要由web3协议完成。物联网活动包括注册、设备通信、资源请求、数据发送等。

  3. 智能合约:包括两部分,一是数字货币系统,用来定义设备信任基本并决定资源分配;二是策略管理模块,分析设备行为并进行判决,以及根据货币系统的信用定义分配调度资源。

  4. 区块链服务器:运行共识维持区块链以及运行智能合约完成预定义策略

  5. 应用接口:连接区块链服务器和边缘云服务器,设备与区块链的交互有两种结果,1)账户余额有限或存在恶意行为,请求被拒绝;2)请求通过,移交边缘服务器分配相应资源。一旦确认有足够的资源,边缘服务器即和资源分配的合约交互,进行资源分配,分配完成后,物联网设备直接和边缘服务器上的应用交互。

这里提到的资源包括计算能力、内存、存储、网络等,由于不同程序的要求不同,这些资源以虚拟机为单位提供。

特别的结构是IoT代理和应用接口,当设备类型确定时,代理的工作由网络直接完成,可以取消这一部分,应用接口主要与资源分配有关,也可以略过。最重要的其实还是定义设备信用的货币系统和策略管理两部分合约的算法,对我们是有用的。

关键过程和工作流

区块链部署和合约部署流程略过,这里只介绍设备注册过程和设备行为管理。

1. 设备注册

注册起始于判断设备类型,对legacy设备,IoT代理会为每个设备创建账户并在注册合约中注册,non-legacy设备可以通过安装的客户端直接与区块链交互。

注册信息的内容主要根据制造商使用说明定义,主要包括输入/输出数据类型、边缘资源请求、mac地址、ip地址、网络端口、通信协议和指示标志。此外,每个设备都有一个唯一的区块链账户地址。注册后,边缘服务器验证上述信息,并添加更多的参数如优先级,账户余额,信用和请求时间戳等用于设备管理。具体定义在数据库的字段如下图所示

2. 设备行为管理

这一部分是EdgeChain的核心功能,分为三部分解释:细节工作流,边缘资源分配算法和行为管理方案

1) 细节工作流

当接收到来自物联网设备的活动或请求时,根据设备类型进行不同的处理,具体细节如下

2) 基于定价方案的资源分配

资源分配的优化目标是最大化用户请求的接受率,分配的算法不作详细了解因为不会用到。

3) 行为管理

旨在检测潜在的恶意活动或请求,并采取措施避免进一步的损失。使用一个信用体系进行行为管理,该信用系统与同类方案的不同是信用影响边缘服务器资源分配而不是设备间的协作,但信用与资源定价策略没有直接关系,这种影响是通过奖励或惩罚措施完成的。考虑的行为主要包括:

  1. Resource Requests:设备请求的资源量说明设备是否正常工作,过度的资源需求可能表示异常行为和恶意活动
  2. Price Threshold:假设每个设备只运行一种应用并发送一种资源请求,为此设备设定特定的价格阈值,当请求的价格超过该阈值,请求可以被视为恶意行为,并降低设备信用
  3. Request Frequency:设备以过高频率发送请求,可能是恶意行为
  4. Network Port:设备应以预定义的端口号通信
  5. Data Traffic Destination:设备的通信目标一般是固定的,当目标改变时可能是被恶意控制了

系统会比较设备请求和正常的行为,发现异常则降低信用,每个新注册的设备拥有相同的初始信用,信用降到0的时候设备将无法再进行任何活动,基于信用的变动,返回的代币计算公式如下,其中η是改变的影响因子: $$ \begin{equation*} Coins_{return}=Coins_{charged}+\Delta Credit*\eta \end{equation*} $$

恶意行为的定义比较重要,但这里五种行为并不都符合我们的需求,需要以此为思路继续考虑

实验与评估

设计了一个实验证明了关键的功能在可接受的性能开销下是可行的。

1. 实验环境

实验包括后端边缘云集群,前端物联网设备、代理和接入点。边缘云集群通过OpenStack部署管理,包括五台高性能服务器,一台交换机。前端由一台树莓派3B(附带摄像头,sense hat,麦克风和Google bonnet),一套Google AIY voice kit,一套Google AIY vision kit,和一台laptop组成。一台桌面计算机作为IoT Proxy,一台路由器。如下图所示

边缘服务器使用CentOS7,使用以太坊区块链,Solidity为合约编程语言,Truffle为合约部署攻击,node.js为物联网和区块链的交互界面。树莓派使用Raspbian系统,并安装了Go-ethereum客户端。laptop系统是MacOS,desktop系统为Ubuntu16。

实验中边缘服务器提供云资源,同时作为区块链全节点,树莓派和laptop作为区块链客户端将资源请求发送给边缘服务器,作为亲节点。desktop作为设备代理和区块链交互。

2. 区块链和合约操作开销

指区块链挖矿和智能合约的交互两类开销,主要针对设备注册和资源分配两个功能来分析,开销主要来自于三个方面:计算、通信和存储

设备挖矿的开销不关注了,考虑区块同步的延迟,边缘服务器同步新块的平均时间为4.09ms,物联网设备为35.9ms。区块平均大小为128.78KB,每个块最多存储208个设备注册信息,统计得1000台设备注册平均生成1.8MB区块链数据。

同步延迟受网络影响较大,网络出问题几百ms都可能,很难估计。

对于合约交互,常规交易对CPU得占用比较低,但对内存占用较高,即使空闲时间,区块链客户端也占8%。合约得交互延迟一般小于50ms,满足实时应用得需求。

3. 两种典型物联网应用得开销比较

作者考虑得主要是边缘计算场景,因此找到例子是人脸识别和自然语言处理。树莓派连接的摄像头和麦克风正是用于这两种场景实验。

定价方案的资源管理性能不关注

支付宝
微信
0%