一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的车辆通信方法和装置与流程

2021-11-05 20:24:00 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及一种基于区块链的车辆通信方法和装置。


背景技术:

2.车辆自组网(vanet)通过一种称为车辆间无线访问(wave)的无线介质,在车辆之间以及车辆与路侧单元(rsu)之间提供数据交换及通信。这种通信方式提供了实时的相关信息,有助于提升驾驶员和乘客的安全,并摆脱交通拥堵。车辆间及车辆与rsu之间的高度连通性虽然实现了智能化,但对安全性提出了挑战。vanet中的一些节点旨在实现车辆安全,防止被恶意实体攻击,这些恶意实体会危及车辆、司机和乘客的安全。车辆之间以及车辆与rsu之间的信息交换包括位置、速度、警告信息等,因此也会带来新的隐私挑战。传统的智能汽车安全和隐私机制会由于集中化、缺乏隐私和安全威胁等问题而失效。
3.在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
4.在现有技术中,有人利用阈值认证和群签名的方法解决公共信息可靠性的问题,但并不能解决区块验证过程工作量庞大的问题,有人提出了一种基于联盟区块链的点对点电力交易模型,但容易受到安全攻击。


技术实现要素:

5.有鉴于此,本发明实施例提供一种基于区块链的车辆通信方法和装置,以解决区块验证过程工作量庞大和容易受到安全攻击的技术问题。
6.为实现上述目的,根据本发明实施例的一个方面,提供了一种基于区块链的车辆通信方法,包括:
7.接收车辆发送的通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据;其中,所述签名数据经过所述车辆的公钥对通信信息加密并采用所述车辆的私钥对加密后的通信信息进行签名得到;
8.判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;
9.若是,则返回认证失败的消息;
10.若否,则采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求。
11.可选地,采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求,包括:
12.采用所述车辆的公钥对所述签名数据进行验证;
13.若验证通过,则在区块链网络中广播所述车辆认证通过的消息,向所述车辆发送私钥获取请求,接收所述车辆返回的私钥,根据所述车辆的私钥对验证结果进行解密,从而处理所述通信请求;
14.若验证不通过,则结束。
15.可选地,处理所述通信请求,包括:
16.若所述通信请求的操作类型为查询请求,则判断本地数据库中是否存储有所述通信信息对应的查询结果;若是,则将所述查询结果返回至所述车辆;若否,则从区块链网络中搜索区块,以获取所述通信信息对应的查询结果,并将所述查询结果返回至所述车辆;
17.若所述通信请求的操作类型为存储请求,则将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中。
18.可选地,将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中,包括:
19.根据所述通信信息创建交易,将所述交易写入区块;
20.将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中。
21.可选地,所述区块的区块头结构包括区块标识、交易数量、生成所述区块的时间戳、所述区块链管理器的公钥、所述区块链管理器的签名、当前区块的哈希、上一区块的哈希和默克尔树树根;
22.所述交易的结构包括交易标识、区块链管理器的公钥的哈希、所述车辆的公钥、所述车辆的签名、创建所述交易的时间戳、接收所述通信请求的时间戳和交易载荷。
23.可选地,将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中,包括:
24.步骤a,初始化k=0,k为将区块发送至区块链网络中的其他区块链管理器进行共识的重复次数;
25.步骤b,等待一段退避时间之后,将所述区块发送至区块链网络中的其他区块链管理器进行共识;其中,所述退避时间的最小值是区块链网络中端到端最大延迟时间的两倍;
26.步骤c,若共识通过,则将所述区块追加至所述区块链网络的尾部;
27.若共识不通过,则令k=k 1,并判断更新后的k是否大于次数阈值;若是,则中止共识;若否,则重新计算退避时间,重复执行步骤b和步骤c,直至共识通过。
28.可选地,所述退避时间采用如下方法计算:
29.选择一个从0到2
k

1之间的随机数;
30.将所述随机数乘以区块链网络中端到端最大延迟时间,得到退避时间。
31.可选地,所述方法还包括:
32.接收所述区块链网络中任意一个区块链管理器发送的共识请求;
33.判断所述任意一个区块链管理器的标识是否存在于信任列表中;其中,所述信任列表中记录了已经通过区块验证的区块链管理器的标识;
34.若是,则基于时间戳和公钥验证是否直接批准区块;
35.若否,则向所述信任列表中的任意一个区块链管理器发送查询所述区块链网络中任意一个区块链管理器是否可信的请求,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间戳和公钥验证是否直接批准区块。
36.可选地,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间戳和公钥验证是否直接批准区块,包括:
37.若所述信任列表中的任意一个区块链管理器返回的查询结果是信任所述区块链
网络中任意一个区块链管理器,则基于时间戳和公钥验证是否直接批准区块;
38.若所述信任列表中的任意一个区块链管理器返回的查询结果是不信任所述区块链网络中任意一个区块链管理器,则验证区块上的所有交易。
39.可选地,基于时间戳和公钥验证是否直接批准区块,包括:
40.判断接收所述共识请求的时间戳与所述任意一个区块链管理器生成区块的时间戳的差值是否大于等于第二超时阈值;
41.若是,则验证区块上的所有交易;
42.若否,则采用所述任意一个区块链管理器的公钥验证所述任意一个区块链管理器的签名;若验证通过,则直接批准区块;若验证不通过,则验证区块上的所有交易。
43.另外,根据本发明实施例的另一个方面,提供了一种基于区块链的车辆通信装置,包括:
44.接收模块,用于接收车辆发送的通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据;其中,所述签名数据经过所述车辆的公钥对通信信息加密并采用所述车辆的私钥对加密后的通信信息进行签名得到;
45.处理模块,用于判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;若是,则返回认证失败的消息;若否,则采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求。
46.可选地,所述处理模块还用于:
47.采用所述车辆的公钥对所述签名数据进行验证;
48.若验证通过,则在区块链网络中广播所述车辆认证通过的消息,向所述车辆发送私钥获取请求,接收所述车辆返回的私钥,根据所述车辆的私钥对验证结果进行解密,从而处理所述通信请求;
49.若验证不通过,则结束。
50.可选地,所述处理模块还用于:
51.若所述通信请求的操作类型为查询请求,则判断本地数据库中是否存储有所述通信信息对应的查询结果;若是,则将所述查询结果返回至所述车辆;若否,则从区块链网络中搜索区块,以获取所述通信信息对应的查询结果,并将所述查询结果返回至所述车辆;
52.若所述通信请求的操作类型为存储请求,则将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中。
53.可选地,所述处理模块还用于:
54.根据所述通信信息创建交易,将所述交易写入区块;
55.将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中。
56.可选地,所述区块的区块头结构包括区块标识、交易数量、生成所述区块的时间戳、所述区块链管理器的公钥、所述区块链管理器的签名、当前区块的哈希、上一区块的哈希和默克尔树树根;
57.所述交易的结构包括交易标识、区块链管理器的公钥的哈希、所述车辆的公钥、所述车辆的签名、创建所述交易的时间戳、接收所述通信请求的时间戳和交易载荷。
58.可选地,所述处理模块还用于:
59.步骤a,初始化k=0,k为将区块发送至区块链网络中的其他区块链管理器进行共识的重复次数;
60.步骤b,等待一段退避时间之后,将所述区块发送至区块链网络中的其他区块链管理器进行共识;其中,所述退避时间的最小值是区块链网络中端到端最大延迟时间的两倍;
61.步骤c,若共识通过,则将所述区块追加至所述区块链网络的尾部;
62.若共识不通过,则令k=k 1,并判断更新后的k是否大于次数阈值;若是,则中止共识;若否,则重新计算退避时间,重复执行步骤b和步骤c,直至共识通过。
63.可选地,所述退避时间采用如下方法计算:
64.选择一个从0到2
k

1之间的随机数;
65.将所述随机数乘以区块链网络中端到端最大延迟时间,得到退避时间。
66.可选地,还包括验证模块,用于:
67.接收所述区块链网络中任意一个区块链管理器发送的共识请求;
68.判断所述任意一个区块链管理器的标识是否存在于信任列表中;其中,所述信任列表中记录了已经通过区块验证的区块链管理器的标识;
69.若是,则基于时间戳和公钥验证是否直接批准区块;
70.若否,则向所述信任列表中的任意一个区块链管理器发送查询所述区块链网络中任意一个区块链管理器是否可信的请求,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间戳和公钥验证是否直接批准区块。
71.可选地,所述验证模块还用于:
72.若所述信任列表中的任意一个区块链管理器返回的查询结果是信任所述区块链网络中任意一个区块链管理器,则基于时间戳和公钥验证是否直接批准区块;
73.若所述信任列表中的任意一个区块链管理器返回的查询结果是不信任所述区块链网络中任意一个区块链管理器,则验证区块上的所有交易。
74.可选地,所述验证模块还用于:
75.判断接收所述共识请求的时间戳与所述任意一个区块链管理器生成区块的时间戳的差值是否大于等于第二超时阈值;
76.若是,则验证区块上的所有交易;
77.若否,则采用所述任意一个区块链管理器的公钥验证所述任意一个区块链管理器的签名;若验证通过,则直接批准区块;若验证不通过,则验证区块上的所有交易。
78.根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
79.一个或多个处理器;
80.存储装置,用于存储一个或多个程序,
81.当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
82.根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
83.上述发明中的一个实施例具有如下优点或有益效果:因为采用若当前时间戳与发送通信请求的时间戳的差值小于第一超时阈值,则采用车辆的公钥对车辆进行认证,并根据认证结果处理通信请求的技术手段,所以克服了现有技术中区块验证过程工作量庞大和
容易受到安全攻击的技术问题。本发明实施例通过时间戳和公钥来验证车辆的身份,能够阻止那些用旧时间戳发送请求且携带的是不被公钥识别的签名的车辆,从而不容易受到恶意实体的安全攻击。而且,采用本发明实施例的共识算法和区块验证算法能够实现bm之间的一致性验证和区块验证,还可以在验证区块签名和时间戳后直接批准区块,从而显著减少区块验证的工作量以及减少耗时。
84.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
85.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
86.图1是根据本发明实施例的基于区块链的车辆通信方法的主要流程的示意图;
87.图2是根据本发明实施例的交易结构的示意图;
88.图3是根据本发明实施例的区块头结构的示意图;
89.图4是根据本发明一个可参考实施例的基于区块链的车辆通信方法的主要流程的示意图;
90.图5是根据本发明实施例的基于退避算法进行共识的主要流程的示意图;
91.图6是根据本发明实施例的区块验证过程的主要流程的示意图;
92.图7是根据本发明实施例的基于区块链的车辆通信装置的主要模块的示意图;
93.图8是本发明实施例可以应用于其中的示例性系统架构图;
94.图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
95.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
96.图1是根据本发明实施例的基于区块链的车辆通信方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述基于区块链的车辆通信方法可以包括:
97.步骤101,接收车辆发送的通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据。
98.为了能够通过区块链管理器(blockchain manager,bm)存储或查询区块链网络中的信息,bm首先需要对车辆进行认证,本发明实施例通过车辆密钥对车辆进行认证,准确地识别出有效车辆,防止车辆伪造身份,从而避免受到安全攻击。需要指出的是,bm仅仅是一种边缘设备的替代名称,边缘设备可以是路由器、交换机、集成接入设备、多路复用器以及各种广域网(wan)接入设备,所有bm都是以去中心化方式连接。
99.当需要存储或者查询区块链网络中的信息时,车辆向bm发送通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据。其中,所述签名数据经过所述车辆的公钥对通信信息加密并采用所述车辆的私钥对加密后的通信信息进
行签名得到。
100.本发明实施例旨在通过bm在区块链网络上存储和查询与交通相关的实时信息,所述实时信息由车辆和rsu产生,可以包括交通相关数据、道路状况、过去一段时间内(比如几分钟内或者几小时内)发生的事故、天气状况等。无论是通过bm将信息存储到区块链网络,还是通过bm查询区块链网络上的信息,车辆都必须从密钥生成中心(kgc)获取系统参数k、主密钥sm
k
和部分私钥pp
r
k
i
(partial private key),从而进一步生成公私钥对,bm通过公私钥对识别车辆的身份是否有效。
101.在本发明的实施例中,车辆身份的一部分私钥由kgc以无证书加密方式(比如cl

pkc)生成,然后车辆根据kgc返回的系统参数k、主密钥sm
k
和部分私钥pp
r
k
i
,并结合车辆的身份标识生成车辆的公私钥对,用于对该车辆进行身份认证。
102.为了通过bm在区块链网络上存储或查询实时的通信信息,车辆v
i
需要先通过与kgc通信,生成一个公私钥对。每辆车都配备了一个车载单元(obu)和一组传感器来收集和处理信息,并通过wave与区块链网络进行实时信息通信。每辆车都由身份标识id
i
来进行识别,可选地,id
i
可以由车辆登记号、设备配置、车主信息、车辆制造商信息等信息组合而成。可选地,id
i
可以由车辆登记号、设备配置、车主信息等信息组合而成。可选地,id
i
可以由车辆登记号、车辆制造商信息等信息组合而成。id
i
用于识别车辆身份,本发明实施例对id
i
的组成信息不作限制。
103.可选地,车辆v
i
生成公私钥对的过程包括以下步骤:
104.步骤1),车辆向kgc发送注册请求,所述注册请求携带车辆的标识id
i

105.步骤2),车辆从kgc接收系统参数k、主密钥sm
k
和部分私钥pp
r
k
i
:kgc执行setup()算法,返回系统参数k和主密钥sm
k
;kgc保存sm
k
,并用于创建部分私钥pp
r
k
i
;kgc执行部分私钥生成算法:部分私钥生成算法以k、id
i
和sm
k
作为输入,输出部分私钥pp
r
k
i
,并将其发送给车辆v
i
;kgc将系统参数k、sm
k
和pp
r
k
i
发送给车辆。
106.步骤3),车辆执行秘密值生成算法:秘密值生成算法以k及id
i
作为输入,输出秘密值x
i

107.步骤4),车辆执行私钥生成算法:私钥生成算法以k、pp
r
k
i
和x
i
作为输入,输出私钥p
r
k
i

108.步骤5),车辆执行公钥生成算法:公钥生成算法以主密钥和私钥作为输入,输出公钥p
u
k
i

109.通过上述步骤可以生成车辆的公私钥对。
110.需要指出的是,bm也采用了无证书加密算法来生成其公私钥对,本发明实施例不再赘述。
111.生成公私钥对之后,车辆v
i
采用公钥对通信信息进行加密,然后采用其私钥p
r
k
i
对加密后的信息进行签名,从而得到签名数据。车辆v
i
将其标识id
i
、公钥p
u
k
i
、车辆v
i
向bm发起信息传输的时间戳t1附加到已签名的加密数据中,并创建一个通信请求:
112.query(id
i
,p
u
k
i
,t1,sign(encrypt(通信信息)),查询/存储)
113.可选地,通信请求中还可以进一步携带请求类型,比如查询请求或者存储请求,“存储”或“查询”定义车辆v
i
产生了哪种类型的请求,以使bm根据不同的请求操作进行不同的处理。
114.bm接收到通信请求后,对其进行解析,如果发现通信请求中缺少车辆的公钥,则向车辆返回缺少公钥的提示消息,车辆接收到该消息后,向kgc发送注册请求,然后按照上述步骤生成车辆的公私钥对,再重新生成并发送存储或者查询区块链网络中的信息的请求。
115.步骤102,判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;若是,则执行步骤103;若否,则执行步骤104。
116.bm解析出通信请求之后,从通信请求中获取发送该请求的时间戳,然后判断当前时间戳与发送该请求的时间戳的差值是否大于等于第一超时阈值。其中,所述第一超时阈值可以预先配置。
117.步骤103,返回认证失败的消息。
118.如果当前时间戳与发送所述通信请求的时间戳的差值大于等于第一超时阈值,说该请求已超时,bm向车辆返回认证失败的消息。
119.步骤104,采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求。
120.如果当前时间戳与发送所述通信请求的时间戳的差值小于第一超时阈值,则采用该车辆的公钥对车辆进行认证,认证该车辆是否有效,并将认证结果进行广播,如果认证通过,则处理该车辆发送的通信请求。
121.可选地,步骤104可以包括:采用所述车辆的公钥对所述签名数据进行验证;若验证通过,则在区块链网络中广播所述车辆认证通过的消息,向所述车辆发送私钥获取请求,接收所述车辆返回的私钥,根据所述车辆的私钥对验证结果进行解密,从而处理所述通信请求;若验证不通过,则结束。
122.当车辆试图与bm建立通信连接时,bm用车辆的公钥验证车辆的签名数据,从而认证该车辆是否有效。具体地,bm首先检查t2‑
t1≤δt(其中t2为当前时间戳,δt为第一超时阈值):若检查结果为false,则意味着通信请求由于阻塞而太晚到达bm,车辆v
i
在认证阶段失败,向车辆v
i
返回认证失效的消息;若检查结果为true,则bm使用车辆v
i
的公钥对车辆的签名数据进行验证。如果签名也验证通过,那么说明车辆v
i
是合法有效的,车辆v
i
通过认证,则bm将宣布车辆v
i
是有效的,并在网络中广播此消息。如果签名验证失败,说明车辆v
i
在认证阶段失败,将无法与bm通信,就无法在区块链网络中查询或存储信息。车辆v
i
通过认证之后,bm向车辆请求私钥,bm接收到车辆的私钥后,bm就会采用私钥对公钥的验证结果进行解密,从而处理车辆v
i
发送的通信请求。
123.可选地,处理所述通信请求,包括:若所述通信请求的操作类型为查询请求,则判断本地数据库中是否存储有所述通信信息对应的查询结果;若是,则将所述查询结果返回至所述车辆;若否,则从区块链网络中搜索区块,以获取所述通信信息对应的查询结果,并将所述查询结果返回至所述车辆;若所述通信请求的操作类型为存储请求,则将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中。
124.车辆v
i
通过认证之后,bm检查车辆v
i
产生的是哪种类型的通信请求,比如查询请求或者存储请求。
125.如果通信请求的操作类型是查询请求,如“查询一些区域和道路的实时信息”,则bm会采用私钥对公钥的验证结果进行解密,然后在其本地数据库中搜索有关请求区域和道路的实时信息。需要说明的是,每个bm维护一个本地数据库,以获取有关区域或道路的信
息,维护本地数据库的目的是快速响应请求。如果bm在其本地数据库中找到了所请求的实时信息,则直接将数据发送给车辆v
i
;反之,bm在区块链网络中搜索区块,找到包含请求的区域和道路相关信息的区块,然后将响应转发给车辆v
i
。查询请求的目的是向车辆提供想要移动到的区域的实时信息,驾驶员利用这些实时信息来保证自己的安全,并节省行车时间。
126.如果通信请求的操作类型是存储请求,如“存储一些区域和道路的实时信息”,则bm会采用私钥对公钥的验证结果进行解密,解密后的数据(也就是通信信息)中包含了交通相关的实时信息、道路状况、过去一段时间内是否发生过事故等信息。随后,bm创建一个交易,该交易包含通信信息,然后将交易写入区块(交易集合),并通过共识算法将所述区块更新到区块链网络中。
127.可选地,将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中,包括:根据所述通信信息创建交易,将所述交易写入区块;将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中。解密出通信请求中携带的通信信息之后,bm创建一个交易,所述交易包含了通信信息以及一些额外信息。可选地,如图2所示,所述交易的结构包括交易标识(id)、区块链管理器的公钥的哈希、所述车辆的公钥(发送方公钥)、所述车辆的签名(发送方签名)、创建所述交易的时间戳、接收所述通信请求的时间戳和交易载荷(即通信信息)。交易id是交易的唯一标识,发送方公钥和发送方签名用来记录发送方车辆的详细身份信息(比如车辆登记号、设备配置、车主信息、车辆制造商信息等信息)。然后,bm将交易放到一个区块中,再将区块发送给其他bm进行共识。可选地,如图3所示,所述区块的区块头结构包括区块标识(id)、交易数量、生成所述区块的时间戳、所述区块链管理器的公钥(发送方公钥)、所述区块链管理器的签名(发送方签名)、当前区块的哈希、上一区块的哈希和默克尔树(merkle tree)树根。区块id是区块的唯一标识,交易数量是指单个区块中包含的交易的总数量,发送方公钥和发送方签名用来记录bm的详细身份信息。所有的交易以merkle树的结构进行组织,merkle树树根是对单个区块中所有交易的验证。
128.根据上面所述的各种实施例,可以看出本发明实施例通过若当前时间戳与发送通信请求的时间戳的差值小于第一超时阈值,则采用车辆的公钥对车辆进行认证,并根据认证结果处理通信请求的技术手段,解决了现有技术中容易受到安全攻击的技术问题。本发明实施例通过时间戳和公钥来验证车辆的身份,能够阻止那些用旧时间戳发送请求且携带的是不被公钥识别的签名的车辆,从而不容易受到恶意实体的安全攻击。
129.图4是根据本发明一个可参考实施例的基于区块链的车辆通信方法的主要流程的示意图。作为本发明的又一个实施例,如图4所示,所述基于区块链的车辆通信方法可以包括:
130.步骤401,车辆向bm发送在区块链网络中存储或者查询信息的通信请求。
131.车辆通过bm在区块链网络上存储或者查询与交通相关的实时信息,所述实时信息由车辆和rsu产生,可以包括交通相关数据、道路状况、过去一段时间内(比如几分钟内或者几小时内)发生的事故、天气状况等。
132.步骤402,bm判断通信请求中是否携带车辆的公钥,从而判断车辆是否已生成公私钥对;若否,则执行步骤403;若是,则执行步骤404。
133.bm接收到通信请求后,对其进行解析,判断通信请求中是否携带车辆的公钥。
134.步骤403,bm向车辆返回缺少公钥的提示消息,以使车辆向kgc发送注册请求,然后生成车辆的公私钥对。
135.如果bm发现通信请求中缺少车辆的公钥,则向车辆返回缺少公钥的提示消息,车辆接收到该消息后,向kgc发送注册请求,然后生成车辆的公私钥对,再重新生成并发送存储或者查询区块链网络中的信息的请求。
136.无论是通过bm将信息存储到区块链网络,还是通过bm查询区块链网络上的信息,车辆都必须从kgc获取系统参数k、主密钥sm
k
和部分私钥pp
r
k
i
,从而进一步生成公私钥对,bm通过公私钥对识别车辆的身份是否有效。车辆身份的一部分私钥由kgc以无证书加密方式(比如cl

pkc)生成,然后车辆根据kgc返回的系统参数k、主密钥sm
k
和部分私钥pp
r
k
i
,并结合车辆的身份标识生成车辆的公私钥对,用于对该车辆进行身份认证。车辆生成公私钥对的过程与上文相同,不再赘述。
137.生成公私钥对之后,车辆v
i
采用公钥对通信信息进行加密,然后采用其私钥p
r
k
i
对加密后的信息进行签名,从而得到签名数据。车辆v
i
将其标识id
i
、公钥p
u
k
i
、车辆v
i
向bm发起信息传输的时间戳t1、请求类型(比如查询请求或者存储请求)附加到已签名的加密数据中,并创建一个通信请求:
138.query(id
i
,p
u
k
i
,t1,sign(encrypt(通信信息)),查询/存储)
139.步骤404,bm进行车辆认证检查。具体地,bm判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;若否,则采用该车辆的公钥对车辆进行认证,认证该车辆是否有效。
140.bm解析出通信请求之后,从通信请求中获取发送该请求的时间戳,然后判断当前时间戳与发送该请求的时间戳的差值是否大于等于第一超时阈值。如果当前时间戳与发送所述通信请求的时间戳的差值小于第一超时阈值,则采用该车辆的公钥对车辆进行认证,认证该车辆是否有效,并将认证结果进行广播。
141.步骤405,认证检查是否通过;若是,则执行步骤406;如否,则拒绝该通信请求。
142.步骤406,判断通信请求的操作类型,如果操作类型是查询,则执行步骤407;若操作类型是存储,则执行步骤410。
143.如果车辆认证通过,则继续判断通信请求的操作类型,比如查询请求或者存储请求等。
144.步骤407,bm从其本地数据库中是否搜索到查询结果;若否,则执行步骤408;若是,则执行步骤409。
145.如果通信请求的操作类型是查询请求,如“查询一些区域和道路的实时信息”,则bm会采用私钥对公钥的验证结果进行解密,然后在其本地数据库中搜索有关请求区域和道路的实时信息。需要说明的是,每个bm维护一个本地数据库,以获取有关区域或道路的信息,维护本地数据库的目的是快速响应请求。
146.步骤408,bm从区块链网络中搜索查询结果。
147.如果bm没有在其本地数据库中找到所请求的实时信息,则bm在区块链网络中搜索区块,找到包含请求的区域和道路相关信息的区块,然后将查询结果转发给车辆v
i

148.步骤409,将查询结果返回至车辆。
149.如果bm在其本地数据库中找到了所请求的实时信息,则直接将查询结果发送给车辆。
150.查询请求的目的是向车辆提供想要移动到的区域的实时信息,驾驶员利用这些实时信息来保证自己的安全,并节省行车时间。
151.步骤410,bm创建交易。
152.步骤411,bm创建区块。
153.如果通信请求的操作类型是存储请求,如“存储一些区域和道路的实时信息”,则bm会采用私钥对公钥的验证结果进行解密,解密后的数据(也就是通信信息)中包含了交通相关的实时信息、道路状况、过去一段时间内是否发生过事故等信息。随后,bm创建一个交易,该交易包含通信信息,然后将交易写入区块。
154.步骤412,bm将区块发送到区块链网络中的其他bm进行共识。
155.创建区块后,bm将所述区块发送至区块链网络中的其他bm进行共识,从而将所述区块更新到所述区块链网络中。
156.步骤413,bm是否获得了至少51%的bm批准;若是,则执行步骤414;若否,则拒绝该通信请求。
157.步骤414,将所述区块更新到所述区块链网络中。
158.本发明实施例采用基于许可模型的区块链网络,在该区块链网络中,由于节点的环境比较相近,用户之间是先验已知的,因此节点之间不需要使用基于挑战

响应的共识算法,因为该算法在现有的区块链中生成区块需要耗费大量的时间和计算资源。为此,本发明实施例提出了“基于时间的退避共识算法”来代替以前的pow、pos等共识算法。该共识算法必须保证生成区块的bm是在所有bm中随机选择的,并且它能生成的区块数量是有限的。为了在bm之间引入随机性,每个bm必须在将区块发送给所有其他bm前等待一段随机的退避时间。
159.可选地,将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中,包括:
160.步骤a,初始化k=0,k为将区块发送至区块链网络中的其他区块链管理器进行共识的重复次数;
161.步骤b,等待一段退避时间之后,将所述区块发送至区块链网络中的其他区块链管理器进行共识;其中,所述退避时间的最小值是区块链网络中端到端最大延迟时间的两倍;
162.步骤c,若共识通过,则将所述区块追加至所述区块链网络的尾部;
163.若共识不通过,则令k=k 1,并判断更新后的k是否大于次数阈值;若是,则中止共识;若否,则重新计算退避时间,重复执行步骤b和步骤c,直至共识通过。
164.可选地,所述退避时间采用如下方法计算:
165.选择一个从0到2
k

1之间的随机数;将所述随机数乘以区块链网络中端到端最大延迟时间,得到退避时间。
166.如图5所示,本发明实施例采用了一种类似于退避算法的执行流程,其中bm的退避时间(即延迟发送公式请求的时间)是随机的,最小退避时间是网络中端到端延迟时间w
t
的两倍。之后,bm向区块链网络中所有其他bm发送一个区块共识请求。如果发送方bm获得至少51%的接收方bm批准,那么发送方bm将该区块追加到区块链的末尾,否则k值增加1。初始条
件下,k的值为0,其含义是bm在区块链网络中尝试将当前创建的区块发送给区块链网络中其他bm进行共识的重复次数。如果k值高于k
max
(根据实际需要预先配置),那么发送方bm就会被取消共识;否则,发送方bm会选择一个从0到2
k

1之间的随机数r,并等待退避时间,其中退避时间等于r
×
w
t

167.由于每个bm的退避时间不同,因此bm可能会收到另一个bm创建的新区块,该新区块包含了当前该bm的交易池中的部分或全部交易。在这种情况下,当前该bm必须将这些交易从其交易池中移除,因为这些交易已经被存储到区块链网络中了。所以,要求bm等待退避时间也可以减少同时生成的重复区块的数量。
168.共识周期(发出共识请求后等待响应的时间周期)的默认时长(也是最大时长)是1分钟,最小值等于区块链网络中端到端最大延迟时间的两倍,以确保有足够的时间传播其他节点生成的新区块。因此,在本发明的实施例中,每个bm始终度量其他bm生成区块的频率。如果一个bm是恶意的,则它可能在有限的时间内产生多个区块,生成区块的频率高于预设的频率阈值,因此为了保护正常的bm不受恶意bm影响,需要对bm产生区块的周期进行限制。由于所有的bm都必须得到至少51%的bm批准才能产生区块,所以施加限制是可以实现的:如果bm频繁发送批准请求,那么其他bm就会识别出该bm有问题,并宣布该bm是恶意的。因此,在一个共识周期内只能产生几个区块。
169.需要说明的是,有两个原因可能导致发送方bm无法从其他接收方bm那里获得区块的共识:
170.1)bm在认证过程中失败(其他接收方bm识别出发送方bm的公钥无法解密发送方bm的签名);
171.2)同一区块链网络中的所有bm都会监控其他bm产生区块的频率。如果一个bm频繁产生区块,那么其他bm就会抛弃该bm所产生的区块,并宣布其为一个恶意bm。
172.在本发明的实施例中,车辆进行两种类型的操作:访问和存储。访问操作是车辆通过区块链网络访问实时信息的一种查询方式;存储操作用于车辆在区块链网络上存储实时信息。bm基于访问操作生成交易,并创建区块作为交易的集合,本发明实施例采用了基于时间的退避共识算法实现了bm之间的一致性验证。
173.另外,在本发明一个可参考实施例中基于区块链的车辆通信方法的具体实施内容,在上面所述基于区块链的车辆通信方法中已经详细说明了,故在此重复内容不再说明。
174.为了使区块验证过程更加高效,接收方bm首先检查发送方bm的身份:如果接收方bm已经批准了该发送方此前发送的至少一个区块,则不重复执行严格的区块验证过程,而是在验证区块签名和时间戳后直接批准该区块;否则,如果发送方bm向接收方bm发送的是第一个区块,则采用通常的严格区块验证过程来验证该区块上的所有交易。
175.共识算法描述的是将区块存储在区块链网络中需要多少百分比的共识批准,而区块验证算法描述的是bm如何批准其他bm的区块在区块链网络中存储。本发明实施例采用的方法是每个bm都维护一个信任列表,该信任列表记录了当前bm与其他bm的直接关系,该信任列表的用途是检查发送方bm的区块是否已经被接收方bm验证过。
176.图6是根据本发明实施例的区块验证过程的主要流程的示意图。作为本发明的另一个实施例,如图6所示,所述区块验证过程可以包括:
177.步骤601,接收所述区块链网络中任意一个区块链管理器发送的共识请求。
178.在区块链网络中,每个bm都可以向其他bm发送共识请求,相应地,每个bm都可以接收其他bm发送的共识请求。也就是说,每个bm既可以作为发送方,也可以作为接收方。
179.步骤602,判断所述任意一个区块链管理器的标识是否存在于信任列表中;其中,所述信任列表中记录了已经通过区块验证的区块链管理器的标识;若是,则执行步骤603;若否,则执行步骤604。
180.每个bm维护一个信任列表,在该信任列表中记录了已经通过区块验证的bm标识。例如,下表为bm
x
的信任列表,列表中的bm2、bm3、bm4等都在信任列表中,说明bm
x
已经验证过bm2、bm3、bm4的区块,并且验证结果为验证通过。
181.bm
x
的bm列表bm2bm3bm4……
182.步骤603,基于时间戳和公钥验证是否直接批准区块。
183.以bm
x
和bm
y
这两个bm为例,如果任意一个bm向bm
x
提出了区块共识请求,那么bm
x
首先检查其信任列表中是否包含了发送方bm的标识,如果包含,那么bm
x
在确认时间戳和使用公钥验证签名后,就会直接批准该区块,而不再验证该区块上的交易。
184.bm
x
的bm列表bm
y
的bm列表bm2bm1bm3bm4bm4bm6…………
185.可选地,基于时间戳和公钥验证是否直接批准区块,包括:判断接收所述共识请求的时间戳与所述任意一个区块链管理器生成区块的时间戳的差值是否大于等于第二超时阈值;若是,则验证区块上的所有交易;若否,则采用所述任意一个区块链管理器的公钥验证所述任意一个区块链管理器的签名;若验证通过,则直接批准区块;若验证不通过,则验证区块上的所有交易。在本发明的实施例中,如果时间戳和区块签名都验证通过,那么在验证时间戳和区块签名后直接批准该区块,而不需要再验证区块上的交易,这样可以显著减少区块验证的工作量,减少耗时。
186.步骤604,向所述信任列表中的任意一个区块链管理器发送查询所述区块链网络中任意一个区块链管理器是否可信的请求,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间戳和公钥验证是否直接批准区块。
187.接收方bm的信任列表中不包含发送方bm的标识,那么接收方bm就会向可信邻居节点询问关于发送方bm的信息。以bm
x
和bm
y
这两个bm为例,可信邻居节点就是bm
y
。如果bm
y
的回复是"是的,我已经批准了发送方bm的区块",那么bm
x
在确认时间戳和使用公钥验证签名后,会批准该区块。如果发送方bm的标识既不在bm
x
的信任列表中,也不在其信任邻居节点bm
y
的信任列表中,那么除了时间戳和签名的验证外,bm
x
会验证由发送方bm发送的区块上的所有交易。
188.可选地,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间
戳和公钥验证是否直接批准区块,包括:若所述信任列表中的任意一个区块链管理器返回的查询结果是信任所述区块链网络中任意一个区块链管理器,则基于时间戳和公钥验证是否直接批准区块;若所述信任列表中的任意一个区块链管理器返回的查询结果是不信任所述区块链网络中任意一个区块链管理器,则验证区块上的所有交易。
189.与现有技术不同的是,本发明实施例是在一个区块的基础上建立的信任,因为如果接收方bm此前验证了发送方bm的一个区块,那么就证明这两个bm都是受信任的区块链网络的一部分;如果接收方bm没有验证过发送方bm的区块,那么接收方bm就会检查其信任邻居节点bm是否已经验证过发送方bm的至少一个区块。由于区块是一个交易的集合,如果每次都验证区块上的所有交易,那么就会消耗大量的时间,本发明实施例通过维护信任列表,如果接收方bm已经批准了该发送方bm此前发送的至少一个区块(会将发送方bm的标识记录在信任列表中),则不重复执行严格的区块验证过程,而是在验证区块签名和时间戳后直接批准该区块,这样可以显著减少区块验证的工作量,减少耗时。
190.需要指出的是,本发明实施例之所以有效,是因为使用了发送方bm的公钥验证了其签名,并检查了区块的时间戳。验证发送方签名是因为它能识别发送方bm是否有效,检查时间戳是因为在大多数情况下,过时区块或恶意区块会延迟到达。在验证了发送方签名和时间戳之后,如果不通过或者不在列表中,就会验证当前区块上的所有交易,如果该区块中存储的所有交易都是有效的,则说明区块是有效的。
191.另外,在本发明一个可参考实施例中基于区块链的车辆通信方法的具体实施内容,在上面所述基于区块链的车辆通信方法中已经详细说明了,故在此重复内容不再说明。
192.图7是根据本发明实施例的基于区块链的车辆通信装置的主要模块的示意图,如图7所示,所述基于区块链的车辆通信装置700包括接收模块701和处理模块702;其中,接收模块701用于接收车辆发送的通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据;其中,所述签名数据经过所述车辆的公钥对通信信息加密并采用所述车辆的私钥对加密后的通信信息进行签名得到;处理模块702用于判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;若是,则返回认证失败的消息;若否,则采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求。
193.可选地,所述处理模块702还用于:
194.采用所述车辆的公钥对所述签名数据进行验证;
195.若验证通过,则在区块链网络中广播所述车辆认证通过的消息,向所述车辆发送私钥获取请求,接收所述车辆返回的私钥,根据所述车辆的私钥对验证结果进行解密,从而处理所述通信请求;
196.若验证不通过,则结束。
197.可选地,所述处理模块702还用于:
198.若所述通信请求的操作类型为查询请求,则判断本地数据库中是否存储有所述通信信息对应的查询结果;若是,则将所述查询结果返回至所述车辆;若否,则从区块链网络中搜索区块,以获取所述通信信息对应的查询结果,并将所述查询结果返回至所述车辆;
199.若所述通信请求的操作类型为存储请求,则将所述通信信息写入区块,并通过共识算法将所述区块更新到区块链网络中。
200.可选地,所述处理模块702还用于:
201.根据所述通信信息创建交易,将所述交易写入区块;
202.将所述区块发送至区块链网络中的其他区块链管理器进行共识,从而将所述区块更新到所述区块链网络中。
203.可选地,所述区块的区块头结构包括区块标识、交易数量、生成所述区块的时间戳、所述区块链管理器的公钥、所述区块链管理器的签名、当前区块的哈希、上一区块的哈希和默克尔树树根;
204.所述交易的结构包括交易标识、区块链管理器的公钥的哈希、所述车辆的公钥、所述车辆的签名、创建所述交易的时间戳、接收所述通信请求的时间戳和交易载荷。
205.可选地,所述处理模块702还用于:
206.步骤a,初始化k=0,k为将区块发送至区块链网络中的其他区块链管理器进行共识的重复次数;
207.步骤b,等待一段退避时间之后,将所述区块发送至区块链网络中的其他区块链管理器进行共识;其中,所述退避时间的最小值是区块链网络中端到端最大延迟时间的两倍;
208.步骤c,若共识通过,则将所述区块追加至所述区块链网络的尾部;
209.若共识不通过,则令k=k 1,并判断更新后的k是否大于次数阈值;若是,则中止共识;若否,则重新计算退避时间,重复执行步骤b和步骤c,直至共识通过。
210.可选地,所述退避时间采用如下方法计算:
211.选择一个从0到2
k

1之间的随机数;
212.将所述随机数乘以区块链网络中端到端最大延迟时间,得到退避时间。
213.可选地,还包括验证模块703,用于:
214.接收所述区块链网络中任意一个区块链管理器发送的共识请求;
215.判断所述任意一个区块链管理器的标识是否存在于信任列表中;其中,所述信任列表中记录了已经通过区块验证的区块链管理器的标识;
216.若是,则基于时间戳和公钥验证是否直接批准区块;
217.若否,则向所述信任列表中的任意一个区块链管理器发送查询所述区块链网络中任意一个区块链管理器是否可信的请求,基于所述信任列表中的任意一个区块链管理器返回的查询结果以及时间戳和公钥验证是否直接批准区块。
218.可选地,所述验证模块703还用于:
219.若所述信任列表中的任意一个区块链管理器返回的查询结果是信任所述区块链网络中任意一个区块链管理器,则基于时间戳和公钥验证是否直接批准区块;
220.若所述信任列表中的任意一个区块链管理器返回的查询结果是不信任所述区块链网络中任意一个区块链管理器,则验证区块上的所有交易。
221.可选地,所述验证模块703还用于:
222.判断接收所述共识请求的时间戳与所述任意一个区块链管理器生成区块的时间戳的差值是否大于等于第二超时阈值;
223.若是,则验证区块上的所有交易;
224.若否,则采用所述任意一个区块链管理器的公钥验证所述任意一个区块链管理器的签名;若验证通过,则直接批准区块;若验证不通过,则验证区块上的所有交易。
225.需要说明的是,在本发明所述基于区块链的车辆通信装置的具体实施内容,在上面所述基于区块链的车辆通信方法中已经详细说明了,故在此重复内容不再说明。
226.图8示出了可以应用本发明实施例的基于区块链的车辆通信方法或基于区块链的车辆通信装置的示例性系统架构800。
227.如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
228.用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
229.终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
230.服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
231.需要说明的是,本发明实施例所提供的基于区块链的车辆通信方法一般由服务器805执行,相应地,所述基于区块链的车辆通信装置一般设置在服务器805中。本发明实施例所提供的基于区块链的车辆通信方法也可以由终端设备801、802、803执行,相应地,所述基于区块链的车辆通信装置可以设置在终端设备801、802、803中。
232.应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
233.下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
234.如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram 903中,还存储有系统900操作所需的各种程序和数据。cpu 901、rom 902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
235.以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
236.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸
介质911被安装。在该计算机程序被中央处理单元(cpu)901执行时,执行本发明的系统中限定的上述功能。
237.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
238.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
239.描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、处理模块和验证模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
240.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:接收车辆发送的通信请求,所述通信请求携带所述车辆的标识、公钥、发送所述通信请求的时间戳和签名数据;其中,所述签名数据经过所述车辆的公钥对通信信息加密并采用所述车辆的私钥对加密后的通信信息进行签名得到;判断当前时间戳与发送所述通信请求的时间戳的差值是否大于等于第一超时阈值;若是,则返回认证失败的消息;若否,则采用所述车辆的公钥对所述车辆进行认证,并根据认证结果处理所述通信请求。
241.根据本发明实施例的技术方案,因为采用若当前时间戳与发送通信请求的时间戳的差值小于第一超时阈值,则采用车辆的公钥对车辆进行认证,并根据认证结果处理通信请求的技术手段,所以克服了现有技术中区块验证过程工作量庞大和容易受到安全攻击的技术问题。本发明实施例通过时间戳和公钥来验证车辆的身份,能够阻止那些用旧时间戳发送请求且携带的是不被公钥识别的签名的车辆,从而不容易受到恶意实体的安全攻击。而且,采用本发明实施例的共识算法和区块验证算法能够实现bm之间的一致性验证和区块验证,还可以在验证区块签名和时间戳后直接批准区块,从而显著减少区块验证的工作量以及减少耗时。
242.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献