基于区块链的半分布式车辆违章举报方法与流程

文档序号:19072816发布日期:2019-11-08 20:55阅读:281来源:国知局
基于区块链的半分布式车辆违章举报方法与流程

本发明属于车联网领域,特别涉及一种基于区块链的车辆违章举报技术。



背景技术:

自动驾驶技术要求车辆能够处理实时采集的大量视频和图像数据,并且在5g技术的加持下,车辆能够与外界以更高的速率交互数据,这一切旨在提高道路交通的安全和效率。如果车辆在行驶过程中采集了其他车辆的实时违章信息,作为交通行为的参与方,车辆有义务上报目击的违章行为。违章信息记录后,一方面对违章车辆提出警告,督促其改正当前可能正在继续发生的违法行为。另一方面对违章车辆做出惩罚。

目前的车辆违章举报主要依赖于集中式记录方式,即用户将被举报违章行为发生的地点、时间、证据发送给交警局,由交警局审查违章证据,做出相应的处罚。集中式的举报信息处理存在着信息不透明,内部可能存在腐败,举报信息处理效率低等问题,被举报用户不能在第一时间察觉自身的交通违法行为并及时更正自身行为。

区块链最早应用成功的技术是2008年11月1日由中本聪提出的比特币,在其发表的比特币白皮书中给出了详细的技术途径。区块链是一种分布式存储的数据结构,每个区块中存储了由众多区块链节点认可的交易事务,每个区块链节点都可以获取整个区块链的数据,与全局保持一致。区块的身份是由sha256哈希加密算法计算的哈希值来独特标识的,由于区块头部中包含了上一个区块的哈希值,所以区块与区块之间是互相链接的。区块链可以视为一个垂直的堆栈结构,每个新生成的区块都放在区块链的顶部,区块链的第一个区块是整个堆栈的基础。区块链通过这种叠加的层次结构增加了数据的防篡改性和防抵赖性。

在比特币中,由于交易是区块中的公开信息,所以任何账户的资金储蓄都是公开透明的。虽然账户的历史交易信息是公开的,但是比特币账户与用户的真实身份没有任何关联,所以比特币系统能对用户的真实身份实现有效的隐私保护。账户发起的交易信息是否是有效的交易是由其他区块节点进行验证,由于其他节点可以通过查询区块链历史消息获得某个账户的交易记录,所以可以判别当前交易发起方是否能够提供足够的资金输入。本发明实现的半分布式举报系统与比特币所实现的区块链系统不同,容许没有交易记录的用户也能够发起举报行为,因为半分布式系统引入了认证中心实体能够对用户真实身份与匿名身份进行限制。如果用户能够得到认证实体提供的身份证明,就能注册成为合法的用户,进而参与举报活动。本发明应用分布式区块链平台“以太坊”中的智能合约进行身份注册。

智能合约在1990年代由密码学家nickszabo首次提出,他将智能合约定义为“一系列由数字形式规定的承诺,包括协议双方履行其他承诺的协议。”,在区块链平台“以太坊”发明后,智能合约有了新的定义。其本质是不可更改的计算机程序,这类程序运行在“以太坊”虚拟机上。智能合约由交易事务启动。对于任何运行相同智能合约的计算机,在给定了初始该程序的交易和当前区块链状态后都能得到相同的输出。智能合约一旦部署到区块链上后将无法修改其代码内容,并且实现该智能合约的代码对任何人都是公开透明的。如果需要对合约内容做出修改,只能删除该合约实现的功能使其成为一个空账户再重新定义一个新的智能合约。

目前在车联网中的区块链应用主要有以下几个方面:

(1)基于区块链的车联网节能交易模型。v.sharma,"anenergy-efficienttransactionmodelfortheblockchain-enabledinternetofvehicles(iov),"inieeecommunicationsletters,vol.23,no.2,pp.246-249,feb.2019:该文提出车辆在更新区块链状态时由于交易事务数量庞大车辆能耗需求过高的问题。该文引用分布式集群优化对车联网中的交易数量进行限制,数值结果表明,该文提出的优化方法与传统区块链模式相比,降低能耗40%,减少交易数量80%。

(2)车联网中基于属性区块链的半集中式交通信号控制模式。l.chengetal.,"sctsc:asemicentralizedtrafficsignalcontrolmodewithattribute-basedblockchaininiovs,"inieeetransactionsoncomputationalsocialsystems.doi:10.1109/tcss.2019.2904633:该文提出的模型权衡了用户的隐私性与信息可用性,根据车辆行驶的方向,位置对车辆进行基于属性的分组,使得分组内的车辆对信号灯达成一致的控制决定,提高交通的效率。

(3)车联网中利用区块链技术进行验证与隐私保护。r.sharmaands.chakraborty,"blockapp:usingblockchainforauthenticationandprivacypreservationiniov,"2018ieeeglobecomworkshops(gcwkshps),abudhabi,unitedarabemirates,2018,pp.1-6.doi:10.1109/glocomw.2018.8644389:该文提出一种分布式、可扩展、健壮的架构实现隐私保护与认证。

(4)基于区块链技术的车联网认证改进方案。x.wang,p.zeng,n.patterson,f.jiangandr.doss,"animprovedauthenticationschemeforinternetofvehiclesbasedonblockchaintechnology,"inieeeaccess,vol.7,pp.45061-45072,2019.doi:10.1109/access.2019.2909004:该文设计了一种分布式的车联网认证方案,该设计结构包含三个实体,可靠的云服务提供方,车辆和路旁单元。车辆向路旁单元发送个人身份信息用于注册,路旁单元在检测该身份的有效性后对该消息进行加密并发送至云服务提供商。云服务商决定是否将该车辆的信息写入可信赖名单,并公布到其他路旁单元。最后路旁单元会向请求注册车辆发送唯一标识该车辆的关键密钥,进而结束注册过程。



技术实现要素:

为解决集中式举报容易出现单点失败导致违章记录遭到破坏,系统崩溃的情况,其次在集中式举报系统工作模式下,数据中心需要处理大量举报消息并验证举报消息的真实性,存在举报内容无法实时更新的缺点,对违章用户无法起到及时举报的问题;本发明提出一种基于区块链的半分布式车辆违章举报方法,在应用了区块链技术实现分布式举报的基础上,引入了pow与pos结合的共识算法,进一步提高了区块中举报消息的吞吐率,为举报消息实时公开提供了支持;本发明在举报消息中添加了证据的摘要,防止证据被恶意篡改或提供虚假消息的发生。

本发明采用的技术方案为:一种基于区块链的半分布式车辆违章举报方法,包括:

s1、用户身份注册;

s2、举报用户采集车辆违章证据文件,并将采集的证据文件进行本地保存,举报用户识别违章车辆对应的车牌信息与违章类型,将至少包括车牌信息、违章类型以及证据文件的哈希值的举报消息加密封装为“举报消息包”发送至可通信的rsu;

s3、当步骤s2中所述的可通信的rsu验证举报用户地址合法后,对接收到的举报消息包进行解密得到举报消息,然后根据车牌信息与违章类型对举报消息进行分类,并根据同一分类中各举报消息的可信度计算该分类举报消息集合的可信度;

s4、rsu将可信度最高的举报消息集合放入待发布区块,rsu根据该可信度最高的举报消息集合中各举报消息的可信度计算该待发布区块的发布难度;

s5、rsu根据步骤s4得到的待发布区块的发布难度确定一个随机数;

s6、rsu对外公布已准备好的待发布区块及其对应的随机数,当待发布区块发布到区块链上后,所有区块链网络中的节点更新本地保存的区块链信息。

进一步地,步骤s3所述的同一分类中各举报消息的可信度根据以下四个部分计算得到:

第一部分为举报用户的可信度;第二部分为被举报用户发生违章行为的可信度;第三部分为违章行为所在地区发生该类违章行为的可信度;第四部分为同一违章行为分类中的举报数量可信度。

更进一步地,某举报消息的可信度计算式为:

其中,rjq表示该举报消息,α表示举报用户的可信度cr(addr(rjq))对应的归一化参数,β表示被举报用户发生违章行为的可信度cr(lp(rjq))对应的归一化参数,γ表示违章行为所在地区发生该类违章行为的可信度cr(loc(rjq))对应的归一化参数,表示该分组内的举报数量num(ej)与该待发布区块中包含的举报数量txmax的比值。

进一步地,步骤s4所述的计算该待发布区块的发布难度,具体为:引入pos算法计算pow算法中的工作难度,计算过程为:

首先计算待发布区块中可信度之和;

其次,根据可信度之和计算难度减少量;

最后,根据难度减少量得到该待发布区块的发布难度。

更进一步地,步骤s4所述rsu还包括产生奖励交易信号,包括:产生奖励金额的“区块奖励交易”,所述“区块奖励交易”接收方为rsu的地址;为该待发布区块中每个举报用户分配奖励的“举报奖励交易”,所述“举报奖励交易”的发起方为rsu,接收方为举报用户。

进一步地,还包括rsu为“举报奖励交易”设置可支出时间。

进一步地,所述举报消息还包括:举报用户地址、违章事件发生位置、违章事件发生时间。

进一步地,还包括:步骤s7、用户申诉,具体为:

申诉用户获取所有举报证据文件;

获得所有举报证据文件后,申诉用户计算文件的哈希值;

根据计算得到的哈希值,确认举报用户提供的证据文件与区块链中的摘要是否匹配;

若不匹配,则该举报消息为不实举报;否则通过智能合约对举报证据文件进行进一步验证;

若验证结果为无效证据,则对应的举报用户地址被智能合约无效化,申诉成功;否则申诉失败;

将申诉结果以交易形式保存至区块链中。

进一步地,步骤s1具体为:

s11、车辆在本地生成公私密钥对,利用公钥进行哈希计算生成地址,车辆将个人身份信息与待注册地址封装为认证请求包;车辆对认证请求包加密后将身份认证请求包发送到认证中心;

s12、认证中心在收到用户发送的身份认证请求包后,验证用户身份信息的有效性;检查发动机号与驾驶证号是否指向同一用户;验证成功后,向用户发送证明车辆身份的凭证;

s13、用户通过本地生成的地址账户向智能合约账户发起交易,交易内容包含需要调用的智能合约函数,将认证中心生成的凭证作为参数传入该函数;

s14、智能合约内部检验用户提供的相关凭证,返回身份验证结果;将结果以交易的形式记录在区块链上。

本发明的有益效果:本发明提出一种半分布式工作模式,引入身份认证中心实体参与用户身份注册,并基于区块链技术共享和存储实时举报信息,具备以下优点:

1、与全分布式系统相比,本发明的半分布式系统既保证了用户的隐私身份,也通过身份注册过程保证了信息的可靠性;

2、举报用户只需要将违章证据文件的哈希值保存在区块链中,与传统方式将证据文件上传至中心系统相比,降低了上传证据文件的通信开销,并且不再需求可靠第三方验证证据文件的有效性,而是将验证任务分散到区块链节点中;

3、采用pow与pos结合的共识算法,利用举报信息的可信度降低pow算法中的计算工作量,该方法降低了区块的产生周期,提高了举报系统中实时举报消息的吞吐量;

4、本发明提出的消息可信度计算方法实现对举报信息的差异化处理,发生违章行为频繁的用户或地点更容易被成功举报;

5、本发明设计的激励机制一方面为用户提供举报不良行为的动机,另一方面也考虑不诚实举报用户的存在,设计奖励可花费时间限制。

附图说明

图1为本发明实施例提供的场景示意图;

图2为本发明实施例提供的系统流程图;

图3为本发明实施例提供的身份注册流程图;

图4为本发明实施例提供的举报与申诉机制流程图。

具体实施方式

本发明应用的车联网场景为:高速公路单向三车道,其中两条为正常车道。任何车辆都可正常行驶,剩下一条为应急车道,只有突发情况的车辆或者特种车辆可以借道使用。假设场景如下:当高速公路车流密度较高时,可能会出现拥堵,某些车辆违法占用应急车道。如图1所示存在一辆违规占用应急车道的车辆vi以及违规行为见证车辆集合v{v1,v2,v3,v4,v5}。

如图2所示为本发明方法的流程图,包括:身份注册与举报申述的过程。

集合v中的车辆如果要参与举报过程需要先注册身份,使其身份合法化,注册过程中涉及三个实体,分别是智能合约、认证中心、车辆用户。智能合约在部署到区块链上后就不再属于任何个人或机构。智能合约在区块链上以合约账户的形式存在,该账户没有私钥,所以它是一个自我掌控实体。认证中心作为一个可靠第三方,可以从可信来源获取任何车辆的身份信息。为了减少第三方的权力,认证中心只能回复用户的身份验证申请。

本实施例中以车辆v1注册过程为例。如图3所示,其注册过程如下:

a1、认证中心生成认证中心密钥对(keyacpub,keyacpri)并对外公开公钥keyacpub,私钥keyacpri仅由认证中心掌握不能对外泄露。车辆v1本地生成公私密钥对{keypri,keypub}。选择sha256算法为本发明的哈希函数v1使用公钥计算地址:车辆组织认证请求包packreq,packreq中包含个人公钥keypub和隐私身份信息。车辆v1对packreq进行加密:首先用户利用本地私钥keypri对packreq进行加密,再在密文后添加未加密的个人公钥keypub,最后用户将加密后的真实身份信息和本地生成的公钥通过认证中心对外公布的公钥keyacpub进行加密,secret=keyacpub(keypri(packreq),keypub),式中key(·)表示使用密钥加密。加密完成后用户向认证中心发送加密后的请求包。

其中,车辆用户密钥对生成的要求为:用户的私钥是用户提供的一串数字,这串数字要求提供足够的随机性。任何随机生成的256位二进制数都可以作为用户的私钥,只要该私钥满足不可被推测,不可被重复生成的要求就能成为可用的私钥。在生成私钥后,可以通过椭圆曲线加密算法生成对应的公钥。由于车辆用户参与举报过程不是用公钥表示身份而是用地址,所以需要通过公钥生成地址,并且地址是对所有其他用户可见的。生成地址的方式使用单向加密哈希算法,该算法的特性是,在已知哈希值和原始数据时可以简单的验证生成的哈希值是否是由对应原始数据生成的,但是如果原始数据未知,从哈希值推算原始数据的计算难度非常大,几乎是不可能的。为了对同一用户提供多个地址,用户可以对同一公钥进行多次哈希计算。

a2、认证中心接受请求后,先用私钥keyacpri对请求消息解密。解密后使用第一次解密请求消息的末256位消息对除去后256位的请求消息进行解密。此时可以得到车辆v1的身份信息。认证中心验证该身份的真实性。验证成功后向用户发送身份认证凭证,包含认证中心私钥keyacpri加密的用户公钥keypub和身份认证成功消息,certificate=keyacpub(keypub,message),message为认证中心收集的用户认证过程的描述,例如用户申请的时刻,该身份申请注册的次数等。

其中,用户在步骤s1中的身份信息包括:驾驶证号、身份证号以及对应车辆的发动机号,这些隐私信息一般由用户个人保存,所以可以唯一标识合法用户。

该身份认证凭证密文仅可由认证中心的公钥解密,所以可以作为由认证中心提供的用户身份凭证。认证请求包中的身份凭证与用户个人身份一一对应。如果该身份已经申请过身份认证,则认证中心忽略该请求包。

a3、车辆用户v1生成交易信息。交易发起地址为用户v1利用公钥生成的地址,交易的接收方为智能合约地址。交易包含一定数额的金额,交易申明调用智能合约中的verifier()函数,传入的参数为认证中心向用户发送的身份认证凭证certificate。车辆向区块链网络中的矿工节点发送该条交易,等待该交易成为区块链的一部分。

其中,智能合约设计与部署过程具体为:

b1、智能合约由solidity语言编写。智能合约包含名为verifier的认证方法,该方法接收两个参数,第一个参数是用户的公钥,第二参数是用户由个人私钥加密的身份认证凭证,该凭证就是前文认证中心返回给用户的凭证消息。智能合约首先使用第一个参数提供的用户公钥对传入的第二个参数进行解密,解密后再用函数内置的认证中心公钥进行第二次解密。此时可以看到明文中包含用户的公钥,如果该公钥和第一个参数中的公钥相同则该用户的身份信息有效。除了验证用户的身份有效外,智能合约还需要对用户的地址进行验证,在verifier方法中需要将用户地址与用户公钥计算的哈希值进行匹配,本发明规定同一用户最多拥有三个有效的地址,如果用户的地址也是合法的,则用户身份验证成功。

b2、智能合约的高级语言需要编译为可机器可直接执行的字节码,编译完成后,智能合约需要在“以太坊”部署才能成为区块链中的一部分,智能合约在部署时也会生成账户,该账户与用户个人账户相似,有唯一标识该智能合约的地址,部署智能合约需要“以太坊”节点中的矿工节点将其发布到区块链上。智能合约一旦部署在区块链上后,所有的用户都可以获取该智能合约的代码,所以不存在合约内部内容出现不可见的篡改。所有用户都可以检查合约使用的认证中心公钥的正确性,检查代码的逻辑性是否合理,设置抵押金额是否满足要求等内容。

b3、智能合约部署到区块链上后,用户可以与智能合约进行交互。在用户对自身公钥进行哈希计算后,用户拥有以个人公钥生成的地址,用户以该地址作为交易的发起方,将个人公钥和加密后的身份凭证作为参数调用智能合约中的verifier方法,并将一定数额的以太币(eth)作为抵押添加到该交易中。此时智能合约账户下拥有一条由用户发送的具有一定抵押金额的交易记录,用户提供的抵押金额会存入智能合约账户。verifier方法会对作为参数传入的用户公钥进行adrmax次哈希计算。如果交易发起地址与verifier方法中计算的adrmax个哈希值中有一个相匹配,则继续验证该地址是否为已经失效的地址。如果在智能合约账户中没有与该地址相关的交易,则智能合约创建以该地址为目的交易,将本交易称为“身份注册交易”。“身份注册交易”返还50%之前交易的抵押财产,并且该条交易可以作为用户身份注册成功的消息保存在区块链上,因为用户只有成功验证身份和地址才能得到智能合约返还的抵押金额。在本发明设置的举报机制中,智能合约可以将地址无效化。当用户没有通过身份验证,用户的抵押金会被直接保存在智能合约中。如果用户地址已经获得了“身份注册交易”,智能合约可以添加第二条交易,将该交易称为“身份失效交易”,同样以该用户地址作为交易目的方,但是交易的金额设置为1个wei(以太坊中的金额单位,1eth等于1e18wei),并且智能合约将不再返还用户的押金。如果智能合约中存在金额等于1个wei的交易,则该条交易标志用户地址为无效地址。

b4、智能合约检测到区块上存在该交易后,以该交易传入的certificate作为参数运行verifier()函数。如果该交易中的身份认证凭证有效,智能合约创建“身份注册交易”,该交易的发起方为智能合约,接收方为车辆v1的地址,交易包含规定数量的金额。

车辆v1完成注册后即可开始对车辆vi进行举报,举报过程涉及三个实体:车辆用户、路旁单元rsu(roadsideunit)、矿工节点,车辆用户有一定的计算能力,能够采集道路信息的独立个体,路旁单元rsu相较于车辆拥有更充足的计算资源和通信资源,rsu能够以较高的通信速率扩散区块消息。当用户已经完成了身份注册后,如图4所示,举报过程如下:

t1、rsu生成密钥对(keyrsupub,keyrsupri),对外公布生成的公钥keyrsupub。车辆v1目击违章行为后,采集图像视频信息并本地识别违章车辆的车牌号。车辆v1将违章行为信息封装为举报信息包packrpt。举报信息包中包含违章车辆车牌<川axxxxx>,违章类型<违规占用应急车道>,违章发生的坐标<30.67,104.06>,违章发生时间<14:35>,车辆v1收集的证据文件的哈希值<hash1>。车辆对举报信息包进行加密,加密方式为keyrsupub(keypri(packrpt),keypub)。加密完成后发送到相应的rsu,举报用户为了增加举报的成功率,可以将收集的举报信息无差别的发送给任何可以接收的rsu,相应地需要使用不同的rsu公钥对消息进行加密。

车辆v1采集的图像视频信息作为证据文件保存在本地。

t2、rsu收到来自车辆v1发送的举报信息包后,对举报信息包进行解密。根据举报信息包中提供的车牌信息和违章类型对举报消息进行分类。如图1所示,此时已经收到另外3辆举报车辆对该事件的报告。此时可以对车辆v1发送的举报消息进行可信度计算,再计算被举报人的违章可信度和违章地点违章可信度,最后可获得该举报消息的可信度。

其中,同一分组内来自不同用户的举报信息并不具有相同的可信度,可信度的不同表现为举报消息的组成元素不同。本发明从以下几个方面考虑可信度的计算:

1、被举报车辆的历史违章记录。用印(r)标识被举报车辆的车牌号。由于每个举报事件对应一个被举报车辆的车牌,rsu可以通过查询本地保存的区块链数据获取该车牌在一年内的违章记录,用numh(lp(r))标识被举报车辆的历史违章数量。

2、举报车辆的历史举报记录。用addr(r)表示举报用户的地址,numh(addr(r))表示该举报用户的历史举报数量,timeh(addr(r))表示该用户最后一次举报行为距离现在的时间的计数,以小时为单位计数。超过1个小时计数加1,不足一个小时则忽略。

3、同一分组中其他举报的数量。用num(ej)表示ej分组中的举报数量。

4、举报违章地点的历史举报记录。由于分组中的每个举报消息都包含了违规行为的发生位置,rsu可以本地查询该位置的历史违章发生次数,用numh(vclass(r))表示与r发生位置相近,违法类型相同的其他车辆的历史违章记录数量。

根据以上元素,计算事件分组ej中第q个举报事件rjq的可信度cr(rjq)的方法如下:

其中,α,β,γ分别表示cr(addr(rjq))、cr(lp(rjq))、cr(loc(rjq))对应的归一化参数。

从上式可以看出,可信度主要由三部分组成,第一部分是举报用户的可信度计算,第二部分是被举报用户发生违法行为的可信度,第三部分是违章行为所在地区发生该类型违法行为的可信度。最后需要利用同一举报分组中的举报数量可信度进行调整。

举报用户的可信度计算式为:cr(addr(r))=numh(addr(r))*e-timeh(addr(r)),举报用户的历史举报数量numh(addr(r))越多其可信度也越高,计算可信度时可以规定用户的历史举报消息数量上限以限制可信度值。除了用户的历史举报数量numh(addr(r)),用户上次举报行为与当前举报行为的时间间隔也会影响该用户的可信度,如果用户在当前举报行为前1个小时有举报行为,则举报用户可信度计算公式的第二个因子e-timeh(addr(r))的值为1,否则用户的信誉度会随时间间隔的增加而下降,通过规定timeh(addr(r))的最大值为timehmax,避免时间间隔过大,导致第二个因子e-timeh(addr(r))的值过小的情况。

被举报用户发生违法行为的可信度计算具体为:本发明实施例提出两个假设,用户违章行为可信度高的用户更有可能发生违章行为,违章可信度低的用户更倾向于表现良好。本发明规定同一车最高记录违章次数为vmax,违章可信度计算为对于违章记录较少的用户其违章行为的可信度较低,但是如果违章行为增多,其违章可信度呈指数上升。

违章行为所在地区发生该类型违法行为的可信度计算过程为:

rsu需要查询收集与当前举报消息地理位置相近且时间间隔为tmax以内的举报记录numh(vclass(r))。计算违章行为所在地区发生违章的可信度公式为vclass(r)=vclass(r′m),该式中,r′代表历史违章记录,时间较近且与当前举报违章类型相同的历史记录有更高的权重值。本发明规定地区发生违章的可信度最高为clocmax。

rsu将举报信息放入待发布区块,规定每个区块的举报数量不得超过txmax,所以信用度计算最后乘以分组内的举报数量与每个区块包含的举报数量的比值,对应式中

最后每个举报消息都可以获得一个[0,1]之间的信用度。

t3、rsu对4条举报消息分别计算可信度,rsu最后计算所有接收举报信息的可信度,并将可信度之和最大的举报信息集合放入区块。rsu根据可信度之和计算发布本区块的难度。rsu添加奖励交易,rsu将自己作为“区块奖励交易”的接收方,将可信度作为权重值为每个举报消息的发起地址分配举报奖励。设车辆v1报告的举报消息可信度为0.8,待发布区块中所有举报消息的可信度之和为25则车辆v1收到奖励占该rsu所有“举报奖励交易”金额的3.2%,rsu规定该奖励必须在一定时间后才能使用。

其中,待发布区块的第一条信息为“区块奖励交易”,该交易将产生奖励金额,“区块奖励交易”没有发起方地址,只有接收方也就是rsu的地址。每个区块发布到区块链上后,发布方都得到一定数额的奖励。除了“区块奖励交易”,rsu还会根据之前计算的可信度向区块中的每个举报用户分配奖励,该交易称为“举报奖励交易”,发起方为rsu,接收方为举报用户。“举报奖励交易”需要设置可支出时间,rsu在创建“举报奖励交易”时约束奖励接收方可以使用该奖励的时间,时间规定为从当前区块高度开始,在此区块基础上产生的新区块个数。区块高度是指从区块链第一个区块开始到目的区块的个数。由于区块发布的时间大致是固定的,所以规定用户在一定数目的新区块生成后才能使用奖励可以达到时间约束的效果。设置时间限制的目的是为被举报用户提供对恶意举报发起申诉的时间,避免举报者为了获得奖励而虚构举报信息并立即花费该举报所得。

其中,当前轮次未被选中放入待发布区块的举报消息集合会放在缓存池中等待下一轮的比较,在缓存池中保存的举报消息集合会在一定周期后失效,失效的周期与rsu的存储空间和当前举报消息的接收速率相关,目的是保证rsu不会被无效的举报消息淹没存储空间,并且当缓存池中的举报消息已经被其他节点发布到区块上后也会被丢弃。

rsu在确定了区块内的举报信息后,需要计算该区块发布的难度值。传统pow算法的实现过程为:rsu计算一个满足要求的哈希值hash(prehash,rsuid,time,nonce)≤2targ,rsu将当前区块上最新的区块的头部哈希值,自身id,当前时间和一个随机数做哈希运算,并使得哈希值小于一个当前区块链系统规定的哈希值2targ。rsu可以尝试不同的随机数nonce直到找到满足要求的随机数,该随机数就是rsu工作量的证明。

本发明在引入了pos后可以降低pow算法中的工作难度,引入了pos后rsu计算当前区块难度的方法为:先计算区块中可信度之和此时w的最大值与txmax的值相等。根据可信度计算难度减少量nloss,减少值的计算方法为nloss=int(τ*ln(w*μ)),该式中τ,μ是由区块链系统调整的参数,当区块产生速度过快或过慢时都会改变这两个参数以调整区块生产率,int表示对后面的值取整数。最后区块的难度为targ-nloss,对于任何节点都可以验证区块计算的难度是否正确。rsu再次计算哈希值,穷举获得满足条件的随机数。

t4、所有rsu都会通过计算能力竞争下一个区块的发布权。当rsu发布新的区块后,所有的区块链节点都可以验证该区块的正确性并决定是否转发该区块。当被举报车辆vi在区块中发现本车被举报时首先纠正自身错误行为。此时vi如果对举报消息的真实性存在怀疑,则开始申诉过程。vi向拥有申诉功能的智能合约发起交易,智能合约与验证节点联合完成申诉过程。申诉的结果将以交易的形式保存在区块链中。

如果被举报用户否认存在违章行为则开始违章申诉过程,此过程中称被举报用户为“申诉用户”。申诉过程同样通过智能合约实现,申诉用户首先获取所有举报证据文件,获取的方式可以通过星际文件系统ipfs(inter-planetaryfilesystem)。ipfs是一个分布式文件系统,支持点对点的文件共享。在获得证据文件后,申诉用户首先计算文件的哈希值,确认举报者提供的证据文件与区块链中的摘要是匹配的。用户在获取证据文件后,申诉用户先在本地核查证据文件,如果所有证据都是有效证据,申诉用户出于成本考虑不会再继续申诉过程。

如果证据文件中存在伪证,申诉用户则可以继续进行申诉过程。申诉过程需要其他节点的参与,这些节点也需要通过前文所述的身份认证过程,这些节点不一定是车辆用户,但要求这些节点拥有空闲的计算资源,这些节点称为“证据验证节点”。“证据验证节点”向智能合约发起交易表明自己拥有计算能力。每个智能合约都对应不同的“证据验证节点”集合。申诉用户可以选择多个智能合约完成申诉过程,设用户选择的智能合约集合为{c1,c2,c3,…cj,…cn},用户选择的申诉智能合约数量首先要达到阈值才能成为可信的申诉过程,阈值的大小与当前区块链中举报消息的发布速率有关,当举报消息发布较快时降低阈值以鼓励用户发起申诉行为,检测不实举报用户的存在,维护举报系统的可靠性。在此基础之上用户选择的智能合约越多申诉过程的分布性越好,防止“证据验证节点”串通的能力越强,但是用户申诉的成本也就越高,因为申诉用户需要向智能合约发送一定数量金额作为申诉费用,该费用用于奖励参与验证的节点以及智能合约。

申诉用户选择智能合约集合中的单个智能合约需要分配证据文件给其名下的“证据验证节点”,同一智能合约只会将一个证据文件分配给一个“证据验证节点”,同一智能合约名下的任何两个“证据验证节点”不会有相同的任务。智能合约会随机进行证据分配,申诉用户可以检查智能合约选择“证据验证节点”的随机性。虽然“证据验证节点”可以获得同一智能合约名下的其他节点的地址,但是由于每个节点验证的文件是互不相同的,所以串通并不会影响最终的判断结果。设智能合约cj选择的“证据验证节点”集合为{ver1,ver2,ver3,…verj,…verm},这m个节点各自验证一个证据文件。最后收集所有智能合约中的验证结果。对于同一文件,如果超过半数的“证据验证节点”达成一致结果,则该结果为本次证据文件的验证结果。由于智能合约选择“证据验证节点”的随机性,如果用户想要贿赂“证据验证节点”就需要对选择的智能合约集合中的所有“证据验证节点”进行贿赂,并且用户需要选择达到一定数量的智能合约,所以想要作弊的申诉用户需要提供庞大数量的贿赂金,这几乎是不可能的。

在得到所有证据文件的验证结果后,如果有证据是无效证据,该证据的提供地址会被智能合约无效化,“身份无效化”的方法和步骤s3中相同。身份无效化的用户不能使用得到的奖励金额,因为其他节点不会认同该无效地址的支出交易。如果所有的证据文件都判断为无效证据,申诉用户申诉成功。此时在区块会更新一条交易说明用户之前的被举报消息均为无效举报,交易中需要包含智能合约所提供的证据验证结果。

通过上述实施例可以看出,本发明采用区块链架构实现分布式举报机制。通过认证中心验证用户身份,提高举报用户发布消息的可靠性,同时保护用户的隐私身份。区块链的信息更新方式实现举报消息的实时更新并对违章用户可以起到警告作用。本发明设计的分布式举报信息存储方式避免了中心存储方式的单点失败缺陷,同时将证据提供过程与申诉过程结合,降低了传输证据信息的通信消耗。本发明还引入了举报消息可信度计算方法,一方面间接提高了区块链中信息的吞吐量,另一方面对信息的真实性进行了评估。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1