这篇文章2021发布在Cryptography and Security,2022 在juournal of parallel and distributed computing(CCF B)正式发布,结合整理的阅读笔记如下
摘要
物联网应用中的车联网面临两个主要安全问题:(1)IoV的中央服务器可能不足以支持快速增长的连接车辆的集中身份验证,(2)IoV本身可能不够强大,无法抵抗单节点攻击。为了解决这些问题,本文提出了SG-PBFT:一种基于分布式区块链结构的车辆互联网安全高效PBFT共识算法。分布式结构可以减轻中央服务器的压力,并降低单节点攻击的风险,SG-PBFT共识算法通过使用分组计分机制来改进传统的PBFT共识算法,以实现更高的共识效率。实验结果表明,我们的方法可以大大提高共识效率,防止单节点攻击。具体来说,当共识节点数量达到1000个时,我们算法的共识时间仅为最先进的共识算法(PBFT)所需的27%左右,而且我们提议的SG-PBFT用途广泛,可用于其他需要高共识效率的应用场景。
背景
动机
车联网的出现催生了自动化、无人驾驶以及流量服务和效率的进步。车联网通常应用在一个拓扑结构不断变化的无限网络环境中。传统的车联网通过中心服务器连接,尽管结构简单并且易于控制,一旦中心服务器受到攻击,整个系统就会瘫痪。而且,随着网络的结构持续在扩展,中心服务的负担也不断在增加,这很容易导致网络延迟以至于网络崩溃。
车联网中车辆之间的通信是实现一组车辆之间的信息交换和信息共享。该信息包括车辆位置、行驶速度等车辆状态信息,可用于确定道路交通状况,因此身份认证是车辆进行通信的重要过程。当车辆相互通信时,恶意车辆可能会攻击通信过程,车辆和基站也可能受到攻击。此外,恶意车辆可能会发送虚假信息,例如道路前方拥堵,或发送虚假信号表明道路会造成旅行时间的浪费。如果基站受到攻击,攻击者可以篡改、添加和删除基站中的一些数可能会泄露一些用户的隐私信息。因此车辆的可靠性检测是保证车联网系统安全的关键。
为了提高车辆身份认证的安全性,提出了身份认证框架和认证协议来提高车辆之间通信的交互性。然后,成功地提出了基于区块链技术的认证方法。相比之前的方案,使用区块链技术的方法可以更有效地保证用户的安全。因此区块链技术的分布式架构是车联网系统的更好选择。
由于区块链的分布式结构不易出现服务器瓶颈和服务器瘫痪,因此非常适合利用区块链的优势来解决车联网系统中的问题。共识算法是保证区块链一致性的关键方法。 Paxos 算法具有高度容错机制,Paxos协议提出只要系统中的(2f+1)个节点中的(f+1)个无故障,整个系统是容错的,可以保证数据的高度一致性,其中f是总数底层网络中的故障节点。还可以保证数据的强一致性,不会出现由于少数节点宕机、硬件故障、消息丢失、网络分段等异常导致的数据丢失或冲突等问题。这在很大程度上保证了整体活动。但是,在 Paxos 算法中,如果两个提议者依次提出两个编号递增的请求,可能会导致提议到拒绝的死循环,导致 Paxos 无法获得最终结果,从而使系统失活。
另一种广泛使用的区块链共识算法是 PBFT,这个共识算法是基于特定的共识协议,链上的每个节点都可以参与投票。如果反对请求的节点少于(N-1)/3 个(N 为节点总数),他们有权公开信息,算法中基于投票达成共识的时间,本文我们称之为共识时间,大约为2~5秒,但不能满足车联网的实际需求。
贡献
我们在这篇文章为车联网提出了一个新的高效的PBFT共识算法,该机制可以确保车联网中的安全性提高和通讯成本降低,本文主要贡献如下:
1)提出了一个有效的SG-PBFT共识算法,比传统的PBFT更高效,通信成本更低,吞吐量更高,更适合车联网系统。
2)提出了一个“车-服务提供商-路边单元”架构来确保车子在其中的安全性和有序性。
3)在区块链的基础上提出了一个身份认证机制**,这个机制采用区块链技术和加密来确保系统的安全性。
4)通过实验说明我们的解决方案与 PBFT、G-PBFT和 CPBFT进行比较。当节点数量达到 1000 个时,我们的方案中的事务延迟约为 PBFT 的 27%、G-PBFT 的 40% 和 CPBFT 的 31%。在吞吐量方面,我们的解决方案比 PBFT 大 2.67 倍,比 G-PBFT 大 1.75 倍,比 CPBFT 大 2.13 倍。在通信开销方面,我们的方案与 PBFT 相比减少了 75%,与 CPBFT 相比减少了 60%。
本文的其余部分组织如下:第二节介绍了车联网身份认证的相关工作和改进的PBFT;第三节介绍了 PBFT 共识算法;第四节介绍了我们的方案,SG-PBFT;第五节介绍了我们提出的车联网身份认证模型;第六节分析了我们方案的通信开销和安全性;第七节介绍了我们的实证分析;第八节介绍了我们的方案在物联网中的潜在应用;第九节总结了本文并介绍了未来的工作。
相关工作
本节从两个方面介绍相关工作:
(1)车联网中的身份认证方案;
(2)改进的PBFT。
车联网中的身份认证方案主要包括中央服务器架构方案和基于区块链的方案。
A. 车联网中的身份认证方案
基于中央服务器的方案的基本原理主要是基于密码学原理来保证用户和车辆的安全。Wazid等人提出了一种基于雾计算的身份认证密钥管理协议,该协议可应用于 IoV 系统,称为 AKM-IoV,通过在实体之间建立会话密钥来实现车辆之间的安全通信。Li等人提出了 CL-CPPA 协议,该协议能够满足车联网系统对隐私和安全的高要求。Xu等人提出了 SECLASA 协议,该协议是为了在保证车辆安全的同时减少通信开销,采用无证书聚合的解决方案,解决了计算开销大的问题。Walshe等人提出了一种非交互式零知识认证协议,该协议不需要将认证数据存储在设备上,可以节省计算成本。但是这个方案仍需要进一步评估在计算这些哈希值时引入的数据保护过程。Li等人提出了一种移动服务的 PPA 协议,可以提供高效和安全的移动服务。Li等人提出了 CreditCoin 公告,以解决用户身份信息不易可靠转发和缺乏转发能力的问题,在智能交通方面非常有效。Zhu等人采用基于学习的方法来验证移动设备的所有权,并形成了RISKCOG系统,可以在没有网络的环境下使用,并且有效验证用户的身份信息。Jo等人提出了一种两层伪身份认证方法,可以保证数据包几乎不丢失,因此当车辆密度较大时,可以保护车辆和用户的隐私。以上方案都是传统的认证方案,普遍存在中心服务器性能容易产生瓶颈和单点攻击的问题。如果中心服务器被攻击,整个网络可能宕机,后果不堪设想。
B. 区块链技术
因为分布式区块链技术具有数据完整性、不可篡改和隐私保护等优点,许多学者研究了基于区块链的身份认证方案。Yin等人提出了一种方案来实现 MCS 网络中参与车辆之间的安全信息交换,具体来说就是设计了激励机制处理重复任务分配的情况,同时设计了一种算法对车辆的窗口进行排序,以提高车联网安全信息交换的有效协作。Dai等人对物联网进行了深入调查,并为 BCoT 架构提出了建议。Feng等人提出了 BPAS 框架,该框架可以减少对在线中心的依赖,可以实现恶意车辆的动态跟踪和取消,从而更好地保护车辆的隐私。
Dorri等人提出了一种基于区块链的智能汽车生态架构,该解决方案配备了板载存储设备,允许用户决定是否向第三方提供某些信息,因此可以更好地保护用户和车辆的安全。Yang等人提出基于贝叶斯推理验证周围车辆的信息,并通过 RSU 将可信车辆的信息写入区块链,这种基于区块链的认证方案采用 PoW 共识算法,认证效率和计算开销有待提高。Liu等人提出了一种基于区块链的车辆组认证方案,通过将具有较高信任值的 RSU 分组,每个组的成员可以共同验证车辆。
虽然很多学者选择采用区块链技术来解决中心服务器的问题,但很多解决方案都没有考虑到共识算法的效率。共识效率低、通信开销大是此类方案的常见问题。因此一些学者使用改进的 PBFT 共识算法来解决这些问题。在下一部分中,我们将介绍改进的 PBFT 共识算法的相关工作。
C. 改进的PBFT
区块链的分布式架构固然有好处,但是由于PBFT共识算法在实际应用中的一些问题,很多学者在各个方面进行了改进。 PBFT 共识算法的通信开销比较大,不适合动态网络,为此,Zhang等人提出了一种基于分组机制的PBFT共识算法,可以提高交易共识的效率,缩短共识时间,B-M 树由 Merkle 树和 AVL 树组成,B-M树可以实现一种高效的数据查询方式。Lao等人提出了一种基于位置且可扩展的 PBFT 共识算法,因为固定节点的计算能力比移动节点强,成为恶意节点的可能性很小,因此该算法通过选择一个固定且可信的节点作为共识参与者,降低了共识开销,保证了系统的安全性。 Onireti 等人通过为无线网络定义可行区域,减少了 PBFT 共识方案中重复节点的数量,从而降低了系统开销,提高了系统效率。基于 P2P 信任计算模型,Tong 等人提出了一种可以任意扩展的分布式模型,通过将PBFT共识算法与P2P信任计算模型相结合,提高了系统的容错性和系统的可信度。Li等人提出了可扩展的 PBFT (EPBFT),该方法使用可验证的随机函数来选择共识节点,改变一致性协议,简化检查点协议和视图转换协议,使共识算法可以在动态网络中使用,减少通信开销。
与上述工作相比,我们的SG-PBFT共识算法利用区块链技术构建分布式架构,提高身份认证效率,降低车联网环境下的通信开销。它还有助于解决中央服务器容易受到攻击的问题。正如我们在第七节中报告的实验所示,我们的 SG-PBFT 算法可以减少共识时间并提高吞吐量,同时也保证了系统的安全性。
PBFT共识算法
区块链技术涉及各种共识算法。在分布式系统中达成共识依赖于可靠的共识算法。它可以确保最新的区块准确地添加到区块链,并且节点存储的区块链信息是一致的、无分叉的,甚至可以抵抗恶意攻击。
我们可以将区块链的共识算法分为两类:
CFT一种是可信节点之间的共识算法(包括Paxos、Raft及其对应的变体算法)
BFT一种是不可信节点之间的共识算法(包括适用于以PoW、PoS等算法为代表的公链的共识算法,以及适用于以PBFT及其变体算法为代表的联盟链或私有链的共识算法)
由于PBFT共识算法适用于联盟链或私有链,算法更符合车联网的应用范围,具体流程如图:
c对应客户端,0123对应共识节点,0为主节点,3为不干活的节点,对应主节点是根据view判别的。o表示客户端请求,t代表时间戳,i表示对应的节点,v代表当前域编号,n是请求序号,d是请求的哈希值,f为拜占庭节点,σc为客户端消息签名,σp主节点消息签名,σi对应节点的消息签名。
- 客户端节点向主节点发起请求消息。 2. 主节点响应客户端请求后,开始进入预准备阶段。 主节点构造一个预先准备好的消息并对请求消息进行编码并将其广播到所有非主的节点。 3. 从节点接收并验证来自主节点的预准备消息。 如果验证成功,从节点将向其他共识节点发送准备消息。 4. 在验证准备消息后,从节点将提交消息发送给其他共识节点。 当请求达到已提交状态时,它将由节点执行。 5、对于同一个请求,如果客户端节点收到2f+1个相同的返回结果,则认为已经达成共识。
提出方案SG-PBFT
对应伪代码如图
流程如图
在该算法中,o代表客户端请求的操作,c代表客户端自己的标识,m代表客户端的请求,i代表节点,v代表当前域的编号,n是请求的序号, d是请求的哈希值,f是拜占庭节点数,σ代表签名,t代表时间戳。它分为以下七个阶段:
1.我们初始化所有节点。每个节点的得分为 100 分,并将其划分为共识节点集或候选节点集。初始化节点时,所有节点的顺序是随机的,共识节点集将执行共识过程,并且候选节点仅在达成共识时更新其本地状态,但暂时不参与共识过程。系统中有 N 个节点,拜占庭节点的最大数量允许为 f。我们假设有 N/2 个候选节点,共识节点的数量必须满足 CN ≥ 3f +1 以保证系统在任何情况下都能达成协议,其中 CN 是参加共识的节点数量,所以候选节点的数量为 N/2。
2.我们定义了主节点的选择策略当p=v mod CN,p代表主节点,v表示当前域编号。
3.客户端节点初始化请求消息给主节点。
4.当主节点收到来自客户端的请求,开始进入pre-prepare阶段。主节点广播消息给所有从节点,当从节点收到消息会进行验证,通过之后再进入prepare阶段,如果验证失败不会采取任何措施。
5.如果一个节点通过了一条pre-prepare消息,这个节点会进入准备阶段,然后这个节点广播prepare消息,当从节点发送准备消息时,它也会收到其他节点广播的准备消息并进行验证。如果验证通过,则进入响应阶段。
6.如果节点进入响应阶段,节点将验证消息并将结果反馈给主节点。
7. 当主节点收到超过2f+1条相同的确认消息时,认为已经达成共识。然后主节点将确认结果提供给所有节点(包括候选节点),同时更新所有节点的分数。对于判断结果与最终结果一致的节点,分数加1;如果判断结果与最终结果不一致,分数将减少5分。候选集和共识集中的节点每 50 个请求更新一次,得分最低的 m 个节点将从共识集中删除,而是附加到候选列表的末尾,候选集中得分最高的 m 个节点将被追加到共识节点集中,并对这些节点重新编号。到这一步共识过程结束。
车联网身份认证模型
我们的解决方案的网络模型如图 3 所示,该模型包括三个主要实体:车辆、路边单元 (RSU) 和服务提供商 (SP)。
SP主要负责系统参数初始化和车辆登记。车辆将其信息提交给 SP之后,SP 验证其真实性并完成注册。固定在路边的 RSU 使用区块链技术来验证车辆的身份。最后,RSU 广播结果以完成车辆的验证。
车联网身份认证模型方案主要包括系统初始化阶段、车辆登记阶段、认证阶段三个部分。首先,需要对整个系统进行初始化;然后,在发送和接收消息之前,每辆车都需要注册,两项任务均由 SP 完成。最后,RSU 根据共识结果决定是否将车辆信息写入区块链。
1)系统初始化:SP初始化整个系统的参数。初始化过程分为三个阶段:
a. 车辆上的路边单元(OBU)从网络中获取系统参数。 SP选择两个大素数p、q和一个q阶群G。这个群的生成器是非奇异椭圆曲线E上的点P。E是一条非奇异椭圆曲线y2 = x3 + ax + b(mod p) , (a, b ∈Fp , Fp 是椭圆曲线的范围)。
b. SP 选择一个随机数 Ppri 作为系统的私钥,并计算其对应的公钥为 Ppub。
c. SP选择两个哈希函数H1 : {0,1}∗q →Z ∗q 和H2: G → Z∗q.
2)车辆注册:车辆加密所有信息并发给SP,SP生成一个随机数并算出车辆的伪ID。之后,SP加密将其加密并发给车辆完成注册。
a. 每个车辆 Vi 选择一个 IDvi 作为其车辆的身份,然后选择一个密码 PWvi。
b. 车辆将此信息发送给 SP。
c. SP 生成一个随机数 ti,j。 SP 计算 Ti,j 作为车辆的注册时间,加密伪ID得到hi,j,加密私钥得到Si,j。 d. SP 将发送 (Ti,j, Si,j) 给 OBU 和用户。
3)车辆认证:RSU 从 SP 接收车辆注册消息并对其进行验证。 此时,SP 是客户端,RSU 是区块链上的节点。 RSU 通过区块链中的共识算法对其进行验证,以确定是否可以达成共识。 如果 RSU 选择信任车辆,则会授予车辆数字签名, 否则,他们拒绝将车辆信息写入区块链。
然而,传统的共识算法存在共识效率低、算力浪费等问题,因此我们提出了SG-PBFT共识算法来提高认证效率。 在第六节和第七节中,我们将通过实验比较传统 PBFT 算法和本文提出的 SG-PBFT 算法的性能和效率。
通信开销和安全性
A. Communication Overhead Analysis
针对SG-PBFT共识算法在通信开销上的优势,我们做了如下对比计算。
从图1可以看出,PBFT的具体计算过程分为三个阶段。
pre-prepare:该阶段共识网络中的通信次数为(n-1)次。prepare:该阶段共识网络中的通信次数为(n-1)·(n-1)次。
commit:所有节点验证收到的准备消息。
当验证结果为真时,从节点向除自身以外的其他节点发送确认消息,该阶段共识网络中的通信次数为n·(n-1)。因此,传统 PBFT 共识算法在一个共识过程中的通信次数为 2n·(n-1)。
图 2 显示了 PBFT 共识算法的具体计算过程分为三个阶段。让 n 表示节点的总数,n/2 表示共识节点的数量。
pre-prepare:主节点将准备消息广播给所有共识节点,此阶段共识网络中的通信次数为(n/2-1)。
prepare:当验证通过主节点发送的预准备消息时,从节点向其他共识节点发送准备消息,该阶段共识网络的通信次数为(n/2-1)·(n/2-1)。
response:主节点接收来自共识节点的验证消息并进行验证,此阶段共识网络中的通信次数为(n/2-1)。
因此,改进的SG-PBFT共识算法完成一个共识过程的通信次数为(n/2−1)·(n/2+1)。
可以推断,基于G-PBFT算法完成共识所需的通信次数约为(n+3)·n/2。而 CPBFT共识算法需要 n·(n−1) 次才能完成共识。因此我们可以很容易地推断,SG-PBFT 共识算法的通信开销远低于传统的 PBFT 和 CPBFT,虽然我们的 SG-PBFT 共识算法与 G-PBFT 共识算法的通信开销几乎相同,但我们的解决方案比 G-PBFT 更安全。牺牲一点通信开销来换取系统安全是值得的,因为在实际应用中安全更为重要。
B. Safety Analysis
区块链架构的安全性至关重要,一旦区块链受到攻击,将导致用户信息、车辆位置信息等隐私信息的泄露。 系统的安全性分析如下:
1)PBFT的证明
SG-PBFT算法的逻辑证明如下:我们假设N是共识节点的数量,f是拜占庭节点的数量,M是消息的集合,ni是节点 mi 表示一条消息,i 是从 0 到 ∞ 的整数。
N=4
f=1
M = {m0, m1, m2,…,mi,…}
设 Mni 为 ni 收到的消息,因此Mni 可以用以下等式表示:
Mni = {m0ni, m1ni,…,mini,…}
在请求阶段,客户端发送一条消息M给主节点n0,所以我们可以得到如下等式:
Mn0 = { m0n0, m1n0,…,min0,…}
在pre-prepare阶段,主节点n0会广播消息M给所有从节点,如果从节点ni正常工作,那么
Mni = Mn0
此处,我们定义了
if
Mni = Mn0
then
⟨pre−prepared⟩Mni = 1
ohterwise
⟨pre−prepared⟩Mni = 0
其中**⟨pre−prepared⟩ Mni是节点ni对消息M的验证,我们可得
N=4
f=1
N ≥3f + 1
所以,我们得出
其中是⟨pre−prepared⟩**节点ni的pre-prepare消息的验证。
在这个阶段,对任何参与共识的节点当它们发出了一条prepare消息之后,都会收到来自其他节点发送的prepare消息。因此对于节点ni,其中⟨prepared⟩ni当ni是正确的prepare消息个数时,会有如下关系:
那么以下方程总是成立
⟨prepared⟩Mn0 = ⟨prepared⟩Mn1 = ⟨prepared⟩Mn2 = 1
可以得到如下结果
⟨prepared⟩ni ≥2f (i = 0, 1, 2, 3)
在响应阶段,根据⟨prepared⟩ni≥2f,至少节点n0、n1和n2可以正确处理消息M,因此主节点n0将收到消息Mni,满足如下公式:
⟨response⟩ni ≥ 2f + 1
因此,我们确信可以达成共识的安全性。
根据以上证明可知,我们的方案可以保证节点的可靠性,每轮结果的正确性,防止篡改和伪造,抵抗DoS攻击。
2)节点的可信度
当主节点是拜占庭节点时,主节点要么可能向所有共识节点广播不一致的预准备消息,要么不响应客户端请求。因为如果出现这种异常情况,会导致prepare阶段无法达成共识,从而发起视图变更更换主节点。
如果当前节点是恶意主节点,我们的方案会降低主节点的信任度。在后续更新共识节点集合的操作中,恶意主节点被移动到候选节点集合中。因此,可以保证共识节点集中节点的可信度。当共识节点集合中的拜占庭节点数量为f时,由于共识节点集合的总数大于等于3f+1,任何处于prepare和response阶段的节点总能收到大于等于2f一致的消息,因为它不会影响达成共识的过程。综上所述,SG-PBFT共识算法每一轮都能验证,结果可信。
3)防止篡改和伪造
在我们的方案中,车辆使用伪标识、哈希算法和数字签名。此外,区块链采用非对称加密技术和SG-PBFT共识算法来防止数据被篡改。因此,任何没有用户私钥的节点都无法伪造节点的身份和消息的签名,通过使用区块链技术和数字签名,攻击者的伪造成本太高,从而保证了整个系统的可靠性。
4)抵抗DDos攻击
为了抵抗DDoS攻击,我们使用评分机制来选择主节点。在提案之前不会暴露主节点的身份。因为每次共识之后,我们都会调整共识节点集和候选节点集中的节点,重新编号。这样可以保证主节点的身份是隐藏的,敌人无法获取主节点信息,在推荐之前不会公开主节点的身份。因为每次一致性后,我们对一致性节点集中的节点和候选节点集中的节点进行调整和重新编号。这样也是可以保证主节点的身份是隐藏的,敌人无法得到主节点的信息。因此,敌人不能向主节点发送大量无效信息来占用系统资源,我们的方案可以有效抵御 DDoS 攻击,保证系统的安全。
实证分析
在本文中,我们用 C++ 语言模拟了 PBFT、SGPBFT、G-PBFT 和 CPBFT共识算法的性能。 在本实验中,我们将车辆视为区块链中的节点,通过设置不同数量的节点来模拟车联网中不同数量车辆的情况,如果程序能够输出正确的交易结果,我们认为已经达成共识。 这些节点达成的共识意味着车联网中的车辆已经达成共识。 我们将节点的初始得分设置为 100,通过上述算法确定每次共识后每个节点的得分值。 在我们的实验中,我们使用 PC(ThinkPad,i7-5500U 2.4GHz 处理器,8GB 内存)来测试四种共识算法的性能,从交易延迟、吞吐量、通信开销和四种共识算法的安全性四个方面进行测试和分析。
A. 交易延迟
交易时延是指从客户端节点向主节点发送交易请求到客户端收到交易确认消息的时间。我们进行了200次测试,以每10次交易延迟的平均值作为实验数据,从而保证了实验结果的普遍性。图 4 显示了四种共识算法的交易时间延迟
从图 4 可以看出,SG-PBFT 的交易时延明显低于 PBFT、G-PBFT和CPBFT,结果表明SG-PBFT 在交易延迟方面较其他三种方法具有明显优势。出现上述结果的主要原因是我们的方案减少了相互发送的信息量,减少了参与共识的节点数量,我们使用响应和回复阶段来确保每个节点可以处于一致的状态。通过替换提交阶段,减少了事务延迟。
B. 吞吐量
吞吐量是系统在单位时间内完成的事务数。在本实验中,我们设置客户端发送 3000 个请求,并记录不同节点数下每秒完成的事务数,我们使用这种方法来测试事务的吞吐量,图 5 是四种共识算法的吞吐量对比图。
图 5 表明 SG-PBFT 共识算法的吞吐量高于传统的 PBFT、G-PBFT和 CPBFT共识算法。同时,随着节点数量的增加,四种算法的吞吐量均呈现下降趋势,SG-PBFT算法的优势还是很明显的,造成这种现象的主要原因是每笔交易的延迟小于PBFT、G-PBFT和CPBFT共识算法。因此在单位时间内,我们的方案可以完成更多事务,吞吐量高于其他方案。
C. 通信开销
通信开销是指系统中的节点执行共识算法时产生的通信量。 在本实验中,我们分别测试了四种共识算法的单笔交易流量, 图 6 是四种共识算法的单笔交易流量对比图。
图 6 表明,随着共识节点数量的增加,SGPBFT 和 G-PBFT 共识算法的通信开销增长缓慢,但传统 PBFT 和 CPBFT共识算法的通信开销迅速增加。
潜在应用
我们的分布式架构不仅适用于车联网系统,对于其他联网工业应用也适合,例如智能电网,智能制造等。以智能电网为例,图 7 是智能电网结构,它由中央服务器、区域网关和客户端(智能电表)组成,这是一个C/S架构。众所周知,C/S架构的服务器一旦受到恶意攻击,导致崩溃或篡改,整个系统将处于极大的危险之中。在智能电网中,智能电网设备的无线特性容易造成用户隐私泄露。此外,随着智能电网用户电力需求的增加,大量的智能电网服务请求和响应可能会导致网络拥塞问题,进一步增加服务器崩溃的风险,如果智能电网的中央服务器或区域网关受到攻击,则可能导致用户信息泄露或篡改,甚至可能导致整个系统进入瘫痪状态。这会产生非常严重的后果,而且恶意攻击者可能会发起模拟攻击以获得免费服务,甚至可能危及用户的金钱和生命。
我们提出的基于区块链的身份认证机制可以用在智能电网,如图8所示,中心服务器和区域网关可以淘汰。我们可以通过硬件技术赋予智能电表计算能力,将智能电表视为区块链节点,每个智能电表向服务提供商注册身份信息并获得一个私钥,当新的智能电表加入区块链时,链上的其他智能电表应该对即将加入区块链的智能电表的用户信息进行认证。 同时,我们可以使用我们提出的 SGPBFT 共识算法来提高用户认证的效率。
总结和未来工作
在本文中,我们提出了一种基于新型 PBFT的分组记分系统,新的共识算法称为 SG-PBFT, 不仅考虑了共识的效率,还考虑了系统的安全性,我们还根据分数将节点分组,进一步提高了系统共识效率。实验结果表明,SG-PBFT 在事务延迟、吞吐量和通信开销方面均优于 PBFT、G-PBFT 和 C-PBFT。同时,我们利用区块链的完整性、可追溯性、不可篡改和高透明度,将该方案应用于车联网系统的身份认证,我们使用 Vehicle – Service Provider – Roadside Unit 架构来保证整个系统的安全性。
在未来的工作中,我们将研究如何优化节点选择策略,进一步缩短共识时间,提高共识效率,在此基础上,进一步尝试研究利用区块链技术解决车联网系统中恶意车辆引发的网络安全问题,从而为车联网系统提供更加安全高效的服务。