基于DDPG与区块链的工业物联网关键技术研究

2021-06-03 10:09王煜翔
现代计算机 2021年9期
关键词:扩展性共识程度

王煜翔

(四川大学计算机学院,成都610065)

0 引言

IIoT的作为一种前沿技术,它的出现使得更多的工业实体能够实现互连,这引起了很多行业的广泛的关注,如工业制造、零售、物流、环境治理、能源、医疗等。不同的行业中,IIoT通过连接不同类型的实体,能够便利生活,提高生产效率。IIoT对所连接的实体,根据不同的需求进行实时的数据采集,这些数据可以用来对实体的性能、属性、状态等进行描述,进而实现对实体不同的操作包括控制、监控等。在IIoT中,不间断的制造生产势必会产生大量的数据,这些数据是由IIoT所连接的成千上万的实体的传感器所采集获取,所得到的数据是一种宝贵的资源,需要在传输、共享的过程中保证其安全性,因此保证IIoT中数据隐私及安全性显得愈发的重要。

区块链被广泛地认为是对上述问题的一个合理的解决方案。区块链起初是被设计应用于比特币系统,提供安全可靠的交易。但区块链在高吞吐量和扩展性方面仍有着极大的挑战,阻碍其发展成为一个适用于不同应用场景的通用平台[1]。如果将基于区块链的IIoT运用于不同场景,对TPS(Transaction Per Second)有着较高的要求。目前,在如何解决区块链扩展性问题上有不同的方案:链下支付网络、BitCoin-NG、分片机制等。对于链下支付网络,典型的方案是闪电网络,它通过减少链上的冗余来解决扩展性的问题。比特币现金通过调节区块大小与区块的生成速度来处理扩展性问题;Bitcoin-NG[2]将区块划分为用于leader选举的KeyBlock和记录交易的MicroBlock,使挖矿及区块确认时间缩短;分片技术只让网络中的一部分节点处理某笔交易,网络被划分成很多片,同一时间每一分片都可以处理不同的交易,使得扩展性提高。但区块链的扩展性、中心化程度、安全性和延迟之间存在着相互制约。因此在IIoT中运用区块链作为数据存储的手段时,不能一味的提高扩展性,需要考虑这四者之间的平衡。

为了解决IIoT利用区块链作为数据存储时所存在的扩展性不足的问题,利用强化学习中的DDPG算法,结合DRL-Blockchain模型[3],在提高扩展性同时保证区块链仍有较好的去中心化程度,安全性与较短的延迟,使其适应不同的应用场景。

1 相关工作

1.1 工业物联网与区块链

IIoT的快速发展为各个行业提供了大量的机会,如工业制造、农业、环境监测、安全监管等[4]。使用区块链作为实现工业物联网中数据安全的解决方案是由于区块链分布式连接的特点可以形成一个庞大的P2P传输网络,通过限制资源利用与点对点的连接,可以对IIoT组网架构进行优化,并且去中心化的存储能够保证信息安全和用户隐私。虽然区块链技术有着显著的好处,但是传统的区块链技术难以提供较好的扩展性来满足IIoT的高事务吞吐量的需求。例如:比特币平均每秒只能确认3-4笔交易,以太坊虽然将吞吐量提高到了平均每秒14笔交易,但这仍不能够满足IIoT对交易处理的需求。

1.2 区块链的性能平衡

对于任何一个分布式系统应当满足CAP定理(一致性、可用性、分区容错)。在区块链系统中,去中心化程度、安全性、延迟和扩展性之间也存在着相互制约。

(1)扩展性

这是对区块链处理交易的一个量化指标,区块链的扩展性通过最终存入区块链的交易吞吐量来进行衡量。当交易吞吐量较小时,该区块链系统只能适用于某些对吞吐量要求不高的应用场景,因此其扩展性较差。当交易吞吐量较大时,能够适用更多的应用场景,其扩展性较好。交易吞吐量直接与区块大小和区块达到最终一致性时间相关。因此,最终交易吞吐量可以表示为:

其中S B表示每个区块设置的大小(单位MB),T F表示区块从产生到最终获得共识的时间(单位s)。χ表示每个交易的平均大小(单位B)。

(2)综合去中心化程度

在区块链中,控制资源的分配能够实现不同的目标,例如,抵制审查、免受某些攻击和消除单点故障[5]。泰尔指数是经济学中的指数,常用来表示财富或收入的不平均程度。在一些非金融领域仍借用泰尔系数来表示该领域的某种不均衡程度,如资源配置的公平程度[6]、资源差异程度[7]等。泰尔指数将信息理论中的熵指数概念用于收入差距的测量,作为收入不均等程度的测量指标。该指数不仅能够测量整体的不均等程度,还能够较为方便地测量群组之间的不均等程度。在区块链系统中值得关注的是节点权益分配的去中心化程度高低,对于一些共识算法,当其中涉及到节点的权益分配时,需要考虑不能使得节点之间权益差距过大,导致整个系统去中心化程度不够,偏向于某些拥有权益过大的节点,使得系统的安全性能降低。为了更好地描述去区块链系统的中心化程度,使用归一化泰尔指数[8],将算力、权益、地理位置的去中心化程度分别表示为:

其中Tl norm_C、Tl norm_Γ、Tl norm_λ分别表示计算资源、权益、地理位置的去中心化程度,其范围均为[0,1]。Ψp表示区块打包节点集合,C i、Γi分别表示第i个区块打包节点的计算资源、权益大小。K是该区块链系统总共有K个区块生成节点。λi表示将区域A∈R2划分为n个大小为Aˉ的区域,每个区域中对应的节点密度。综合去中心化程度表示整个系统的去中心化程度,由算力、权益与地理去中心化程度加权表示,其范围为[0,1],当它越接近0,去中心化程度越高,当它越接近1,表示算力/权益越集中在某些节点或是在某个小区域范围内区块打包节点越集中,去中心化程度越低。若区块链系统选择与权益相关的共识算法如DPoS,其中α=0;若选择算力相关的共识算法如PoW,其中β=0。

(3)安全性

安全性是区块链账本所包含数据不变性的保证,这可以从它的健壮性和对如51%算力、Sybil和DDoS[9]等攻击的抵抗上得到反映。

理论上,需要超过51%的算力/权益才能生成更长的链使其可以追溯到创世块。在PoW、PoS、DPoS共识算法中的安全性表示为:

其中f表示系统中可以容忍的恶意节点数,hi表示每个节点的算力/权益大小,假定节点的算力/权益大小分布为高分分布,hˉ为在该分布下的均值。而在联盟链中,假定在联盟链中所有的节点的权益是相等的,对于联盟链中常使用共识算法X-BFT(如PBFT、dBFT),安全性则表示为:

对于如Quorum这类的共识算法,该算法中不能接受恶意节点的存在,安全性表示为:

(4)延迟

当一个交易被验证/确认并添加到区块链的一个块中,从而成为不可逆的交易数据所花费的时间[10]。它可以通过数据达到最终一致性的时间来度量。要使区块达到最终一致性,需要经历区块生成和区块共识两个阶段。

其中T I是区块产生的时间间隔,T c是共识的延迟。

2 DDPG-BlockChain-IIoT

DDPG-BlockChain-IIoT(DDPG&BlockChain-enabled IIoT),如图所示,基于DDPG区块链工业物联网系统分为三个部分:①IIoT网络,②DDPG配置,③区块链系统。

图1 基于DDPG区块链的工业物联网框架

2.1 IIoT网络

在工业物联网网络中,智能设备(如工业设备、车辆、无人机、监控等)能够使用传感器收集环境数据,或使用嵌入式摄像头捕获图像或视频,这些图像或视频以安全的方式捕获和存储/处理。与此同时,收集到的数据可能需要在不同的产业部门之间共享,以便进行有效的决策。因此,需要考虑智能设备不断产生的两种交易(数据存储/处理和数据共享)。这些交易通过区块链系统进行存储/获取数据。在整个基于区块链的IIoT系统中,实际上将物理节点划分为两个角色,一部分节点仅负责数据的收集,另一部分除了能够进行数据收集还能够实现区块的打包,称其为区块打包节点。

2.2 区块链系统

为了处理从IIoT网络生成的交易,区块打包节点需要完成生成区块(打包区块)和区块共识两个步骤。生成区块的过程与其他常见的区块链系统一样,主要的任务是收集、验证并将交易打包到一个区块中。区块共识是将打包的块广播给其他的块打包节点,待新的块达成共识后,将该块添加到它们本地的区块链中。因此,在IIoT的区块链系统中有两个关键的要素,一是区块打包节点,二是共识过程中所使用的共识算法。选择哪些节点作为区块打包节点,选择何种共识算法将直接影响区块链系统的性能。假定整个系统的区域范围为R2,在R2内按照非齐次泊松点过程从所有节点中选取区块打包节点,同时将其地理信息以二维坐标{xi,y i}表示。同时使用δ={0,1,2,3,4}分别表示PoW、PoS、DPoS、PBFT、Quorum算法。

2.3 DDPG配置

DDPG算法是一种无环境模型,产生行为策略与评估策略不一样的强化学习算法。DDPG利用深度神经网络作为函数近似,能够解决在连续动作空间及大动作空间的中进行动作选择的问题[11]。要使基于区块链的工业物联网能够成为一个适应多个应用场景的通用平台,系统需要对一些相关的参数进行自动的选择与配置,包括共识算法、打包的区块大小、打包区块的时间间隔。共识算法的选择是通过序列标识来表示选择了相应的共识算法。区块大小和区块时间间隔两个参数分别用S B与T I表示,可以认为它们在动作空间中是连续的。DDPG配置是通过观察状态空间,经过对DDPG损失函数进行优化处理,从动作空间获取相应的动作。

(1)状态空间:用以描述当前系统的状态,作为DDPG算法的输入。选择平均交易大小ℵ,综合去中心化程度Tl C,Γ,λ,节点间的传输速率R={Ri,j}三个参数来描述区块链系统的状态,记为:

(2)动作空间:用来描述根据某一状态所选取的动作,通过区块打包节点编号标识,共识算法编号标识,区块大小,区块打包时间间隔四个参数描述,记为:

其中区块打包节点编号a={a n},通过对所有的节点进行编号表示,an∈{0,1}。当a n=1表示该节点是从全节点中选取作为区块打包节点,当a n=0该节点仅为普通节点。表示不同的共识算法,S B表示区块大小,T I表示时间间隔。

(3)奖励函数:在RL中,奖励被认为是用以衡量RL中智能体行为的输出[12]。在本系统中对满足限制条件与不满足限制条件情况下,定义了不同的奖励函数。

限制条件:

其中σ<1,取0.5~0.7。ω>1,取整数,表示某区块达到最终一致性需要在ω个T I时间范围内完成,取6~8。Fδ表示在不同的共识算法中的安全性条件。

(4)损失函数:通过在经验池中随机采样N batch个数据,通过梯度下降以获取目标网络参数θQ、θμ。

DDPG算法流程:

基于DDPG算法的区块链工业物联网流程

1. Actor(μ(s|θμ)),Critic(Q(s,a|θQ)),目标Actor(μ(s|θμ")),目标Critic(Q(s,a|θQ"))构建

(1)有历史的状态-动作数据:

加载存放在经验池B中的数据训练网络,获取初始的网络参数θμ、θQ、θμ"、θQ";

(2)暂无历史的状态-动作数据:

随机初始化actor网络μ(s|θμ),critic网络Q(s,a|θQ),权重分别为θμ,θQ;

初始化目标网络Q"和μ",权重分别为:

初始化经验回放池B;

2. 初始化随机过程N用以动作探索;

3. 获取初始状态s1;

4. 对于每个决策轮次t:

6. 执行动作a t,观察收益r t和下一个状态st+1;

7. 将元组(s t,a t,r t,s t+1)存放至经验池B中;

8. 从经验池B中随机采样出个数为N batch的小批量经验元组(si,ai,r i,s i+1);

9. 令y i=ri+γQ"(si+1,μ"(si+1|θμ")|θQ");

12. 更新目标网络:

13.结束。

3 结语

本文提出利用DDPG算法解决区块链应用于工业物联网中扩展性不足的问题,DDPG算法相较于DQN算法,能够更好地运用于连续的动作空间。根据本文所提出的量化指标,通过DDPG算法对交易吞吐量进行优化,在保证满足安全性、去中心化程度及延迟的条件下,使扩展性增强,让基于DDPG和区块链架构的工业物联网能够更好地适用于不同的应用场景。未来的工作是:①对算法流程优化,②对奖励函数优化[13],③将更多属于不同类别的共识算法融入到此框架中。

猜你喜欢
扩展性共识程度
凝聚共识:新时代人民政协的初心与使命
男女身高受欢迎程度表
日语程度的类型与程度副词的对应关系
商量出共识
小学语文低年级阅读教学改革探究
比ITX还小华擎推首款Mini—STX主板
基于SpringMVC和Hibernate的企业人事管理系统
“慢养孩子”应成社会普遍共识
摩擦力的利用与防止
幸福的程度