【技术实现步骤摘要】
一种攻击检测方法、装置及电子设备
本专利技术涉及区块链的攻击检测
,特别是涉及一种攻击检测方法、装置、电子设备及存储介质。
技术介绍
区块链网络中的每一节点都使用同一个算法进行挖矿,这种算法称为共识算法,通常使用的共识算法为POW(Proof-of-Work,工作量证明)算法。其中,挖矿指的是:生成新区块,POW算法指的是:在预设的出块时间间隔内,区块链网络中任何一个节点,如果想生成新区块写入至区块链中,就必须解出该区块链网络预设的工作量证明的难题,最快解题完成的节点,将其计算结果进行全网广播。区块链网络中的其他节点在接收到该计算结果后,都用同样的算法对该计算结果进行验证,如果该区块链网络中有预设数量个节点都验证该计算结果正确,则该节点生成新区块成功,可以将其生成的该新区块写入至区块链中,并获得虚拟货币奖励。从区块链网络中获得的虚拟货币,可以通过交易平台进行交易。在交易过程中,虚拟货币的币价会随着区块数量的变化以及交易量的变化而随时变化。基于POW算法构建的区块链,容易受到51%攻击,这是由于,在基于POW算法的区块链网络中,当节点接收到了从其他节点传来的更 ...
【技术保护点】
1.一种攻击检测方法,其特征在于,应用于基于工作量证明POW算法的区块链网络中的监控节点,所述方法,包括:获取在预设的第一时间间隔内,生成新区块的各个节点的标识信息;所述预设的第一时间间隔为出块时间间隔的预设倍数;根据所述标识信息,确定第一节点;所述第一节点为在该预设的第一时间间隔内,生成新区块最多的节点;计算获取的所述第一节点在所述预设的第一时间间隔内的连续出块率;所述连续出块率为:在所述预设的第一时间间隔内,第一节点生成的新区块数量,与该预设的第一时间间隔内,所述区块链网络生成的新区块的总数量的比值;根据所述连续出块率和预设的第一判定条件,检测所述区块链网络是否遭受到攻击。
【技术特征摘要】
1.一种攻击检测方法,其特征在于,应用于基于工作量证明POW算法的区块链网络中的监控节点,所述方法,包括:获取在预设的第一时间间隔内,生成新区块的各个节点的标识信息;所述预设的第一时间间隔为出块时间间隔的预设倍数;根据所述标识信息,确定第一节点;所述第一节点为在该预设的第一时间间隔内,生成新区块最多的节点;计算获取的所述第一节点在所述预设的第一时间间隔内的连续出块率;所述连续出块率为:在所述预设的第一时间间隔内,第一节点生成的新区块数量,与该预设的第一时间间隔内,所述区块链网络生成的新区块的总数量的比值;根据所述连续出块率和预设的第一判定条件,检测所述区块链网络是否遭受到攻击。2.根据权利要求1所述的方法,其特征在于,所述根据所述预设连续出块率和预设的第一判定条件,检测所述区块链网络是否遭受攻击的步骤,包括:判断所述连续出块率是否为100%,如果是,则判定所述区块链网络,遭受到攻击,并进行第一报警提示。3.根据权利要求2所述的方法,其特征在于,所述方法,还包括:在判断出所述连续出块率不是100%时,判定所述区块链网络,未遭受到攻击;判断所述连续出块率是否大于预设的出块率阈值;当所述连续出块率大于所述预设的出块率阈值时,获取所述区块链网络中流通的虚拟货币的当前币价;获取所述区块链网络中空闲矿机的总算力;所述空闲矿机为所述区块链网络中用于生成新区块的节点;从所述区块链网络中节点的保存信息中,获取所述区块链网络的当前挖矿难度;所述当前挖矿难度是在每增加预设数量个新区块后,根据挖矿难度计算公式计算得到的;所述挖矿难度计算公式为:挖矿难度=当前挖矿难度*(当前增加预设数量个新区块花费的时间/增加预设数量个新区块期望花费的时间);根据所述区块链网络中虚拟货币的当前币价、所述区块链网络中空闲矿机的总算力、及所述区块链网络的当前挖矿难度,计算所述区块链网络的被攻击概率;根据所述连续出块率、所述被攻击概率和预设的第二判定条件,检测所述区块链网络,是否易遭受攻击。4.根据权利要求3所述的方法,其特征在于,所述根据所述区块链网络中虚拟货币的当前币价、所述区块链网络中空闲矿机的总算力、及所述区块链网络的当前挖矿难度,计算所述区块链网络的被攻击概率的步骤,包括:根据所述区块链网络中虚拟货币的当前币价和所述区块链网络的当前挖矿难度,计算所述虚拟货币的当前预估成本:当前预估成本attack_cost=当前挖矿难度*当前币价,计算得到当前攻击所述区块链网络的当前预估成本;根据所述区块链网络中空闲矿机的总算力和所述区块链网络的当前挖矿难度,计算所述区块链中空闲算力占比:空闲算力占比rent=空闲矿机的总算力/当前挖矿难度,计算得到所述区块链网络的空闲算力占比;根据所述当前预估成本和所述空闲算力占比,计算所述区块链网络的被攻击概率:attack_prob=sigmoid(attack_cost,rent)=1/(1+e-rent/attack_cost),计算在从当前时刻开始的预设的第二单位时间内,所述区块链网络的被攻击概率;其中,attack_prob表示所述区块链网络中的被攻击概率,sigmoid(attack_cost,rent)表示参数为所述当前预估成本和所述空闲算力占比的sigmoid函数,所述sigmoid函数用于将变量映射到0~1之间。5.根据权利要求3所述的方法,其特征在于,所述根据所述连续出块率、所述被攻击概率和预设的第二判定条件,检测所述区块链网络,是否易遭受攻击的步骤,包括:当所述连续出块率在预设的第一报警区间内,且所述被攻击概率大于预设的第一概率阈值时,判定所述区块链网络,易遭受攻击,并进行第二报警提示;当所述连续出块率在预设的第二报警区间内,且所述被攻击概率大于预设的第二概率阈值时,判定所述区块链网络,易遭受攻击,并进行第二报警提示;所述第一报警区间,和所述第二报警区间均为开区间;其中,所述预设的第一报警区间的上限是100%,下限为所述预设的第二报警区间的上限;所述第二报警区间的下限为所述出块率阈值...
【专利技术属性】
技术研发人员:赵宇,杨文玉,杜浩,蔡雅兰,
申请(专利权)人:北京金山安全软件有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。