最小损失算法在区块链物联网中的优化研究

2022-03-30 01:34陈路遥朱鹏俊
关键词:间隔吞吐量损失

刘 云, 宋 凯, 陈路遥, 朱鹏俊

(昆明理工大学信息工程与自动化学院, 昆明 650500)

1 引 言

利用区块链技术去中心化、不可篡改等特点将区块链技术应用到物联网系统,降低了物联网信息交互的安全风险,在一定程度上提升了数据安全性及可靠性等性能,使其更加符合各类场景的应用要求[1,2].现有区块链通量有限[3],平均每秒只能处理几十笔交易,远远低于物联网应用每秒钟处理成百甚至上千笔的交易量,即区块链较低的交易吞吐量在很大程度上难以满足物联网场景下的业务需求[4].影响区块链系统性能的因素主要是负载情况、计算资源和通信带宽[5].而吞吐量与负载情况中每个区块中的交易数及产生两个区块的时间间隔有关[6].

为了提高基于区块链的物联网系统的交易吞吐量, Qiu等[7]使用DDRL算法研究了一种基于许可的基于区块链的物联网架构,固定区块生产者的块大小,将共识协议选择和网络带宽分配联合优化,提高了区块链系统的吞吐量并满足不同用户的需求.Guo等[8]采用DRL算法固定了区块间隔,将每个生产者的块大小和生产块数化为联合优化问题,提高了覆盖的区块链系统的吞吐量和底层移动边缘计算系统中用户的服务质量.

增加区块大小或减小区块间隔对区块链吞吐量性能有一定的提升,但它们之间并不是简单的线性关系[9].为了满足基于区块链的物联网系统的高交易吞吐量的需求,本文在计算资源和通信带宽一定的情况下,提出最小损失函数算法去动态联合调整区块大小和区块间隔.首先初始化状态空间和行为空间以及其他系统参数;其次根据状态和动作输入对构建状态空间和行为空间,在系统延迟性约束条件下,计算出符合约束条件的状态空间和行为空间输入对的行为价值函数作为预测值;最后逐一计算符合约束条件输入对的行为价值函数,利用损失函数对比行为价值函数的预测值和真实值,执行吞吐量最大值去调整块大小和块间隔.仿真结果表明,最小损失算法动态调整区块大小和区块间隔,在基于区块链的物联网系统达到稳定后显著提高了区块链物联网系统的链上事务吞吐量.

2.1 系统模型

在物联网中,智能设备(如工业设备和监视设备等)能够以安全的方式存储和处理那些使用传感器收集环境数据或使用嵌入式摄像头捕获图像或视频.这些事务被转发给控制层,经控制器、服务器等设备处理后与区块生产者完成去中心化的共享交易.当区块生产者之间达成共识后生成区块,此时区块链系统根据物联网节点参数动态调整进行资源优化,随后将调整方案回复到控制层,最终实现物联网层的优化[10].考虑一个基于区块链的物联网系统,它由两部分组成(如图1):生成数据后存储、处理和共享事务的物联网;以可靠和安全的方式处理事务的区块链系统.

图1 支持区块链的物联网系统模型

为了处理物联网生成的交易,区块生产者需要完成以下步骤[10]:(1) 生成区块:收集,验证交易并将其打包为一个区块;(2) 将区块追加到区块链:将生成的区块广播给其他块生成者,并在对新块达成一致意见后,将该块添加到它们的本地区块链中.

2.2 区块模型

在图2所示的区块模型图中,区块[11]由区块头和区块主体两部分构成.区块头的大小为80字节,包括4字节的版本号、32字节的上一区块哈希值、32字节的Merkle根节点、4字节的时间戳、4字节的难度值和4字节的随机数.区块主体利用默克尔树结构来记录10 min内的交易信息.

区块链中每笔交易都要以字节的形式存储在每一个新产生的区块中,但是每个区块容纳的交易数量是有限的,因为每个区块都有自己的容量.区块容量也称区块大小,是指限定在每个区块存储的字节数,代表了这个区块能容纳多少交易的能力.区块间隔指的是上一区块生成后到下一区块生成的时间间隔,与区块生成速率成反比关系.增大区块容量可以容纳更多的交易,减小区块生成间隔意味着交易以更快的速度得到确认,两种方式都可提高区块链吞吐量性能,然而区块链吞吐量性能与其影响因素之间并不是简单的线性关系.区块增大会导致出块时间过长;区块间隔变小,系统来不及处理过多交易,从而导致区块变小.因此,我们需要动态考虑区块大小和区块间隔与当前区块生产者平均交易量的关系.

图2 区块模型图Fig.2 Block model

为了提高基于区块链的物联网系统的吞吐量,提出最小损失函数算法对如图1所示的优化部分(物联网和区块链的整合过程)进行优化,最小损失算法流程如图3所示.

图3 最小损失算法流程图Fig.3 Flow chart of optimization model

最小损失函算法[12]包含一个初始化阶段,该阶段用状态空间和行动空间近似得到行为价值函数的估计值;以及一个学习阶段,用于选择动作,系统控制和动态网络更新[12].下述优化算法的思路和详细步骤均按照图3所示的流程进行.

初始化阶段,首先进行系统参数的初始化,接着在参数定义范围内逐一组合输入状态空间和行动空间参数,在满足约束条件的情况下计算集合的奖励函数和行为价值函数近似为估计值.

3.1.1 约束条件 在区块链物联网系统参数满足系统延迟的条件下进行吞吐量的优化,如下定义约束条件.

利用最终完成时间(TTF)[13]来评估区块链系统的延迟,该时间定义为交易确认完成并变得不可逆的时间.交易处理包括两个阶段,即生成区块和在验证者之间就生成的块达成共识.

TF,δ=TI+TC,δ

(1)

其中,TI是区块间隔时间;TC,δ是共识等待时间,取决于所采用的共识算法PBFT共识协议.整个验证过程分为两部分:消息传递和消息验证(验证签名及验物理地址),共识等待时间又可细化为

TC,δ=TD,δ+TV,δ

(2)

其中,TD,δ为消息传递时间;TV,δ为消息验证时间.为了满足物联网的延迟要求,假设应该在一系列连续的块间隔w(w>1)内发出并验证一个块.TTF应满足约束如下式.

TF,δ≤w×TI

(3)

3.1.2 状态空间和行动空间 决策纪元t(t=1,2,...)的状态空间[13]定义为事务大小(交易规模)χ,风险系数γ,物联网节点的地理位置x,物联网节点的计算能力c={ck},以及每对物联网节点之间链路的数据传输速率为R={Ri,j}的并集,表示为

S(t)={χ,γ,x,c,R}(t)

(4)

其中,决策纪元t的动作空间[12]定义为区块生产者a,区块大小SB,区块间隔TI的并集,表示为

A(t)={a,SB,TI}(t)

(5)

根据状态空间和行动空间输入对进行系统延迟约束条件的判断

C1:TF,d≤w×TI

(6)

为在调整负载情况下获得区块链物联网系统的最大吞吐量,将当前奖励[14](即时奖励)定义为

(7)

其中,R(t)为奖励函数,代表了优化目标.如果约束条件不能得到满足,意味着区块链物联网系统在延迟方面的性能较差,为了避免无效情况发生,此时设置奖励为0.

接着在系统延迟满足约束的条件下去计算状态纪元的行为-价值函数值Q(S,A)如下式.

A(t))|S(0)=S,A(0)=A]

(8)

其中,E[*]表示数学期望;μ为折现因子[15],满足μ∈(0,1],反映了当前奖励和未来奖励之间的权衡,通常取0.8.

3.2 学习阶段

学习阶段的目标是发现最优策略,即根据当前需要处理平均事务量来确定最佳动作,调整区块大小和区块间隔.首先逐一取出符合约束条件的状态空间和行动空间参数对,计算当前奖励函数和行为价值函数,接着利用最小损失函数对比当前实际值和估计值,最终从这些奖励中选择收益最大和损失最小的行动作为实际行动.

3.2.1 算法实现 对同一个状态纪元的不同参数,进行式(7)奖励函数及式(8)行为价值函数计算后得到真实值,并将这些值存在经验记忆库D中,利用损失函数对比行为价值函数的真实值和估计值.损失函数[16]是一个非负实数函数,用来量化模型预测和真实标签之间的差异.最小损失函数算法将反馈的奖励信息转化为对应状态的标记,可实现样本形式的统一,在计算方式相同和样本形式统一的前提下使用参数估计方式直接对模型参数进行近似估计,即使用最小二乘法构建损失函数,让预测值与真实值总的拟合误差(即总残差)达到最小.

L(θ)=[y(i)-Q(S(i),A(i+1);θ)]2

(9)

其中,y(i)为行为价值函数的状态纪元的真实值,计算公式为式(10);Q(S(i),A(i+1);θ)为行为价值函数的状态纪元的估计值;θ为真实值与估计值之间的差距,该函数的目的就是求解最优的θ,让函数值最小.

(10)

算法1:最小损失函数算法

输入:决策纪元t的状态空间S及行动空间A,构成输入对(S,A).

输出:行为状态值函数Q(S,A),以及损失函数L(θ).

Begin

(1) 初始化阶段.加载历史状态转换配置文件进行初始化,根据历史经验记忆库D中进行主网络行为价值函数Q(S,A)的估计.

(2) 学习阶段.对每一个决策纪元t执行以下过程:

1) 输入状态空间和行为空间,使用输入对(S,A)中对应的值去检验该输入对是否满足物联网区块链系统延迟性的约束;

3) 观察奖励R(t)和下一个状态S(t+1),将经验值(S(t),A(t),R(t),S(t+1))存储到经验记忆库D中;

5) 训练估计网络中的参数以最小化损失函数L(θ)=[y(i)-Q(S(i),A(i+1);θ)]2,将目标网络中参数同步为估计网络参数;

End

3.2.2 性能分析 事务吞吐量反映区块链物联网系统处理交易的能力.最小损失函数算法在计算资源和通信带宽一定的情况下,动态调整区块大小和区块间隔来提高基于区块链的物联网系统的事务吞吐量.考虑到上述因素,事务吞吐量的计算公式为

(11)

其中,SB表示块大小;TI表示区块间隔;χ表示事务的平均大小,即交易的平均规模.仿真过程将依次讨论这3个变量独自改变引起的吞吐量变化情况,以及整个吞吐量在4种不同方案的变化情况.

4 仿真分析

4.1 数据集及仿真环境

在仿真实验中,考虑两个物联网节点密度不同的基于区块链的物联网系统场景,场景一设有100个物联网节点和21个区块生产者,分布在1 km×1 km的区域内;场景二设有1000个物联网节点和21个区块生产者,分布在1 km×1 km的区域内.拟议的最小损失函数算法框架的编程实现是使用Window 10系统中Python 3.8下的PyTorch 0.4.0.在进行共识过程的时候,选择区块链系统研究中常用的PBFT共识协议.表1总结了仿真中使用的参数设置.

表1 仿真参数设置

为了验证拟议动态方案的可行性和吞吐量优化情况,在仿真部分考虑了以下3种基线对比方案.(1) 静态方案:固定块大小为4 MB,块间隔为13 s;(2) DDRL算法:固定块大小为4 MB,块生产者以不同间隔生成区块;(3) DRL算法:固定块间隔为13 s,块生产者以不同大小的区块来处理事务.

4.2 与基准的吞吐量比较

根据式(11)可以看出,事务吞吐量与块大小、块间隔以及事务的平均规模有关系,在图4~图6中分别探索了这3个参数对基于区块链的物联网系统的吞吐量的影响,同时讨论了4种方案的吞吐量变化趋势.图7讨论了在情节变化的情况下4种方案的吞吐量对比.

(a)

(b)

TTF阈值对基于区块链的物联网系统的吞吐量的影响如图4所示.随着TTF阈值的增加,4种方案都获得了更高的交易吞吐量,因为验证器可以在一个块中以更宽松的延迟约束来处理更多事务.同时在场景一低密度物联网节点的情况下,事务吞吐量比场景二高密度物联网节点要高,因为在延迟相同的时候,密度低的场景可以让区块有更好的选择和更多时间处理更多的事务.但不论是哪个场景,提出的算法可以比基线一致的实现更高的吞吐量.

图5检查了具有不同交易规模的交易吞吐量,这在考虑不同类型的交易时是有意义的.通过仿真图可以看出4种方案的吞吐量都随着交易规模的增加而降低,因为对于大笔交易,一个区块可以容纳较少数量的交易.同时在两个物联网节点密度不同的场景下,提出的算法均可在平均交易大小变化的情况下获得更高的吞吐量.

(a)

(b)

图6讨论了块大小限制对吞吐量的影响,随着区块大小限制的增加,基于区块链的物联网系统可以处理更多交易,在两个物联网节点密度不同的场景下,提出的算法均可获得更高的交易吞吐量,这适用于除固定区块大小方案之外的所有方案.而TTF约束条件的存在限制了一个块中的最大事务数,且区块增大会导致出块时间变长而影响区块间隔,因此吞吐量不会无限增加.

图7讨论4种方案在情节数增加的情况下吞吐量的变化,可以看出,在学习过程开始时,事务吞吐量较低,随着情节数量的增加,吞吐量逐步提高并在大约4000情节后达到稳定状态,这验证了我们提出的方案的收敛性能.此外还可以发现,静态方案由于缺乏弹性而具有最低的吞吐量,DDRL算法和DRL算法的由于适当调整区块参数而具有较高的吞吐量,在两个物联网节点密度不同的场景下,所提出的算法可以获得更高的吞吐量.

(a)

(b)

(a)

(b)

5 结 论

区块链去中心化、不可篡改等特点在一定程度上降低了区块链物联网系统进行信息交互的安全风险.但区块链技术的通行量限制特点使其在很大程度上难以满足物联网场景下的高吞吐量业务需求.本文提出一种最小损失函数算法,动态调整区块大小和区块间隔,使得在保证基于区块链的物联网系统延迟性的同时提高链上事务吞吐量.仿真结果表明,在不同的仿真场景下,本文提出的算法能获得比基线更高的吞吐量.下一步我们将考虑更多的共识协议,根据用户的不同需求实现自适应的调整,并将类似方案应用于特定的边缘计算案例.

猜你喜欢
间隔吞吐量损失
洪涝造成孟加拉损失25.4万吨大米
两败俱伤
间隔之谜
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
损失
上楼梯的学问
2014年1月长三角地区主要港口吞吐量
那些损失上百万的演员