首页 / 专利库 / 专利权 / 费用 / 手续费 / 防攻击方法、设备和存储介质

防攻击方法、设备和存储介质

阅读:787发布:2020-05-16

专利汇可以提供防攻击方法、设备和存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供一种防攻击方法、设备和存储介质,该方法包括:解析待存入内存池的第一交易,以获取第一交易的签名地址;根据签名地址获取相应账户的余额;判断余额是否不小于第一交易的 手续费 :否,则生成错误信息并上报,删除第一交易;是,则将第一交易存入内存池。本 申请 通过在将交易存入内存池之前解析出地址以获取账户余额,判断余额是否足以支付手续费,从而过滤账户余额不足的交易,保障了内存池不会因缓存账户余额不足以缴纳手续费的交易而拥堵。,下面是防攻击方法、设备和存储介质专利的具体信息内容。

1.一种防攻击方法,其特征在于,包括:
解析待存入内存池的第一交易,以获取所述第一交易的签名地址;
根据所述签名地址获取相应账户的余额;
判断所述余额是否不小于所述第一交易的手续费
否,则生成错误信息并上报,删除所述第一交易;
是,则将所述第一交易存入内存池。
2.根据权利要求1所述的方法,其特征在于,所述解析待存入内存池的第一交易,以获取所述第一交易的签名地址包括:
检测所述第一交易是否交易组:
否,则解析所述第一交易以获取所述第一交易的第一签名地址;
是,则根据交易组结构展开所述第一交易,得到若干笔第二交易;以及,解析位于交易组头部的所述第二交易以获取第二签名地址。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
监测所述错误信息的生成频率是否超过第一阈值
是,则检测是否存在第一地址发送非法交易的频率超过第二阈值:
是,则将所述第一地址加入黑名单;
其中,所述非法交易为账户余额不足以支付手续费的交易。
4.根据权利要求3所述的方法,其特征在于,所述根据所述签名地址获取相应账户的余额之前还包括:
判断所述签名地址是否在所述黑名单中:是,则删除所述第一交易。
5.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-4中任一项所述的方法。
6.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。

说明书全文

防攻击方法、设备和存储介质

技术领域

[0001] 本申请涉及链技术领域,具体涉及一种防攻击方法、设备和存储介质。

背景技术

[0002] 当前的区块链系统中,区块链节点在执行交易之前不检测对该交易签名的账户是否有足够的余额支付手续费,而是在执行交易时扣除手续费,若扣除失败,则该笔交易执行失败。
[0003] 基于上述机制,网络中的攻击者可以通过余额不足的账户签名生成大量账户余额不足以缴纳手续费的交易并发送到区块链网络中以进行攻击。这些交易可以顺利进入到内存池,并被打包到区块中,直至被执行时才检测出手续费不足。当攻击者大量发送这类交易时,会造成内存池拥堵。发明内容
[0004] 鉴于现有技术中的上述缺陷或不足,期望提供一种避免内存池因缓存大量账户余额不足以缴纳手续费的交易而拥堵的防攻击方法、设备和存储介质。
[0005] 第一方面,本发明提供一种防攻击方法,包括:
[0006] 解析待存入内存池的第一交易,以获取第一交易的签名地址;
[0007] 根据签名地址获取相应账户的余额;
[0008] 判断余额是否不小于第一交易的手续费:
[0009] 否,则生成错误信息并上报,删除第一交易;
[0010] 是,则将第一交易存入内存池。
[0011] 第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的防攻击方法。
[0012] 第三方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的防攻击方法。
[0013] 本发明诸多实施例提供的防攻击方法、设备和存储介质通过在将交易存入内存池之前解析出地址以获取账户余额,判断余额是否足以支付手续费,从而过滤账户余额不足的交易,保障了内存池不会因缓存账户余额不足以缴纳手续费的交易而拥堵;
[0014] 本发明一些实施例提供的防攻击方法、设备和存储介质进一步通过将高频发送账户余额不足以缴纳手续费的交易的地址加入黑名单,并直接删除黑名单中地址发送的交易,进一步增强防护,提升攻击者的攻击成本。附图说明
[0015] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0016] 图1为本发明一实施例提供的一种防攻击方法的流程图
[0017] 图2为图1所示方法中步骤S11的一种实施方式的流程图。
[0018] 图3为图1所示方法的一种优选实施方式的流程图。
[0019] 图4为图3所示方法的一种优选实施方式的流程图。
[0020] 图5为本发明一实施例提供的一种设备的结构示意图。

具体实施方式

[0021] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
[0022] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0023] 图1为本发明一实施例提供的一种防攻击方法的流程图。
[0024] 如图1所示,在本实施例中,本发明提供一种防攻击方法,包括:
[0025] S11:解析待存入内存池的第一交易,以获取第一交易的签名地址;
[0026] S14:根据签名地址获取相应账户的余额;
[0027] S15:判断余额是否不小于第一交易的手续费:
[0028] 否,则执行步骤S16:生成错误信息并上报,删除第一交易;
[0029] 是,则执行步骤S17:将第一交易存入内存池。
[0030] 以网络中的攻击者甲通过账户余额为0的账户A的私钥pA签名生成tx1,并将tx1发送到区块链网络中为例:
[0031] 在现有方案中,区块链节点在执行tx1时才判断出账户A的账户余额不足以支付tx1的手续费,tx1可以顺利进入内存池并被打包到区块中;
[0032] 而在图1所示的方案中,区块链节点在tx1进入内存池之前执行步骤S11,解析tx1以获取tx1的签名地址addA;
[0033] 在步骤S14中,根据步骤S11获取的签名地址addA获取相应账户(账户A)的余额(0);
[0034] 在步骤S15中,判断步骤S14获取到的余额(0)是否不小于tx1的手续费(fee1):
[0035] 否,则执行步骤S16,生成错误信息并上报,删除tx1。
[0036] 相较于攻击者甲恶意构造的交易tx1,对于用户乙通过余额充足的账户B的私钥签名的交易tx2,步骤S11-S14的过程与上述过程相同不再赘述,在步骤S15中,判断出账户B的余额大于tx2的手续费(fee2),从而触发步骤S17,将交易tx2存入内存池。
[0037] 上述实施例通过在将交易存入内存池之前解析出地址以获取账户余额,判断余额是否足以支付手续费,从而过滤账户余额不足的交易,保障了内存池不会因缓存账户余额不足以缴纳手续费的交易而拥堵。
[0038] 图2为图1所示方法中步骤S11的一种实施方式的流程图。如图2所示,在一优选实施例中,步骤S11包括:
[0039] S111:检测第一交易是否交易组:
[0040] 否,则执行步骤S112:解析第一交易以获取第一交易的第一签名地址;
[0041] 是,则执行步骤S113:根据交易组结构展开第一交易,得到若干笔第二交易;以及,步骤S114:解析位于交易组头部的第二交易以获取第二签名地址。
[0042] 具体地,在本实施例中,区块链系统中的交易除了配置有单笔交易之外,还配置有多笔交易组合生成的交易组,并对交易组配置有以下规则:由交易组中的头部交易为该交易组缴纳手续费,该交易组中的其它交易无需缴纳手续费。
[0043] 以用户丙通过账户C的私钥签名生成tx3,并与用户丁通过账户D的私钥签名所生成的tx4组成交易组tx5=(tx3,tx4),并发送到区块链网络中为例:
[0044] 在步骤S111中,区块链节点检测待存入内存池的交易tx5是否交易组:是,则执行步骤S113,根据交易组结构展开交易组tx5,得到tx3和tx4,以及步骤S114,解析交易组tx5的头部交易tx3以获取第二签名地址addC。
[0045] 在本实施例中,区块链系统将交易组的手续费缴纳规则配置为由交易组中的头部交易缴纳手续费、其它交易无需缴纳手续费,因此步骤S114中只需解析头部交易的签名地址;在更多实施例中,步骤S114还可根据区块链系统配置的不同交易组手续费缴纳规则解析不同的交易并获取签名地址,例如,当交易组手续费缴纳规则配置为由交易组中的每笔交易均摊手续费时,则步骤S114需要解析每一笔第二交易以获取多项第二签名地址,等等。
[0046] 图3为图1所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,上述方法还包括:
[0047] S181:监测错误信息的生成频率是否超过第一阈值
[0048] 是,则执行步骤S183:检测是否存在第一地址发送非法交易的频率超过第二阈值:
[0049] 是,则执行步骤S185:将第一地址加入黑名单。
[0050] 其中,非法交易为账户余额不足以支付手续费的交易。
[0051] 具体地,以攻击者甲通过私钥pA大量恶意构造非法交易,并通过地址addA发送到区块链网络中;用户丁因操作失误通过私钥pD构造了三笔非法交易,并通过地址addD发送到区块链网络中为例:
[0052] 在步骤S181中,监测步骤S16中错误信息的生成频率,当该生成频率超过第一阈值,例如100项/分钟(该数值仅为示例,可根据实际需求任意配置):
[0053] 若超过第一阈值,则触发步骤S183,对最近时段内产生错误信息的各非法交易的签名地址进行统计,判断是否存在有账户发送非法交易的频率超过第二阈值,例如50项/分钟(该数值同样仅为示例,可根据实际需求任意配置,理论上应小于上述第一阈值)。
[0054] 在步骤S183中,检测出addA发送非法交易的频率达到127项/分钟,超过了第二阈值,而addD发送非法交易的频率达到3项/分钟,未超过第二阈值。因此,在步骤S185中,将addA加入黑名单。
[0055] 具体地,在步骤S185中,通常情况下,为了避免引起分叉,该黑名单配置在区块链上,即,通过生成一笔交易将addA加入区块链上的黑名单。
[0056] 对于黑名单中的地址,可以采取本领域常用的技术手段进行限制,例如,在一段时间内冻结该地址对应的账户在当前区块链上的资产,或,以下图4所示的方法,等等。
[0057] 此外,对于极端情况下,由于大量的误操作导致普通用户的地址被加入黑名单,用户可以通过另一账户代缴保证金等方式将该地址移出黑名单。
[0058] 图4为图3所示方法的一种优选实施方式的流程图。如图4所示,进一步优选地,上述方法还包括:
[0059] S12:判断签名地址是否在黑名单中:
[0060] 是,则执行步骤S13:删除第一交易。
[0061] 具体地,当攻击者甲通过私钥pA大量恶意构造并发送非法交易后,基于步骤S181-S185的方法,addA会被加入到黑名单中。
[0062] 当攻击者甲继续通过私钥pA恶意构造并发送非法交易时,在步骤S12中就会直接判断出该交易的签名地址addA在黑名单中,直接删除该交易,而无需执行步骤S14-S16。
[0063] 当攻击者甲更换账户,通过私钥pE来继续恶意构造并发送非法交易时,只要发送频率过高,即会导致addE同样被加入到黑名单中;从而迫使攻击者甲只能选择通过大量账户分别低频发送恶意构造的非法交易,从而提升攻击者的攻击成本,并使攻击强度受限于攻击者可以同时使用的账户数量。
[0064] 上述实施例进一步通过将高频发送账户余额不足以缴纳手续费的交易的地址加入黑名单,并直接删除黑名单中地址发送的交易,进一步增强防护,提升攻击者的攻击成本。
[0065] 图5为本发明一实施例提供的一种设备的结构示意图。
[0066] 如图5所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
[0067] 以下部件连接至I/O接口505:包括键盘鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
[0068] 特别地,根据本公开的实施例,上述任一实施例描述的防攻击方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行防攻击方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
[0069] 作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的防攻击方法。
[0070] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
[0071] 描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0072] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈