zoukankan      html  css  js  c++  java
  • A new type of blockchain for secure message exchange in VANET

    摘要

      在车联网(VANET)中,车辆对危及生命的交通事件信息的收集和传播至关重要。然而,传统的VANET面临着几个安全问题,我们提出了一种新型的区块链来解决VANET中的关键的消息传播问题。我们创建了一个本地区块链,用于在一个国家范围内的车辆之间进行真实事件消息交换。这是一种新型的适用于VANET的区块链。我们提供了一个公共区块链,它将节点可信度和消息可信度存储在一个适合于安全消息传播的分布式账本中。

    1.简介

      近几十年来,智能和自动驾驶汽车的数量持续增长。在车载自组网(VANET)中,驾驶员的生命和财产取决于车辆间通信的效率。车联网的主要目标是在短时间内准确传播危及生命的事件信息,如交通堵塞和事故报告。然而,在动态VANET环境和恶意车辆存在的情况下,在目标区域传播关键事件信息仍然是一个挑战。现有的车联网有许多安全问题。由于恶意车辆发送虚假、不可信的信息,一些重要信息无法实时准确传播。这会对邻近的车辆和司机造成间接伤害。VANET面临的挑战之一是其短暂的特征。在分布式VANET中,车辆节点可以像在移动自组网(MANET)中那样动态地加入和离开网络。区块链最近受到了研究人员的关注,在各个领域都有很大的潜力。我们使用区块链来解决车联网中信息传播的关键问题。区块链是一种新兴的去中心化和分布式计算范式,它是比特币的基础,在点对点(P2P)网络中提供隐私和安全性。在VANET的情况下,可以使用区块链来管理车辆信息的地面真实信息,因为任何车辆都可以访问公共区块链中的事件历史信息。

      提出了一种在VANET中确定节点可信度和消息可信度的方案,并将其存储在一个公共区块链中,作为其他车辆的地面路况信息。简单地采用现有的区块链并不直接适用于VANET场景。因此,我们将引入一种适合于VANET的新型区块链,在VANET中使用事件消息作为交易,这不同于在比特币中使用加密货币作为交易。我们相信区块链能够解决目前车联网面临的主要问题,并为关键信息传播提供安全保障。在我们的方案中,基于类似于比特币交易的事件消息构建新的块,并将连续块的散列顺序链接在一起,形成区块链。最近,区块链技术引起了人们的极大兴趣,许多研究人员已经研究了区块链在地理空间系统中使用的方法。就比特币而言,一个新创建的区块可以在全球所有节点之间共享。然而,在VANET的情况下,没有必要共享一个国家范围之外的区块。例如,日本和韩国在地理上是分开的,它们没有公路连接。因此,日本的交通和事故信息对韩国的车辆没有帮助。因此,更适合保持一个单独的区块链,根据地理位置,只考虑每个国家的车辆节点信任级别和消息可信度。本文的主要目的是研究如何在车联网中应用区块链技术安全地传递可信的事件消息。我们将处理本地的区块链,它独立于其他国家的区块链,这有助于信息传播在VANET中的可扩展性和及时性。

      我们考虑一个公共区块链,它独立地管理和存储给定国家的所有节点可信性和消息可信性。我们还提出了基于私有区块链或公共区块链的不同类型的区块链共识机制。共识机制在确定区块链的安全性和可伸缩性方面起着重要作用。我们将专注于工作证明(PoW)共识机制,它具有强大和可证明的安全性,并且适合于公开的区块链。我们为区块链引入边缘计算,因为它可以通过将高计算量的工作量证明转移到车辆的边缘服务器上,减少区块生成的延迟。此外,利用边缘云计算可以降低块传播延迟。在本文中,我们引入了一种区块链来有效地处理VANET中节点和事件消息的可信度。

      本文的主要贡献可归纳如下:a.我们提出了一种区块链方案来在VANET中存储节点和消息的可信度。在该方案中,节点和消息的可信度作为类似于比特币区块链的交易,为其他车辆提供地面实况信息。b.我们试图通过使用本地区块链来提高区块链的可伸缩性,这是一个基于地理位置的概念,独立于其他国家的链。c.我们的目标是通过在未来的VANET区块链中引入边缘计算来减少块生成的延迟。边缘计算将通过将复杂的计算转移到边缘设备来减少延迟,从而在VANET中提供实时应用。

    2.相关工作

      区块链可以定义为一个分布式的、分散的公共数据库,其中包含参与节点之间执行或共享的所有事务或数字事件。公共数据库中的每个事件都是基于区块链网络中大量节点的协议进行验证的。区块链的流行是因为它的优势,包括去中心化、匿名性、数据的时间顺序、分布式安全性、透明性、不变性以及对不可靠环境的适应性。区块链由两种类型的节点组成。完整节点是存储和维护区块链事务的完整历史的节点。它直接且独立地开始事务,并授权地验证网络中的所有事务。区块链网络中的每个节点都知道genesis块的散列。网络中的每个节点都基于作为安全根的genesis块构建一个可信的区块链。genesis块没有前一个块的散列。如果一个节点是新的,那么它只知道genesis块,它必须下载从genesis块开始的所有块,以便与区块链网络同步,当发现新的块时,它会不断更新。块的链接是通过将前面的块的哈希值附加到当前块来执行的,这样当前块的哈希值就可以按顺序附加到后面的块。然后,在分布式P2P网络中与其他节点以一种安全的方式共享,而不需要中心授权。块的顺序哈希确保事务的顺序。然后,如果不修改前一个事务的块和所有后续的块,就不能修改前一个事务。区块链通过匿名节点在生成块时的一致性来验证。如果恶意节点的聚合计算能力不大于诚实节点的计算能力,则认为是安全的。就比特币而言,PoW的概念确保了矿工不会操纵网络来制造虚假区块。PoW是一个数学难题,很难解决,容易验证,因此它保护区块链免受双重支出攻击。在VANET的研究中,之前一些与安全事件消息传播相关的工作都是基于投票的。大多数投票方式试图通过询问其他节点的意见来确定节点的可信度来解决节点的安全性问题,但这类方式存在提供反馈的节点是否可信的问题。在我们的方法中,我们假设所有的信息都保存在一个基于区块链技术的分布式数据库中。一般来说,对使用区块链的车载网络的研究工作有限。参考文献[8]的作者使用基本的区块链概念来简化异构车载网络中的分布式密钥管理。参考文献[9]的作者结合了VANET和Ethereum基于区块链的应用概念,实现了一个透明、自我管理和分散的系统。他们使用Ethereum的智能合同系统在Ethereum区块链上运行所有类型的应用。相比之下,我们的工作是在车载网络中应用一种不同类型的区块链来进行安全消息传播。在Ref.[10]中,作者提出了一种用于汽车安全的区块链技术,在区块链和传统节点中使用一种称为覆盖块管理器的覆盖网络。覆盖网络节点由簇头聚集,这些簇头负责处理区块链和运行其主要功能。但是,引入额外的覆盖节点可能会导致高延迟,如果集群头被破坏,可能会成为失败的中心点。在参考文献[11]中,作者提出了一种区块链,通过使用可见光通信和声侧信道来保护智能车辆的通信。他们使用区块链公钥通过会话加密密钥来验证他们提出的机制,同时利用了端通道和区块链公钥基础设施。他们使用不同类型的通信来确保车辆网络的安全。

    3.技术概述

    3.1 车联网基础原理

    3.1.1 信任模型

     3.2 区块链概述

    3.2.1 区块链的特点

    3.2.3 区块链共识机制

    4.车联网中的区块链机制

      提出了一种新型的区块链来解决VANET中可信消息的传播问题。这种方法是新的,因为我们在VANET中使用了不可变分布式公共数据库的概念来安全地传播消息,其中任何节点都可以访问信息。此外,它可以由每个国家独立维护。近年来,由于比特币区块链的引入,这已经成为可能。然而,我们的问题的本质与比特币不同,因为我们处理的是事件消息,而不是加密货币交易。一些事件信息,如交通堵塞、道路事故和环境危害,与特定的地理位置有关。其他地区或国家对这些本地信息不太感兴趣。所有车辆都可以通过使用基于位置证明(PoL)的定位证书来知道自己的位置。世界上有数百万辆汽车,所以如果每个国家都独立地管理一个区块链,这样,与全球区块链相比,可伸缩性问题就会少一些。

    4.1 前提假设

      我们假设车辆可以通过V2V和V2X通信与其他实体进行通信,并且车辆可以高效地连接到网络。我们假设所有的车辆都需要车载单元OBU、传感器和GPS等设备。我们假设合法路侧单元RSU的数量大于恶意RSU的数量。RSU通常是路边的固定实体。合法的RSU创建一个genesis块来基于本地事件启动区块链。我们假设具有强大计算能力和高信任级别的车辆被视为可以参与挖掘过程的全节点车辆。此外,网络中正常车辆的数量超过了恶意车辆。我们假设关键事件消息在特定地理位置的相关区域(Rol)内传播。关键信息没有加密,因此附近的任何车辆都可以使用它们。我们假设确认事件所需的消息数为15,这样消息就被认为是正确的。

    4.2 提出的区块链方案的组成部分

    • RSU
    • 车辆
    • 车联网信息:①beacon信息;②安全事件信息
    • 区块
    • 位置证书:基于PoL的位置证书用于提供关于车辆在给定时间内位置的证明。每辆车都需要PoL验证车辆位于事件现场附近。此外,在帮助区块链的事件消息中,PoL用作位置证明。RSU充当验证器,为其通信范围内的车辆提供位置证书。我们认为所有的交通工具和RSU都有它们自己的公钥和私钥对。请求车辆用它的公钥(Kpub)向RSU发送一个发起消息,然后RSU向车辆发送一个随机会话ID (Sia)。车辆将签名会话ID (sign(Sa))发送回RSU。(RSU验证签名的真实性的符号(Sid))与车辆的公钥(Kpub)和检查时间交换会话ID,如果发送和接收会话ID的时差小于几毫秒,RSU发布位置证书(LC),其中包括位置、时间和车辆的公钥(Kpub)签署了限制的私钥(KRpr)如图5所示。GPS不能被使用,因为它很容易被欺骗。PoL是安全的,因为没有RSU的有效签名,车辆不能创建假的位置证书。但是,仅使用PoL并不能保证消息的可信度,因此我们需要一个新的区块链机制来使消息更可信。

    4.3 提出的车联网中的区块链

      我们提出了一种新型的区块链,因为简单地采用现有的区块链并不适合我们的方案。传统的区块链处理加密货币,而我们的区块链处理安全事件消息不使用任何加密货币。从这里开始,我们将使用安全事件消息作为事件消息。我们的区块链是适当的,因为它具有与真实世界相关的VANET中的安全事件的可靠度。区块链以分布式的、不可变的和可靠的方式存储和管理事件消息以及车辆节点的信任级别。每个国家都将专门管理和维护一个独一无二的区块链,用来记录车辆信息。

      车联网中,左右车辆通过beacon消息广播自己的位置。我们使用位置证书作为数字化证明来表示某车辆处在特定时间特定地点。每辆车都需要一个位置证书来证明它在给定时间的位置。位置证书由合法的RSU提供。RSU使用自己的公钥和私钥向提出请求车辆发出位置证书。此位置证书充当车辆的位置证明(PoL),帮助确定给定地理区域内的事件消息。现有区块链存在可扩展性和及时性问题,可能不适用于实时VANET应用。在我们的方案中,所有的事件都是局部的,即事件消息仅限于特定地理区域内的车辆。在传统的区块链中,新生成的区块会在全球广播。但是在我们的方案中,VANET信息不需要跨越国界,因为一个国家的交通和事故信息与位于另一个国家的车辆无关。因此,需要一种有别于传统区块链的区块链新概念。在每个独立的区块链中,所有的矿工(车辆)都根据事件消息挖掘新的块,并将新生成的块发送到本地区块链网络。区块链为国内车辆节点提供全球化的地面实况信息。换句话说,任何车辆都可以在区块链中随时查询车辆的信任级别。新块是通过整合来自消息池中未得到确认的事件消息列表生成的。将所有块按照顺序链接在一起,构建一个区块链。区块生成后,将其进行广播,网络中的所有车辆将验证并更新它们的区块链。

    5.应用在车联网安全信息传播的区块链

      

       如图所示:网络中所有车辆下载并更新区块链。在我们的方案中,区块链充当一个分布式公共总账,它将车辆信任级别的完整历史和事件消息存储在区块链中。遇到事件(比如事故)的车辆将带几个参数向区块链网络中的相邻车辆广播事件消息。当其他车辆收到新的事件消息时,它们首先根据事件消息中嵌入的位置证书验证它们是否在同一区域。车辆会考虑事件消息并检查它是否属于同一区域。然后,相邻的车辆检查事件消息的其他参数。为了防止垃圾邮件、拒绝服务和其他对系统的有害攻击,每个车辆在进一步传播之前都要独立地检查每个事件消息。

      当有事件发生时,附近的车辆节点将广播事件消息。相邻的车辆将从广播车辆中收集信息。事件消息包含所有相关信息,例如事件类型、虚拟ID、事件ID、信任等级、时间戳和位置证明等。接收到事件消息的车辆首先从区块链检查发送方车辆的信任级别,然后验证事件消息。它们根据发送者车辆的信任级别、事件位置、事件ID、行驶方向、位置证明、速度、时间戳等证据来检查每个事件消息,如果消息被认为是可信的,则将该消息存储在本地内存池中。否则,消息将被丢弃。事件消息在本地区块链网络上广播,网络中的每个车辆验证事件消息。区块链中的车辆从未确认的事件消息池收集不同的事件消息,并验证接受消息的参数是否有效。区块链中的车辆使用消息验证策略来了解消息的可信度,具体如下:①从主区块链检查发送方车辆的以前信任级别②根据位置证书检查PoL③检查该消息是否是第一手信息④检查时间戳。

      如果接收到的事件消息根据验证策略是有效和可信的,那么它的信任级别将被更新。信任级别定义为车辆发送的真实事件消息m的百分比;事件消息总数m+ n,即, TL =m/(m+ n),其中n为假事件消息数。信任级别会随着时间的推移而变化,具体取决于消息的真假。车辆的信任级别随着真实消息数量的增加而增加。区块链中的车辆将计算更新后的发送方车辆的信任级别,并在本地链中添加新的块后将此信任级别发送给区块链。

      每个区块链中的车辆将创建一个新的区块B。块头由前一个块的哈希(Bi1)、随机数N和所有无序事件消息Mi的哈希组成。区块 链中的车辆试图找到一个随机数,使(H(M)l1H(B-1)IN)的哈希小于难度目标(D)。

       困难度目标周期性地根据车辆节点的当前计算能力进行调整,这样就可以按一定的间隔不断地创建新的块。困难程度可以通过两种不同的方式来确定。了解难度的第一种方法是检查哈希结果开头的0的数量,第二种方法是估计难度目标。所需的目标值可以表示为挖掘新块所需的计算散列数。难度目标可计算为

       与比特币难度格式类似,指数是前两个十六进制位,系数是十六进制难度位值的剩余部分。目标越低,难度越高,反之亦然。如果网络发现块的速度快于块的生成时间,则网络难度目标增加;而如果网络发现块比预期的慢,则难度目标降低。网络必须重新计算困难度,以便一致地生成块。这被称为难度重定向,它被计算为其中Dn为新难度目标,Do为旧难度目标。

      当矿工车通过找到一个随机数作为满足网络困难度目标的解决方案来解决一个困难度难题,即完成工作量证明(PoW),得到的哈希值必须低于这个难度目标值。找到随机数后,广播新的区块Bi到区块链网络。其他车辆接收新的区块,并根据验证策略独立地验证事件消息是否正确,这保证了只有合法的区块才能在网络上广播。独立验证也保证了行为诚实的采矿车辆将其区块集成到区块链中,从而获得奖励。行为不诚实的采矿车辆会被拒收,因此,他们不仅失去了奖励,而且浪费了用于计算PoW解决方案的能量。如果新的区块信息是正确的,那么采矿车辆接受它并开始在其上开采新的区块。区块链中的事件消息的存在是一种对事件信息可信度的确认。

      基于矿机车辆之间的一致决定,新区块将永久存储在区块链中。工作量证明算法被用于防止恶意车辆使数据库失效。随着网络规模的增大,对于使用双重支出攻击的攻击者来说,区块链变得越来越难以攻破。新区块内的信息仍可公开核实;因此,区块链的公共特性允许所有参与者验证事件消息的正确性。如果事件点上的后续车辆需要知道事件信息,则需要检查区块链以验证事件消息的正确性并相应地采取行动。因此,我们可以跟踪所有车辆近期的信誉度。

      有时,两辆或两辆以上的采矿车辆同时开采一个新的区块,并立即将消息广播给它们的近邻,后者开始在网络上传播新的区块。块可能在不同的时间到达不同的车辆,导致车辆具有不同的区块链透视图。结果,区块链分叉出现了。为了解决分岔问题,矿车应选择块链最长的区块链,也就是选择完成的工作量最多的区块链。

      因此,区块链的公共性质和网络上所有车辆对每个新区块的独立验证确保了一个分布式和安全的数据库。区块链使用相应的事件消息存储车辆的所有信任级别的历史记录。因此,我们可以跟踪所有车辆近期的信誉度。存储在区块链中的信息充当其他车辆的交通实况。每一个区块基于前一个块的散列,因此操作和生成一个区块非常困难,需要大量的计算能力来更改后面的区块。恶意车辆无法在不被其他对等车辆注意的情况下向分布式区块链中插入假块。随着网络规模的增长,区块链变得更加难以被恶意车辆破坏。因此,可以使用新类型的区块链安全地传播事件信息。此外,保险公司可以使用来自区块链的车辆历史信息进行理赔,交警可以使用历史作为法医来解决肇事逃逸以及交通事故纠纷。

    6.性能分析

      在本节中,我们将讨论为VANET提出的区块链方案的可扩展性。我们评估了VANET中区块链的存储和消息开销。目前大多数基于区块链的技术都存在可伸缩性问题。如前所述,我们将安全消息视为方案中的事务。存储和消息开销:块头的大小大约是80个字节,如图3所示。考虑到全球规模的交易,比特币区块链的规模增长了很多,甚至达到了pb。在我们的方案中,每个安全消息大约为512字节,块头大约为80字节。所以单个消息的块大小大约是600字节。在该方案中,我们假设块生成速率为100 s,以防止重复花费攻击。一小时内将会产生大约36个街区。因此,包含消息的区块链的存储开销为每年600字节*36*24*365 = 180.45 MB。我们精心设计了一个VANET网络上的块结构,以支持大量数据而不存在可伸缩性问题。让我们假设VANET系统由2000辆行驶在特定位置的车辆组成,车辆在给定时间内在该位置发送报告信息。我们可以将区块链中每个时间段的消息事务计算为Tx*(B*t),其中Tx为每个时间段的消息事务数,B为块的大小,t为单位时间。VANET系统生成的块的总大小如表2所示。该表显示了每段时间内不同数量的消息事务的网络区块链的估计增长。它显示了在一个特定位置有2000辆车运行的情况,其中200辆到最多1500辆车在该位置发送报告消息。由于我们为VANET使用了本地区块链,因此区块链网络的增长可以得到控制,而可伸缩性问题仍然存在。

    7.展望:车联网中区块链的边缘计算

  • 相关阅读:
    【HDOJ】2774 Shuffle
    【POJ】2170 Lattice Animals
    【POJ】1084 Square Destroyer
    【POJ】3523 The Morning after Halloween
    【POJ】3134 Power Calculus
    【Latex】如何在Latex中插入伪代码 —— clrscode3e
    【HDOJ】4801 Pocket Cube 的几种解法和优化
    【HDOJ】4080 Stammering Aliens
    【HDOJ】1800 Flying to the Mars
    SQL语法
  • 原文地址:https://www.cnblogs.com/Duxue/p/13378312.html
Copyright © 2011-2022 走看看