没有合适的资源?快使用搜索试试~ 我知道了~
基于改进PBFT算法防御区块链中sybil攻击的研究.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 128 浏览量
2022-05-31
08:10:47
上传
评论
收藏 314KB DOCX 举报
温馨提示
试读
22页
基于改进PBFT算法防御区块链中sybil攻击的研究.docx
资源推荐
资源详情
资源评论
1 引言
自 年比特币问世以来,电子加密货币已成为当今社会的热点话题。作
为电子加密货币底层支撑技术的区块链
也进入了大众视野并得到了广泛关注。
目前,区块链
被应用在金融、物联网
和贸易管理等多种场景中,这对区块链
的
安全性提出了更高的要求,要使区块链
真正得到实际应用,解决其安全性是首
要条件
。已经出现的智能合约代码漏洞
、自私挖矿
、攻击
等安全
问题对区块链
的存在与发展带来了危害。
区块链
的网络架构一般采用点对点( )网络架构,所有
节点的地位都是对等的,并且以拓扑结构相互连通,节点之间采用中继转发的
模式进行通信
。由于区块链
采用 的网络架构,因此更容易遭受 攻击,
这种攻击发生在恶意节点伪造多个虚假节点身份加入 区块链
网络的过程中。例
如,共识节点进行投票的过程中, 节点为了谋取利益故意投票反对正确的
共识结果,从而妨碍区块链
中的节点达成共识。此外, 攻击也可以破坏数
据的冗余机制,恶意节点通过伪造多个虚假节点,将之前需要备份到多个节点
的数据备份到了同一个恶意节点,严重破坏了分布式存储系统的安全性和可靠
性。
目前,区块链
中的 攻击通常配合 攻击共同发起。当区块链
中
的正常节点受到攻击时,无论是发出的还是接收的请求信息都可能被 节点
截获并进行篡改,如果正常节点收到的信息是被 节点篡改过的,就无法进
行正常的共识过程, 攻击对区块链
技术有极大的危害。本文针对防御区块
链
中的 攻击开展研究,主要贡献如下。
针对 攻击的特点,在区块链
网络中建立信誉模型来计算各共识节点
的信誉值,借鉴权益证明()引入币龄的概念,通过币龄大
小的关系降低了计算机进行 计算的难度
!
。将共识节点的信誉值与共识节
点的投票权重相对应,各节点的信誉值不同,其拥有的话语权也不同,在共识
过程中各节点根据投票权重来达成共识。
对实用拜占庭容错("#$"%&&'&)算法进
行改进,根据共识节点的信誉值选出信誉值最高的当前节点作为主节点
。共
识协议中增加了 (( 阶段,不仅保证了节点间仍能正常达成共识,而且
减少了节点间通信的次数。
对改进的共识协议进行形式化证明,验证共识协议的安全性,通过实验
证明改进的共识协议仍是安全的。
2 相关研究
) 攻击
*''等
+
在 网络系统的应用中提出 攻击的存在,认为如果网
络中没有一个集中式认证机构,很可能会出现 攻击。现阶段,大型
系统在处理远程攻击或者系统故障时,大多采用数据冗余措施来防御这些安全
威胁,然而如果有一个恶意节点伪造出多个节点身份,同时对外宣称都是正常
节点,那么这个恶意节点将会破坏系统的数据冗余机制。
如图
所示, 攻击是指攻击者通过创建多个虚假身份加入 网络,
并使用这些 节点来获得不成比例的影响,从而为自身谋取不正当的利益 。
攻击不仅会破坏对等网络中资源共享的安全性、消耗正常节点的计算资源,
严重时甚至会控制整个网络系统,造成更大的危害。
图 1
图 1sybil 攻击
当前针对 攻击防御和检测的方法主要分为 类:基于图的方法、基于
机器学习的方法、手动验证和传统防御方法
。其中,基于图的方法
,
是利
用社交网络信息来识别 节点,但这些方法都依赖 节点和正常节点的
连接是有限的这一假设,因此这类方法的扩展性很差。基于机器学习的方法
是从节点的行为和日志中提取特征来区分正常节点和 节点,但这类
方法是根据已知 节点的行为来检测未知 节点,因此 节点可以通
过改变不利于自身的行为来轻松地逃避检测。手动验证的方法是给经过人工验
证的社交网络账户设置特别标志,拥有这样标志的用户发布的内容最有可能是
真实的,但这种方法不仅验证效率低,也不适用于拥有众多对等节点的 网
络。传统防御 攻击的方法是通过引入可信任的权威认证机构来对加入网络
的节点进行认证,这种方法同样不适用于没有集中式认证机构的分布式系统,
并且 #) 版本中采用 -.(' )作为证书的颁发机构,
节点之间通信使用的公私钥由 -. 提供,如果 -. 服务出现故障,那么整个系统
都会出现问题,因此对于去中心化的区块链
系统来说扩展性差。
)实用拜占庭容错算法
"#$ 算法由 - 和 /0 提出
!
,解决了 "#$ 算法效率差的问题,并
且算法的复杂度由指数级降为多项式级,使其可以应用于需要处理大量事件但
吞吐量不大的系统。"#$ 作为经典的 "#$ 状态机副本复制算法和基于投票的
主流算法,同时保证了安全性和活性。
安全性:在恶意节点数量不超过 N−1312 的情况下,副本节点的复制服
务能够满足线性一致性。
活性:所有客户端都会收到针对他们请求的回复,使用弱同步假设保证在
一定时间内传递消息规避 #/(# /& &)不可能性的结果。
在 "#$ 算法中,共识节点发送的消息都必须由节点进行签名,其他节点
以此验证消息的真伪。该算法的共识过程主要分为 个阶段:预准备、准备和
提交。如果收到超过 N−1312 不同节点的同意消息,则提交的交易信息是有
效的。在使用 "#$ 算法作为共识算法的区块链
网络中,1 个节点可以包含 个
拜占庭恶意节点,其中 f≤N−13312。也就是说, 145,因此 "#$ 算
法要达成共识,需要至少 5 个节点将共识信息添加到分布式账本中。
由于 "#$ 算法是分布式系统中达成共识一致性的一种性能良好的解决方
案,增强了分布式环境下数据和系统服务的可用性
+
,因此 "#$ 算法在区块链
中得到了广泛的应用。王海勇等
提出在 "#$算法中引入投票机制,以监督
生 产 节 点 诚 实 工 作 。 6&7 等
,
提 出 了 基 于 信 用 授 权 的 拜 占 庭 容 错
(-*"#$8878"%&&'&)算法,通过投票奖惩和
信用评估共识过程中每个节点的行为。文献
提出了一种高性能、可扩展的拜
占 庭 容 错 ( "#$ 7 (& &8 "%&& '
&)算法,在正常情况下可将算法的复杂度降到 9:&。在 # 项目
)! 版本和 &87
项目中都使用 "#$ 作为核心的共识算法。然而,
上述研究在防御恶意节点方面作用有限,缺乏对不同参与节点分配不同话语权
的考虑。
在 "#$ 共识算法下关于防御 攻击的研究中,.; 等
将信誉系统与
分布式一致性协议相结合,引入声誉模块 <-& 放置在 "#$ 等各种共识协议
上,对 攻击有很强的抵抗能力。闵新平等
提出了许可链多中心动态共识
机制, 并且设计了 一种多主 节点的 "#$ 算法(="#$('(&8
"%&&'&),通过安全性分析与证明,许可链多中心动态共识
机制可保证交易不可篡改,同时预防 攻击。> &7 等
利用区块链
的不可
篡改性提出了一种 &8的 "#$算法,旨在减少共识确认的时延,
安全性分析表明,其能够有效防御区块链
中的双花攻击和 攻击。
)信誉模型
在当前的研究工作中, 网络中已经实现了各种不同的信誉系统。实现
电子商务等的信誉系统需要可靠的中央服务器,用来记录用户的历史行为并进
行信誉评级。而有些信誉系统则使用分布式数据库,网络中所有节点的地位都
是对等的并且都能实时更新本地副本,使用这种信誉系统的节点只记录与其发
生信息交互的对等节点的信誉值。
?&等
提出了一种对分布式排名的信誉系统 *<& 进行结构优化的方
法,提高了 *<& 的性能,但容易受恶意节点共谋攻击的影响。 等
!
对
.' & 进行改进,通过防止不受信任的文件传播来增加信誉,并减少恶
意节点的集体欺骗行为。@' 等
+
在 网络上实现了集中式服务器模型,
确保网络中的所有节点都可以访问最新数据且不要求网络中的所有节点使用信
誉服务,但该方案的前提是网络中不存在恶意节点,所以未能解决恶意节点可
能串通来增加其自身信誉值以便从系统中获利的可能性。黄建华等
提出了基于
信任度证明的共识机制($'),解决了权益证明机制中存在的
易受贿赂攻击、币龄累积攻击,以及工作量证明机制中存在的自私挖矿等问题,
但是对区块链
中存在的 攻击没有提出很好的解决方案。
)网络安全协议的形式化证明与分析
在网络安全协议的形式化证明与分析中,安全协议的分析方法主要包括模
态逻辑技术、定理证明和模型检测技术
,
。其中,模态逻辑技术是一种比较重要
的安全协议分析方法。模态逻辑用命题假设和推理规则来表示主体对消息的知
识或信仰,运用推理规则可以从已知的知识和信仰推导出新的知识和信仰
。
在总结和完善 ".1("'A.8&818 ()逻辑和其他类 ".1
逻辑缺点和不足的基础上发展出了 B9(0&B&9 )逻辑,它的
出现也标志着模态逻辑在安全协议的分析方法中走向成熟。B9 逻辑不仅拥有
规范的模态理论语义和极其出色的扩展能力,还建立了完备的理论模型和详细
的计算模型,消除了在理解模态逻辑形式化表达式含义的过程中可能存在的歧
义,通过规范的理论语义可以更好地理解协议消息所要表达的真正含义。
3 共识算法的改进
在本文改进的 "#$ 算法中,通过共识节点的可信状态选出一个信誉值最
高的节点作为主节点
。由于在 "#$ 共识过程中,有 个阶段需要传输的网
络消息数为 O(n2)9:&,造成了很大的网络开销,因此在改进的共识算法中增
加了 (( 阶段来减少节点间通信的次数。每轮共识过程中主节点
会生
成一个新区块并广播到所有的共识节点,同时参与共识的节点依据信誉模型计
算节点的信誉值,依据信誉值为共识节点赋予不同的话语权。在达成共识的投
票过程中,各节点拥有不同的投票权重,信誉值高的节点拥有更大的投票权重,
而恶意节点由于信誉值低拥有很小的投票权重甚至没有投票权重,因此可以杜
绝恶意节点对投票结果的干扰。本文的全局变量参数如表
所示。
表 1全局变量参数
变量参数 符号
共识节点的数量
1
主节点
节点信誉值
<
共识轮次
可信状态
$
变量参数 符号
节点的信誉值总和
<
0
信誉阈值
<
8
新窗口打开|下载
CSV
)系统模型
本文假设在区块链
系统中有 1个共识节点 CD
)))
1
E,每轮共识过程
都存在一个主节点
,所有共识节点把接收的事务信息先缓存到本地,同时主
节点
F将客户端发来的有效交易事务打包到一个区块中。如果新区块被大多数
共识节点验证通过,则认为它是有效的,该区块将被添加到 区块链
中。如果没
有被大多数共识节点验证通过,那么这个区块被舍弃。在区块链
系统中对 "#$
算法进行改进,将共识节点的投票权重与所拥有的信誉值相对应,每个共识节
点 都 维 护 更 新 一 个 共 识 节 点 信 息 表 ( -1G/&&' &8 &(&
),如表
所示。
表 2共识节点信息
节点序号 邻接节点集合 信誉值 可信状态 节点 G*
DE ) ;;;
DE ) ;;;
DE ) ;;;
DE ) ;;;
新窗口打开|下载
CSV
-1G/包含当前区块链
系统中与本节点进行过信息交互的邻居节点的集合、
信誉值、可信状态以及节点的 G*,其中每个节点随机选择邻居节点建立连接
。及时更新和维护共识节点的信息列表非常重要,关系到节点的信誉值和节点
拥有的不同话语权,将所有节点的信息列表的初始值设为相同值。
)建立信誉模型
信誉模型用来计算每个节点的信誉值,而信誉值由共识过程中节点的行为
决定。信誉模型作为共识协议的一部分,可以在每个参与共识的节点中执行,
并且信誉值是独立计算的,可以与共识消息进行同步广播。在改进的共识算法
中,设定的信誉值 < 是 ~ 的实数,信誉值越大,可信度越高。对于系统新添
剩余21页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3675
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功