用于保护智能合约免受攻击的方法和装置制造方法及图纸

技术编号:38058952 阅读:5 留言:0更新日期:2023-06-30 11:26
本公开的方法和装置提供了一种框架,该框架包括定制的运行环境和分析引擎单元,其可以使用来自运行环境的运行时信息来识别对任何区块链上的智能合约的已知或未知攻击,并保护智能合约免受攻击。该通用型框架具有低运行时开销,降低了开发分析引擎单元的难度,并提高了对新攻击的响应速度。了对新攻击的响应速度。了对新攻击的响应速度。

【技术实现步骤摘要】
【国外来华专利技术】用于保护智能合约免受攻击的方法和装置


[0001]本公开一般涉及区块链上的智能合约,更具体地,涉及一种用于保护区块链上的智能合约免受攻击的方法和装置。

技术介绍

[0002]智能合约是在相互不信任的参与者之间自动和强制执行预定义逻辑的自主程序,它由区块链的共识机制自动执行,而不依赖于受信任的权威。以太坊等智能合约系统的兴起,导致基于区块链的去中心化应用激增,包括存储和管理各种数据的应用。智能合约的正确执行是其有效性的必要条件:否则对合约的攻击(例如,由于任何功能错误、漏洞等)会导致灾难性的损失,如严重的财务损失。因此,提高智能合约的稳健性是一个紧迫的实际问题。
[0003]传统上,有两类方法来提高智能合约的安全性:离线分析和在线保护。离线分析方法对智能合约进行分析,包括漏洞发现、正确性检查、逆向工程和在合约部署前检测恶意智能合约。在线保护的目的是在智能合约部署后保护智能合约免受攻击。在线保护方法是在智能合约中插入运行时检查,或在智能合约的运行环境(例如,诸如EVM(Ethereum VM)等VM(虚拟机))中插入运行时检查。

技术实现思路

[0004]在本公开的第一个示例性方面,提供了一种用于保护智能合约免受攻击的计算机实现方法。该方法包括:检测在运行环境中发起的与区块链上的智能合约相关的第一操作;在检测到所述第一操作后,获取与所述第一操作相关联的作为原始数据的运行时信息;基于所述运行时信息,生成与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及基于所述分析数据,发起与所述智能合约的安全性相关的第二操作。
[0005]在本公开的第二个示例性方面,提供了一种用于保护智能合约免受攻击的装置。该装置包括:检测单元,被配置为检测在运行环境中发起的与区块链上的智能合约相关的第一操作;信息收集单元,被配置为在所述检测单元检测到所述第一操作后,获取与所述第一操作相关联的作为原始数据的运行时信息;分析引擎单元,被配置为基于所述运行时信息,生成与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及响应单元,被配置为基于所述分析数据,发起与所述智能合约的安全性相关的第二操作。
[0006]在本公开的第三个示例性方面,提供了一种用于保护智能合约免受攻击的装置。该装置包括:用于检测在运行环境中发起的与区块链上的智能合约相关的第一操作的模块;用于在检测到所述第一操作后获取与所述第一操作相关联的作为原始数据的运行时信息的模块;用于基于所述运行时信息生成与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据的模块;以及用于基于所述分析数据发起与所述智能合约的安全性相关的第二操作的模块。
[0007]在上述方法和装置的一些实施例中,所述运行时信息可以从所述运行环境的内核
层和应用层获取。
[0008]上述方法和装置的一些实施例可以包括:用于根据规则集合分析所述运行时信息以生成所述分析数据的过程、特征或手段。
[0009]上述方法和装置的一些实施例还可以包括:用于从所述运行时信息中提取所述第一操作的活动特征,并根据所述规则集合分析所述活动特征以生成所述分析数据的过程、特征或手段,所述规则集合与执行顺序、执行次数和执行参数中的至少一个相关。
[0010]进一步地,上述方法和装置的一些实施例可以包括:用于确定生成所述分析数据所需的所述运行时信息的内容,并基于所述确定的内容获取所述运行时信息的过程、特征或手段。
[0011]此外,上述方法和装置的一些实施例可以包括:用于确定生成所述分析数据所需的所述运行时信息的分组模式和所述运行时信息的群组的过程、特征或手段。上述方法和装置的一些实施例可以进一步包括:用于基于所述确定的分组模式和群组获取所述运行时信息并对所述运行时信息进行分组,并基于分组后的运行时信息生成所述分析数据的过程、特征或手段。
[0012]在上述方法和装置的一些实施例中,所述第一操作可以包括所述智能合约的创建、部署、调用和执行中的至少一个。
[0013]在上述方法和装置的进一步实施例中,所述第二操作可以包括以下至少一个:许可所述第一操作的一个或多个活动;阻止所述第一操作的一个或多个活动;以及生成针对所述第一操作的一个或多个活动的报告。
[0014]在上述方法和装置的进一步实施例中,所述运行时信息可以包括与所述第一操作相关联的区块信息、交易信息和指令信息中的至少一个。
[0015]在本公开的第四个示例性方面,提供了一种用于保护智能合约免受攻击的计算机实施方法。该方法包括:检测在运行环境中发起的与区块链上的智能合约相关的第一操作;在检测到所述第一操作后,获取与所述第一操作相关联的作为原始数据的运行时信息;将所述运行时信息发送至在所述运行环境之外的分析引擎单元;从所述分析引擎单元接收与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及基于所述分析数据,发起与所述智能合约的安全性相关的第二操作。
[0016]在本公开的第五个示例性方面,提供了一种用于保护智能合约免受攻击的装置。该装置包括:检测单元,被配置为检测在运行环境中发起的与区块链上的智能合约相关的第一操作;信息收集单元,被配置为在检测到所述第一操作后获取与所述第一操作相关联的作为原始数据的运行时信息;发送器,被配置为将所述运行时信息发送到所述运行环境之外的分析引擎单元;接收器,从所述分析引擎单元接收与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及响应单元,被配置为基于所述分析数据发起与所述智能合约的安全性相关的第二操作。
[0017]在本公开的第六个示例性方面,提供了一种用于保护智能合约免受攻击的装置。该装置包括:用于检测在运行环境中发起的与区块链上的智能合约相关的第一操作的模块;用于在检测到所述第一操作后获取与所述第一操作相关联的作为原始数据的运行时信息的模块;用于将所述运行时信息发送到所述运行环境之外的分析引擎单元的模块;用于从所述分析引擎接收与所述第一操作的活动导致的所述智能合约的安全性相关联的分析
数据的模块;以及用于基于所述分析数据发起与所述智能合约的安全性相关的第二操作的模块。
[0018]在上述方法和装置的一些实施例中,所述运行时信息可以从所述运行环境的内核层和应用层获取。
[0019]上述方法和装置的一些实施例可以包括:用于获取指示需要发送到所述分析引擎单元的所述运行时信息的内容的第一消息,并基于所述第一消息获取运行时信息的过程、特征或手段。
[0020]进一步地,上述方法和装置的一些实施例可以包括:用于获取指示需要发送到所述分析引擎单元的所述运行时信息的分组模式和所述运行时信息的群组的第二消息的过程、特征或手段。上述方法和装置的进一步实施例还可以包括:用于基于所述第二消息获取所述运行时信息并对所述运行时信息进行分组,以及将分组后的运行时信息发送至所述分析引擎单元的过程、特征或手段。
[0021]在上述方法和装置的一些实施例中,所述第一操作可以包括智能合约的创建、部本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于保护智能合约免受攻击的计算机实现方法,包括以下步骤:检测在运行环境中发起的与区块链上的智能合约相关的第一操作;在检测到所述第一操作后,获取与所述第一操作相关联的作为原始数据的运行时信息;基于所述运行时信息,生成与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及基于所述分析数据,发起与所述智能合约的安全性相关的第二操作。2.根据权利要求1所述的方法,其中,所述运行时信息从所述运行环境的内核层和应用层获取。3.根据权利要求1所述的方法,其中,所述生成所述分析数据的步骤包括:根据规则集合分析所述运行时信息以生成所述分析数据。4.根据权利要求3所述的方法,其中,所述分析所述运行时信息的步骤包括:从所述运行时信息中提取所述第一操作的活动特征;以及,根据所述规则集合分析所述活动特征以生成所述分析数据,所述规则集合与执行顺序、执行次数和执行参数中的至少一个相关。5.根据权利要求1所述的方法,还包括以下步骤:确定生成所述分析数据所需的所述运行时信息的内容;以及,其中,所述获取所述运行时信息的步骤还包括:基于所述确定的内容获取所述运行时信息。6.根据权利要求1所述的方法,还包括以下步骤:确定生成所述分析数据所需的所述运行时信息的分组模式和所述运行时信息的群组;其中,所述获取所述运行时信息的步骤还包括:基于所述确定的分组模式和群组获取所述运行时信息并对所述运行时信息进行分组;以及,所述生成所述分析数据还包括:基于分组后的运行时信息生成所述分析数据。7.根据权利要求1所述的方法,其中,所述第一操作包括所述智能合约的创建、部署、调用和执行中的至少一个;以及,所述第二操作包括以下至少一个:许可所述第一操作的一个或多个活动;阻止所述第一操作的一个或多个活动;以及生成针对所述第一操作的一个或多个活动的报告。8.根据权利要求1所述的方法,其中,所述运行时信息包括与所述第一操作相关联的区块信息、交易信息和指令信息中的至少一个。9.一种用于保护智能合约免受攻击的计算机实现方法,包括以下步骤:检测在运行环境中发起的与区块链上的智能合约相关的第一操作;在检测到所述第一操作后,获取与所述第一操作相关联的作为原始数据的运行时信息;将所述运行时信息发送至在所述运行环境之外的分析引擎单元;从所述分析引擎单元接收与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及基于所述分析数据,发起与所述智能合约的安全性相关的第二操作。10.根据权利要求9所述的方法,其中,所述运行时信息从所述运行环境的内核层和应
用层获取。11.根据权利要求9所述的方法,还包括以下步骤:获取指示需要发送到所述分析引擎单元的所述运行时信息的内容的第一消息;以及其中,所述获取所述运行时信息的步骤还包括:基于所述第一消息获取所述运行时信息。12.根据权利要求9所述的方法,还包括以下步骤:获取指示需要发送到所述分析引擎单元的所述运行时信息的分组模式和所述运行时信息的群组的第二消息;其中,所述获取所述运行时信息的步骤还包括:基于所述第二消息获取所述运行时信息并对所述运行时信息进行分组;以及其中,所述将所述运行时信息发送至分析引擎单元的步骤还包括:将分组后的运行时信息发送至所述分析引擎单元。13.根据权利要求9所述的方法,其中:所述第一操作包括智能合约的创建、部署、调用和执行中的至少一个;以及,所述第二操作包括以下的至少一个:许可所述第一操作的一个或多个活动;阻止所述第一操作的一个或多个活动;以及生成针对所述第一操作的一个或多个活动的报告。14.根据权利要求9所述的方法,其中,所述运行时信息包括与所述第一操作相关联的区块信息、交易信息和指令信息中的至少一个。15.一种用于保护智能合约免受攻击的计算机实现方法,包括以下步骤:从运行环境中的解释器接收作为原始数据的运行时信息,所述作为原始数据的运行时信息与在所述运行环境中发起的同区块链上的智能合约相关的第一操作相关联;根据规则集合分析所述运行时信息,以生成与所述第一操作的活动导致的所述智能合约的安全性相关联的分析数据;以及发送所述分析数据至所述解释器。16.根据权利要求15所述的方法,其中,所述运行时信息从所述运行环境的内核层和应用层获取。17.根据权利要求15所述的方法,其中,所述分析所述运行时信息的步骤包括:从所述运行时信息中提取所述第一操作的活动特征;以及根据所述规则集合分析所述活动特征以生成所述分析数据,所述规则集合与执行顺序、执行次数和执行参数中的至少一个相关。18.根据权利要求15所述的方法,还包括以下步骤:向所述解释器发送指示需要从所述解释器接收的所述运行时信息的内容的第一消息。19.根据权利要求15所述的方法,还包括以下步骤:向所述解释器发送指示需要从所述解释器接收的所述运行时信息的分组模式和所述运行时信息的群组的第二消息...

【专利技术属性】
技术研发人员:陈厅陈刚张台涌
申请(专利权)人:上海孔递科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1