【技术实现步骤摘要】
一种防止攻击方法及装置
本专利技术涉及通信
,具体涉及一种防止攻击方法及装置。
技术介绍
智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。在区块链网络中,智能合约即为运行于区块链上的一段代码,如果智能合约的某个条款触发了执行条件,则代码就会自动执行以完成智能合约,从而节省人为沟通成本和监督成本。但是,由于智能合约代码编写不严谨等因素,容易导致黑客利用智能合约代码漏洞进行攻击来获取暴利。其中,重入攻击、时间戳依赖攻击和调用深度攻击是针对智能合约的常见攻击手段。重入攻击为攻击方在交易中通过恶意重复执行合约直到将合约账户资源消耗完的攻击方式,具体地,攻击者利用智能合约可以调用其他外部合约的特性,劫持外部调用,并在外部调用合约中植入恶意代码,从而迫使代码执行“重新进入”智能合约以再次执行资产转移,直到将合约账户的资产消耗完。时间戳依赖攻击为利用矿工设置区块的时间戳来尽可能满足有利于攻击者的条件来获利。调用深度攻击为攻击者利用智能合约调用深度的限制,恶意调用智能合约,使某些关键操作因达到调用深度阈值而无法执行。这些攻击行为可能导致区块链网络用户的资产损失,从而降低区块链网络的安全性和可靠性,影响用户的使用体验。目前,防止智能合约攻击的方法一般只针对某一特定类型的攻击行为,缺乏对智能合约攻击的全方面的防范。因此,如何对智能合约的攻击进行较为全面的防范,保障用户的资产安全,成为本领域亟待解决的问题。
技术实现思路
为此,本专利技术提供一种防止攻击方法及装置,以解决只 ...
【技术保护点】
1.一种防止攻击方法,应用于记账节点,其特征在于,包括:/n检测主调用智能合约的余额状态更新情况和被调用智能合约的调用深度;/n比较所述调用深度和预设的调用深度阈值,获得调用深度比较结果;/n根据所述调用深度比较结果更新或重置所述调用深度,并向所述主调用智能合约发送所述余额状态更新情况,以供所述主调用智能合约根据所述调用深度调用所述被调用智能合约,并在所述余额状态更新时执行资金发送。/n
【技术特征摘要】
1.一种防止攻击方法,应用于记账节点,其特征在于,包括:
检测主调用智能合约的余额状态更新情况和被调用智能合约的调用深度;
比较所述调用深度和预设的调用深度阈值,获得调用深度比较结果;
根据所述调用深度比较结果更新或重置所述调用深度,并向所述主调用智能合约发送所述余额状态更新情况,以供所述主调用智能合约根据所述调用深度调用所述被调用智能合约,并在所述余额状态更新时执行资金发送。
2.根据权利要求1所述的防止攻击方法,其特征在于,所述检测主调用智能合约的余额状态更新情况之后,在所述主调用智能合约的余额状态更新之前,还包括:
按照当前时间对应的时间戳确定所述主调用智能合约的有效时间戳参数;
基于所述有效时间戳参数和所述当前时间对应的时间戳生成有效时间戳参数见证消息;
在区块链网络中广播所述有效时间戳参数见证消息。
3.根据权利要求1所述的防止攻击方法,其特征在于,所述检测被调用智能合约的调用深度之前,还包括:
为所述被调用智能合约设置栈深度标识;
初始化所述栈深度标识;
当所述被调用智能合约被调用时,更新所述栈深度标识;
将所述栈深度标识写入区块链网络的区块中。
4.根据权利要求3所述的防止攻击方法,其特征在于,所述检测被调用智能合约的调用深度,包括:
获取所述被调用智能合约的所述栈深度标识;
根据所述栈深度标识确定所述被调用智能合约的所述调用深度。
5.根据权利要求4所述的防止攻击方法,其特征在于,所述根据比较结果更新或重置所述调用深度,包括:
在所述调用深度小于所述调用深度阈值时,更新所述被调用智能合约的所述栈深度标识,并将更新后的所述栈深度标识写入区块链网络的区块中;
在所述调用深度等于或大于所述调用深度阈值时,将所述被调用智能合约的所述栈深度标识重置为初始状态,并将重置后的所述栈深度标识写入区块链网络的区块中。
6.根据权利要求5所述的防止攻击方法,其特征在于,所述在所述调用深度等于所述调用深度阈值时,更新所述被调用智能合约的所述栈深度标识之后,还包括:
在区块链网络中广播调用深度告警消息。
7.一种防止攻击方法,应用于执行节点,其特征在于...
【专利技术属性】
技术研发人员:田新雪,肖征荣,马书惠,杨子文,董慧,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。