欢迎访问一起赢论文辅导网
本站动态
联系我们
 
 
 
 
 
 
 
 
 
 
 
QQ:3949358033

工作时间:9:00-24:00
博士论文
当前位置:首页 > 博士论文
边缘计算场景下的多层区块链网络模型研究
来源:一起赢论文网     日期:2022-03-08     浏览数:844     【 字体:

 45卷 第120221月计  算  机  学  报CHINESE JOURNAL OF COMPUTERSVol. 45No. 1Jan.2022 收稿日期:2020-09-16;在线发布日期:2021-04-29. 本课题得到国家重点研发计划项目(No. 2020YFB2103805)、国家自然科学基金项目(No.61802093,62002088)、浙江省属高校基本科研业务费专项资金(No.GK199900299012-025, GK209907299001-020)资助.殷昱煜,博士,教授,主要研究领域为服务计算、边缘计算、软件工程、区块链系统.E-mail: yinyuyu@hdu.edu.cn. 叶炳跃,硕士研究生,主要研究领域为区块链系统、边缘计算.梁婷婷(通信作者),博士,副研究员,主要研究领域为数据挖掘、机器学习、边缘计算.E-mail: liangtt@hdu.edu.cn.段宏岳,硕士研究生,主要研究领域为区块链系统.李尤慧子,博士,副教授,主要研究领域为边缘计算、计算机系统. 万 健,博士,教授,主要研究领域为网格计算、服务计算、无线传感器网络.边缘计算场景下的多层区块链网络模型研究殷昱煜 叶炳跃 梁婷婷 段宏岳 李尤慧子 万 健(杭州电子科技大学 计算机科学与技术学院 杭州 310018)(浙江科技学院 信息与电子工程学院 杭州 310023)摘 要 近年来,越来越多的研究人员尝试将边缘计算场景中收集的数据存储在区块链上,以解决传统数据存储方案中数据安全性差、防篡改性弱的问题.然而在已有的设计方案中,设备往往需要保存完整的区块数据,并且在对链上的特定数据进行取回或验证时,需要遍历大量的区块以找到对应的数据,降低了边缘计算场景中用户侧的响应速度.此外,传统共识算法也不适用于资源受限的终端设备.针对上述问题,本文提出了一种面向边缘计算的多层区块链网络模型.具体地,该模型被分为了核心层、边缘层和终端层三层:终端层被划分为多个局部网络,每一个局部网络中都包含了一个终端侧区块链,链上存储了该局部网络中终端节点产生的数据;位于边缘层的边缘侧区块链对终端层中的每一个局部网络中的终端侧区块链定期进行备份;核心层中部署了一些核心设备,负责边缘层节点的审核、注册等工作.我们对模拟数据进行了仿真实验,结果表明在该模型中查找某一特定数据哈希的速度相比传统的有向无环图式区块链模型提高了4-7.我们还提出了一种自适应工作量证明算法,算法执行的难度可以根据终端节点的行为动态进行调整.实验结果表明,相比传统工作量证明算法,执行该自适应算法的正常节点的交易效率可以提升4-5.关键词 边缘计算;区块链;智能合约;共识算法;数据存储中图法分类号TP393        DOI10.11897/SP.J.1016.2022.00115Research on Multi-layer Blockchain Network Model in Edge ComputingYIN Yu-Yu YE Bing-Yue LIANG Ting-Ting DUAN Hong-Yue LI You-Hui-Zi WAN JianDepartment of Computer Science and Technology, Hanghou Dianzi University, Hangzhou 310018) (School of Information and Electronic Engineering, Zhejiang University of Science and Technology, Hangzhou 310023)Abstract  In recent years, more and more researchers have tried to store data collected in edge computing scenarios on the blockchain to solve the problems of poor data security and weak tamper resistance of traditional data storage solutions. However, in the existing schemes, the de-vices need to store complete block data and traverse a large number of blocks to find the corre-sponding data when retrieving or verifying specific data on the chain, which reduces the response speed of the user side in the edge computing scene. In addition, traditional consensus algorithms are not suitable for terminal devices with limited resources. To address the aforementioned prob-lems, this paper proposes a multi-layer blockchain network model for edge computing. Specifical-ly, the model is divided into three layers: terminal layer, edge layer, and core layer. The termi-nal layer is divided into multiple local networks, each of which contains a terminal side blockchain storing the data generated by the terminal node in the local network. Blockchain data between different local networks are isolated from each other, which improves the security and privacy of data in local networks. The edge side blockchain located in the edge layer regularly backs up the terminal side blockchain in each local network of the terminal layer. Many edge nodes are de-ployed in the edge layer, which periodically repackage the block data on the terminal side block-chain and publish it on the edge blockchain. Some core devices are deployed in the core layer, which are responsible for the audit, registration and other work of the nodes in the edge layer. We conduct experiments on simulated data, and the results show that the speed of finding a spe-cific data hash in the model is 4-7 times faster than the traditional directed acyclic graph block-chain model. We also propose an adaptive workload proof algorithm of which the execution diffi-culty can be dynamically adjusted according to the behaviors of the terminal node. The algorithm is improved based on the traditional proof-of-work algorithm, which introduces the concept of node contribution value in the multi-layer blockchain network model. The node contribution val-ue is used to quantitatively analyze the historical behavior attributes of terminal nodes. The edge node will periodically check the block content published on the terminal side blockchain, and cal-culate the contribution value of the terminal node in the local network according to the predefined computational formula. Then the terminal node sets the difficulty of the workload proof algo-rithm it executes according to the contribution value. The experimental results show that, com-pared with the traditional proof-of-work algorithm, the transaction efficiency of normal nodes that execute the adaptive algorithm is improved by 4-5 times.Keywords  edge computing; blockchain; smart contract; consensus algorithm; data storage1 引 言边缘计算指的是在网络边缘执行计算的一种新型计算方式[1].区别于云计算的概念,边缘计算将计算、存储资源下放,为终端用户提供了更低时延、更高智能的服务.在云计算场景中,终端用户的请求会被汇总到云服务器中心统一进行处理,这不可避免的会出现如网络不稳定、带宽不够用等问题.而物联网技术中大量使用了边缘计算的概念,实现了物联网设备数据的低时延、高智能化处理[2].然而,边缘网络中的物联网设备产生的数据往往存在安全性差、防篡改性弱等问题.区块链技术因其不可篡改和去中心化的特性受到学术界和工业界越来越多的关注,一批结合区块链与边缘计算特点的研究工作相继被提出用以解决上述问题[3-7].Kang等人[7]基于联盟区块链搭建了名为Vehicular Blockchain的车联网数据存储与共享模型.在该模型中,路边探测节点(Roadside U-nits, RSU)作为预选节点经过审核加入联盟网络,车辆收集的数据交由RSU进行公开审核、存储和共享.数据根据规模大小被存储在RSU本地或是中心式服务器上,对应的索引数据则由RSU经过计算被存储在区块链上.但这类存储方案存在如下问题:(1)区块链占用的存储空间过大.边缘计算场景下,大量的终端设备生成了大量的数据,即使区块链上存储的只是数据对应的索引信息,一个完整的区块链仍然要占据大量的存储空间,而且区块链的数据规模正以一个惊人的速度不断增长.(2)边缘计算场景下,在区块链中对某一个特定区块进行查找需要消耗大量时间.边缘计算场景下,常见的区块链结构是有向无环图结构的,在该结构区块链中,对某一特定区块进行查找的时间复杂度是O(n),这对于边缘计算场景中某些需要频繁查找区块内容的服务是难以接受的.(3)传统的区块链共识算法不适合动态性强、通信拓扑变化大的边缘计算场景.大部分边缘计算场景下的应用、服务要求即时、低时延,这也正是边缘计算优于云计算的特点.这就要求我们的区块链模型应当具有较高的交易效率,能及时提交当前收集到的终端数据.同时,还需要考虑到单纯提高区块链的交易效率会降低区块链的安全性.为了解决这些问题,本文提出了一种适用于边缘计算场景的多层区块链网络模型.该模型根据网络的拓扑结构将网络划分为不同的局部网络,每个局部网络中包含了多个终端节点以及少量的边缘节6 1 1 计  算  机  学  报 2022年点.边缘节点负责对局部网络中的终端节点进行管理.在每个局部网络中,终端节点共同维护了终端侧区块链,该区块链上存储了终端节点生产的数据.而边缘节点负责对这些数据进行验证,确保终端侧区块链上的交易都是合法的.边缘节点还会定期将终端侧区块链中的数据打包上传到位于边缘层的边缘侧区块链上,边缘侧区块链是多链的结构,每一条链都是对应某一个局部网络终端侧区块链的信息链,信息链上存储了对应局部网络中终端侧区块链的快照信息.位于终端层的终端侧区块链存储在局部网络中的终端节点内,该数据信息不会被其他局部网络中的终端节点获取.而边缘侧区块链是所有局部网络中的边缘节点共同维护的.相对于传统的区块链存储模型,多层区块链网络模型使得边缘节点只需要存储当前局部网络对应的信息链,或是当前局部网络关心的其他信息链,大大减少了需要存储的区块链数据.同时,本文提出的多层区块链网络模型利用了分块查找的思路,即先获取在边缘侧区块链上的区块位置,再在终端侧区块链上找到对应的实际数据,大大提高了检索某一个特定数据的速度.在该模型基础上,我们还提出了一种自适应工作量证明(Adaptive Proof of Work, A-PoW)算法.该算法基于传统工作量证明(Proof of Work, PoW)算法,可以根据系统中节点的行为衡量节点对区块链网络的贡献程度,并根据节点的贡献值映射得到PoW算法的执行难度.本文使用Java语言实现了该网络模型,利用模拟数据进行了相应实验.实验结果表明,本模型可以有效降低边缘节点需要存储的区块链模型数据量,可以有效加快对某一特定区块数据的检索速度.根据数据量不同,检索速度的提升大致在4-7倍之间.同时,相比传统工作量证明算法,本文提出的A-PoW算法可以使得正常终端节点的交易效率提升4-5.综上所述,本文的主要贡献如下:(1)提出了一种适用于边缘计算场景的多层区块链网络模型.模型将网络划分为多个局部网络,分别在边缘层和终端层设置了边缘侧区块链和终端侧区块链,利用局部存储的思路,使得每个边缘节点只需要存储当前局部网络中终端侧区块链的数据快照,降低了每个边缘节点需要存储的区块链数据量.(2)提出了一种可以对区块数据进行快速检索的方法.在多层区块链网络模型中,边缘节点会定期将终端侧区块链中的交易数据以默克尔树的形式,打包成区块发布到边缘侧区块链上.边缘节点利用时间戳信息,先在边缘侧区块链上定位到相应的区块,接着通过指针在终端侧区块链上找到数据所在的交易位置.(3)设计了一种难度可以自适应变化的工作量证明算法,该算法根据节点的行为计算节点的贡献值,贡献值用以表示当前节点在局部网络中对终端侧区块链的贡献程度.该算法会根据贡献值调整终端节点执行的算法难度,提高了正常节点的交易效率,增加了恶意节点的作恶成本.本文第2章介绍本模型涉及的区块链、共识算法等预备知识.3章介绍边缘计算、边缘计算结合区块链、区块链中的共识算法等领域的相关工作.4章介绍了本模型的系统架构.5章介绍模型中各类方法的设计.6章对模型进行了仿真实验,并对结果进行了分析.最后在第7章对全文进行了总结.2 预备知识本文提出的区块链网络模型的终端侧区块链是由基于有向无环图的区块链模型进一步改进而来的.同时,基于该模型,我们提出了一种新颖的共识算法,该共识算法基于传统PoW算法进行了改进,提高了交易效率,降低了系统的安全风险.本章将介绍区块链、有向无环图式区块链、共识算法以及Hashgraph的预备知识.2.1 区块链  区块链是一种综合运用了分布式数据存储、点对点传输、共识算法、加密算法等多种计算机技术的新型应用程序模型,其本质是一个去中心化的数据库.区块链的底层数据结构是通过加密算法生成的一系列数据块,这些数据块被称作区块.区块中记录了区块链网络中关于交易的信息,同时还包含了前一个区块的哈希值.这个特性保证了这一系列区块是不可篡改的,并且是不能在密码学上伪造的.区块链使用区块存储数据,通过共识算法来将新的区块发布在区块链上,并使用加密算法对发布的区块进行签名,以实现传输、访问环节的身份识别[8].此外,节点通过使用由脚本语言编写的智能合约,可以对链上数据进行较复杂的处理.当前流行的区块链按照结构可以被分为两类,一类是基于链的区块链,另一类是基于有向无环图的区块链[9].链式区块链中,区块按照区块上记录的时间戳顺序写入到区块链网络中.由于链式区块链不支持并发的交易执行,因此7 1 1 1期 殷昱煜等:边缘计算场景下的多层区块链网络模型研究链式区块链的交易效率通常较低.当区块链上的交易数量增加时,区块链的性能就会线性下降[10].2.2 有向无环图式区块链  本文提出的区块链网络模型中,终端侧区块链是基于有向无环图式区块链进行设计的.有向无环图式区块链是在链式区块链基础上发展而来的一种新颖的区块链结构.链式区块链存在扩展性不足的问题.以比特币为例,比特币大约每 10分钟产生一个区块,区块的大小被设定为1 MB,仅仅能够包含3000-4000笔交易[11],即平均每秒只能处理5-7笔交易.随着比特币上需要处理的交易也越来越多,比特币网络的拥堵情况也越来越严重,交易费用也开始增加[12].针对这个问题,越来越多的人开始讨论区块链的扩展性问题[13-14].基于有向无环图的区块链带来了解决扩展性问题的新思路.有向无环图式区块链是由交易构成的,其中每个节点都可以是交易的发起方或交易的验证方.在节点向区块链网络广播交易前,它需要验证另外两个随机交易,并将当前发布的交易链接到这两个随机交易上,这种处理交易的方式被称为异步处理模式.Tangle网络是有向无环图式区块链的一个实现.本文提出的终端侧区块链就是基于Tangle网络进行构建的,每一个新创建的交易都需要随机验证区块链中任意两个尚未得到验证的交易.2.3 共识算法  共识算法是用于解决分布式系统中数据一致性问题的算法.常见的共识算法包括传统分布式系统领域中的 PaxosRaft 以及加密货币领域中使用的工作量证明、权益证明、委托权益证明等.当前最大的区块链网络———比特币就使用了基于工作量证明的一致性共识算法.该算法要求网络中的节点去解决一个难度较高但答案易于验证的问题.第一个解决了该问题的节点就获得了当前区块的记账权.但是,基于工作量证明的共识算法存在交易效率低、消耗算力高等问题.如果只是单纯降低工作量证明算法的难度,会加快区块链的确认速度与交易效率,但是区块链会出现频繁的分叉现象.权益证明一致性(Proof of Stake,PoS)算法采用了一种截然不同的思想.这种算法按照矿工持有的币或者股份给矿工分配打包权和投票权,币越多,投票权也就越高.PoS算法中,打包权和投票权是分开的,即先根据所有参与者的持币量,分配打包权和投票权.接着从所有参与者中选出一个候选打包人,候选打包人打包出一个候选区块,并将该候选区块广播给其他参与者进行投票,如果得到多数票的支持,那么这个候选区块就会成为区块链上的正式区块.为了提高区块链的效率,PoS算法也可以设计为从所有参与者中随机选出参与者,组成一个委员会,由这个委员会负责投票工作.2.4 Hashgraph  本文提出的模型是一个多层区块链结构.其中,位于边缘层的边缘侧区块链采用的技术方案与Hashgraph[15]类似.HashgraphSwirds公司提出的一种类似区块链的技术方案,它不是一个完整的区块链方案,也不是一种数字货币解决方案,它是一种数据结构和共识算法.Hashgraph的特点是交易速度快,支持异步拜占庭容错,使用虚拟投票和gossip算法来解决区块链的分布式一致性问题.Hashgraph还通过复杂的数学分析证明了其交易的不可篡改性.Hashgraph是一种基于平行链的共识协议.Hashgraph中的节点参与同步全网的状态以及数据.每个节点只能在自己的链上发布区块(也叫事件,event),在这样的一个区块中,包含了同步信息和交易信息.每个区块不仅仅包含了交易数据,还包含了在网络中传递的消息.每个节点发布新的区块之后都会使用gossip协议进行全网广播,当一个节点NA收到别的节点NB发来的区块之后,会先对区块的签名以及内容合法性进行校验,然后校验该区块是否比之前收到的区块的时间戳更晚.校验通过后,节点会创建一个新的区块,该区块的两个哈希指针分别指向自己链的上一个区块,以及节点NB链上的最新区块.同时节点NA可以在创建的区块中添加自己想要发布的交易数据.最后NA将该区块进行全网广播.通过这样的机制,Hashgraph可以记录各个节点收到区块的顺序,最终能达成区块的全网顺序一致性.Hashgraph在满足了异步拜占庭性质的同时,还通过虚拟投票机制减少了通信的开销.3 相关工作随着边缘计算技术场景的不断拓展,边缘计算场景下,网络的扩展性、功能整合、资源管理等问题受到了研究人员的广泛关注[16-21].Maglaras等人[16]将传统的社交网络关系带入到使用了边缘计算技术的车联网场景中,提出了社交物联网SIoT的概念,该网络关注车辆与乘员之间的社交互动,并对该模8 1 1 计  算  机  学  报 2022年型可能的应用方向以及安全性进行了分析.Sun等人[20]为了解决传统物联网架构中的扩展性问题,提出了一种采用移动边缘计算思想的物联网架构edgeIoT.其中,终端设备连接到雾节点,雾节点在本地提供计算资源.基于SDN的蜂窝核心调度雾节点之间的数据包转发.该架构可用于在移动边缘处理数据流.Zhou等人[21]提出了一种双层车联网模型,通过维纳过程(Wiener Process)和贝叶斯非参数学习(Bayesian Nonparametric Learning)对车辆之间的共享内容进行建模,并提出了一种基于价格上涨的迭代匹配算法(Price-rising-based Iterative Matc-hing Algorithm),实现了车辆到车辆的快速的内容共享.但这些方案存在数据的共享安全性差、防篡改性弱、数据时效性差等边缘计算常见的问题.随着区块链技术的发展,越来越多的研究人员开始利用区块链技术去解決边缘计算中数据安全存储的问题[4-5,7,22-24].Ren等人[25]提出了一种适用于边缘计算的混合存储架构和模型,该模型充分利用边缘网络设备和云存储服务器的数据存储优势,在云服务层构建全球区块链,在物联网终端上构建本地区块链,增强了终端数据存储的可靠性.Sharma等人[26]提出了一种采用边缘计算技术的分布式区块链云架构,该架构是一个多层模型,能够实现低延迟的数据访问和低成本的高性能计算.Wang等人[24]提出了一种基于区块链的分布式车联网认证机制,该认证机制引入受信任的云服务提供商完成对车辆的认证工作.Zhang等人[27]提出了一种基于区块链的数据共享模型,该模型在实现安全性和隐私性的基础上,激励了车辆参与信息的共享.除此之外,研究人员还对适用于不同场景的各类共识算法进行了研究[28-32].Su等人[28]提出了一种基于节点信誉值的授权拜占庭容错算法,并将其作为区块链网络的共识算法,该算法可以在区块链网络中的各个授权分区之间达成共识.Yu等人[30]基于比特币中使用的工作量证明算法提出了一种可以在较长时间内抵挡51%攻击的共识算法,根据该算法,矿工的实际算力是综合其历史工作量及当前持有的计算资源一起得出的.该系统即使在攻击者控制了超过全网50%算力的情况下也能够在一段时间内保证系统的安全性,同时还提供了每秒10000次交易(TPS)的高吞吐量.但上述对共识算法的改进仍然不能同时满足物联网场景下高并发、低延时、强安全性的要求.本文参考上述研究成果,提出了一种可以降低区块链数据存储量,并且适用于边缘计算场景的多层区块链网络模型,并在此基础上提出了自适应工作量算法,提高了局部网络中终端节点的交易效率,降低了系统的安全风险.4 多层区块链网络模型架构4.1 概述  本文提出的多层区块链网络模型主要由终端层、边缘层和核心层组成,如图1所示,层与层之间通过数据信息传输进行相互协作,以实现模型功能.在终端层中,各类终端设备从环境中收集数据,通过与边缘设备通信来访问服务.因为终端设备的计算力往往较低,因此终端设备上执行难度可以动态变化的A-PoW算法.终端节点收集数据并将数据打包成交易上传至终端侧区块链.边缘层中,算力较强的边缘设备作为局部网络的中心节点,负责处理来自局部网络中终端设备的数据请求,并对终端侧区块链中交易的合法性进行检查.同样位于边缘层的边缘侧区块链是一个多链的区块链结构.边缘设备会定期将终端侧区块链中的交易数据打包成区块,发布到边缘侧区块链中,这些区块被称为终端侧区块链的快照信息.核心服务设备是核心层中的重要组件,负责定期对边缘侧区块链进行备份,并负责边缘设备的注册、授权等工作.我们在终端层中设置了终端侧区块链,这降低了边缘层中边缘设备的计算压力,充分利用了终端层中终端节点的计算资源.我们将部分只会发生在单一局部网络中的任务(比如在局部网络中的数据索引证明等)卸载到终端层,减轻了边缘层的压力.这部分任务的执行不会在边缘层体现,也不需要边缘层的参与.除此之外,我们还可以将部分具有数据隐私性的任务卸载到终端层,起到一个保护数据隐私性的作用.因为边缘层中的边缘侧区块链上保存的只是终端层的一个数据快照信息,只对终端层数据起到数据验证和快照备份的作用.某个局部网络中的节点无法直接读取其他局部网络中的完整数据内容,可以起到隔离局部网络数据的作用.同时,多层区块链结构还可以减少边缘层中边缘节点需要存储的数据量.在边缘计算场景中,数据具有地域性、时效性等特点.我们按照通信拓扑结构划分了多个局部网络,确保大部分的数据交换发生在同一局部网络中,处于不同局部网络的节点之间在大多数情9 1 1 1期 殷昱煜等:边缘计算场景下的多层区块链网络模型研究况下没有兴趣也没有必要去进行频繁的数据交互.边缘节点中只需要存储其他局部网络的 快照信息即可.设置双层区块链结构减少了边缘节点需要存储的数据量.1 多层区块链网络模型架构图4.2 终端侧区块链  终端节点的传感器从环境中收集数据,终端节点使用哈希函数对收集到的数据计算得到对应的字长固定的索引信息.收集到的数据被存入数据服务器中,而索引信息在被打包成交易后被上传至终端侧区块链网络.为了提高终端侧区块链的交易效率,与比特币不同,我们的终端侧区块链使用了有向无环图(Di-rected Acyclic Graph, DAG)结构的区块链,该区块链对外提供分布式数据存储以及高效安全的数据查询服务.DAG结构区块链是一种结构特殊的区块链,与链式区块链不同,DAG结构区块链不是按出块时间组织的单向数据链,而是由交易单元构成的网络,支持异步并发地写入交易.4.2.1 局部网络终端侧区块链由局部网络中的多个终端节点共同持有、维护.按照通信拓扑上的结构,网络被分为多个局部网络,每一个局部网络都有相应的边缘节点对其进行维护.边缘节点是那些算力更强的设备,如中心路由、路边边缘单元等.边缘节点除了负责对局部网络中的终端节点进行管理,如终端节点的注册、局部网络的信息配置等工作之外,还需要定期对终端侧区块链中的交易进行检查,以防止恶意终端节点对区块链网络的破坏.边缘节点持有局部网络中所有终端节点的识别码.识别码是由终端节点本地生成的一串用于身份识别的字符串.终端节点生成识别码的过程如下:终端节点本地随机生成一个32字节的二进制数,作为其私钥(SEC-KEY),接着利用ECDSA椭圆曲线算法对其私钥进行计算得到对应公钥(PUB-KEY).最后,终端节点对PUB-KEY依次使用SHA-256RIPEMD-160算法进行计算,计算结果就作为该终端节点的识别码对外公布.4.2.2 终端侧区块链的结构终端侧区块链采用了DAG结构,而不使用传统区块链解决方案中的链式结构.这是因为链式结构适用于那些强调强一致性的区块链金融体系.而在边缘计算场景下,终端节点之间发布交易是高并发的.如果使用传统的链式区块链,多个节点争夺区块链的记账权,会产生大量的无效区块,这对于系统效率的影响是显而易见的.对比之下,有向无环图式区块链对微交易、高并发以及异步操作的支持,能够很好地适用于我们的边缘计算场景.区块链中使用交易的数据结构代替了链式区块链中区块的数据结构.而且,每一笔上链的交易都需要指向区块链中尚未完全得到确认的交易,即新发布的交易在上链前,需要对终端侧区块链中至少两个交易进行验证.与比特币中区块的6次确认类似,当终端侧区块链中的一笔交易被除发布者以外的终端节点验证超过6次后,我们就称这个交易是“已确认”的.终端侧区块链鼓励终端节点选取“待确认”的交易进行验证,并且终端节点相应的行为会被其所属的局部网络感知,并由对应的边缘节点进行检查.终端侧区块链中交易的结构包括了交易头和交易内容两部分.交易头中包含了由当前交易计算得到的哈希值、当前交易发布时验证的交易的哈希值、发布当前交易的终端节点的识别码.交易内容中包含了终端节点计算得到的数据索引等信息.我们通过自适应工作量证明算法以及检查点交易的方法控制了有向无环图式区块链中常见的分叉现象.在有向无环图式区块链中,影响区块链分叉拓扑结构的主要有两个要素,一个是当前网络中的并发程度,一个是网络的延迟时间.网络的并发程度越高、网络的延迟水平越高,分叉现象也就越明显.我们通过后文提出的自适应工作量证明算法,对网络的并发程度进行了控制.同时,我们还仿照IOTA提出了检查点交易的概念.位于边缘层的边缘节点每隔一定的时间间隔就会发布一笔可信的检查点交易,表示上一段时间间隔内的所有交易都已经被确0 2 1 计  算  机  学  报 2022年认,同时对所有终端节点的工作量证明算法难度进行调整.这样一笔检查点交易会验证当前所有的待确认交易.在检查点交易发布之后,区块链中就只有检查点交易一笔待确认交易,新发布的交易会验证并链接检查点交易.这样的机制会对终端层的有向无环图式区块链的拓扑结构产生一定的收束作用.同时通过调节终端节点工作量证明算法的难度,来对网络中的并发度进行控制,也能够起到抑制大量分叉现象的作用.网络延迟则不是论文讨论的重点.在边缘计算的真实应用场景中,同一个局部网络中的终端节点通常处于相同或者相近的网络环境下,实现全局的数据一致性并不需要太长的时间.4.2.3 边缘节点的检查过程 类似于IOTA中协调节点对Tangle网络中交易的检查,边缘节点也会定期对终端侧区块链上的交易进行检查,检查内容包括了交易本身的合法性、前置交易的属性等.边缘节点会根据检查结果,计算得到对应的终端节点的贡献值.终端节点的贡献值用来表示该终端节点对终端侧区块链的贡献程度.除了终端节点发布的交易内容会影响该节点的贡献值外,影响因素还包括终端节点在交易上链过程中的其他行为,具体内容会在5.3节进行详细描述.边缘节点将局部网络中所有终端节点的检查结果打包进一个新的交易,发布到终端侧区块链中.该交易也被称作“检查交易”.后续终端节点发布的交易必须直接或间接地对该“检查交易”进行验证和确认.终端节点需要根据“检查交易”中的内容设定自身的贡献值,并调整A-PoW算法的难度.4.3 边缘侧区块链  边缘侧区块链位于边缘层,其中存储了每个局部网络中终端侧区块链中交易的数据快照.4.3.1 边缘侧区块链结构参考Hashgraph,边缘侧区块链采用是多条单向链相互交织的结构.关于Hashgraph的原理与结构我们在第二章进行了详细的描述.边缘侧区块链以创世区块为起点,引出多条单向链,每一条单向链中都存储了一个局部网络中终端侧区块链中存储的交易信息.单向链上的数据存储结构与比特币相同,都是区块.每一个区块同样被分为了区块头和区块体两部分.区块头中存储了指向前置区块的哈希指针以及创建区块的时间戳信息.区块体中包含了交易信息,交易以默克尔树的形式存储.其中,树的叶子节点存储的是一个时间段内终端侧区块链中新发布的交易的哈希值.这棵默克尔树可被用于在当前网络模型中对交易数据进行快速检索,关于快速检索的机制会在5.3节中进行描述.除此之外,区块体中还包含了数据负载信息.数据负载信息中包含了终端节点对检查结果的的签名.与比特币中全节点和轻节点的作用类似,为了降低边缘节点需要存储的区块链数据,终端侧区块链上的链被分为了“全链”与“轻链”两种类型.全链上的区块存储结构是完整的,轻链上的区块中只保存了区块头的内容.边缘侧区块链上每一条链的第一个节点被称作“起始区块”,该区块记录了当前链对应的局部网络信息.4.3.2 智能合约智能合约是一种用代码进行有效力约束的自动执行合约.即使在没有中央参与者的情况下也可以有效地完成对合约的正确执行.本文提出的多层区块链网络模型充分利用了区块链以及智能合约的特点.终端节点通过执行位于终端侧区块链的数据存储智能合约实现原始数据以及对应数据索引信息的安全存储.原始数据即由终端设备的传感器从外界收集的第一手信息,例如温度、湿度、当前移动设备的坐标等.数据索引信息指的是由终端设备对原始数据进行哈希计算后得到的字长固定的哈希值.数据量较大的原始数据被存储在私有的存储服务器中,而占用空间较小并且保密性较好的数据索引信息被存储在公开的边缘侧区块链上.在本文提出的模型中,智能合约的执行被分为了四个阶段,分别是部署阶段、存储阶段、调用阶段和执行阶段.在部署阶段,边缘层首先将要部署的智能合约发布到核心层,核心层完成备份之后再由边缘层将智能合约部署到终端层局部网络中.智能合约由边缘节点通过交易的形式完成部署.当边缘节点需要在局部网络中发布智能合约时,需要调用检查点交易智能合约,对当前的终端侧区块链进行检查.然后将待发布的智能合约编译后的字节码文件放入发布的检查点交易的数据负载中,并且用标志位显式地标记此处有新的智能合约发布.由于每个终端层的节点都需要访问并验证最新的检查点交易,此时终端节点就会在本地更新智能合约池.每个终端层节点都完成了智能合约池的更新之后就代表当前新的智能合约部署完成了.在存储阶段,智能合约是在每个终端节点以及边缘节点的本地进行存储.同时,发布智能合约的交易也会在区块链中公开透明地保存(即检查点交1 2 1 1期 殷昱煜等:边缘计算场景下的多层区块链网络模型研究易).当节点调用智能合约时只需要找到在本地存储的合约字节码文件运行即可.最后是智能合约的调用与执行阶段.在以太坊中,智能合约的调用是通过一笔交易的形式显式地存储在区块链中.交易中包含了想要调用的合约的索引以及与合约相关的输入数据.接着,矿工在验证交易的时候,就会去执行相应的智能合约,完成对以太坊状态机状态的更改.但是在我们的终端侧区块链中并没有账户的概念,智能合约的执行者也不再是矿工,而是合约的调用者.所以我们将合约的调用与执行进行了合并.智能合约的调用与执行过程都记录在一笔交易中,并发布到区块链上.这笔交易中总共包含了:(1)合约调用者调用的合约的索引以及输入的参数;(2)合约的调用者在本地执行一次相应的智能合约,所产生的输出;(3)合约调用者的哈希与签名.智能合约是一段可运行程序,区块链为其提供了安全可靠、公开透明的执行环境.每一

[返回]
上一篇:图神经网络前沿进展与应用
下一篇:基于数据同化的飞机尾流行为预测