一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

智能合约异常检测方法、区块链网络、设备及存储介质与流程

2022-07-10 12:13:55 来源:中国专利 TAG:


1.本发明属于区块链领域,具体涉及一种智能合约异常检测方法、区块链网络、电子设备及计算机可读存储介质。


背景技术:

2.区块链是一种多方参与维护的分布式账本技术,是p2p(peer to peer,点对点)网络、共识机制、密码学算法、智能合约等技术的集成创新。区块链系统是将数据及数据的操作记录,通过密码学方法进行加密和散列,从而形成一种公开透明、不可篡改、可追溯的分布式数据库记账系统,该技术可以在支付清算、存证取证、价值转移、供应链金融、用户征信、监管审计等领域进行广泛应用。
3.智能合约是一种无需中介、自我验证、自动执行合约条款的计算机交易协议,近年来随着区块链技术的日益普及而备受关注。区块链上的智能合约具有去中心化、去信任、可编程、不可篡改等特性,可灵活嵌入各种数据和资产,帮助实现安全高效的信息交换、价值转移和资产管理,有助于将区块链应用到各个行业领域。
4.智能合约是组成区块链的一项关键技术,智能合约应用通常关乎真实世界的经济利益,错误的、有漏洞的智能合约会带来巨大的经济损失和现实问题。
5.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(finteh)转变,区块链(block chain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
6.目前,区块链系统的安全性受到越来越多人的关注,在智能合约的漏洞检测上,特别是智能合约的异常值检测,目前还没有比较好的方案,以保证区块链系统的安全性。


技术实现要素:

7.本发明实施例的目的是提供一种智能合约异常检测方法、区块链网络、电子设备及计算机可读存储介质,以解决智能合约的异常值检测的问题。
8.为了解决上述技术问题,本发明是这样实现的:
9.第一方面,本发明实施例提供了一种智能合约异常检测方法,该方法包括:
10.获取客户端应用软件向对等节点发送的智能合约调用请求,其中,所述智能合约调用请求中携带有待处理数据;
11.基于预设的各异常检测模型,对所述待处理数据进行对应的异常值检测处理,得到所述预设的各异常检测模型对应的异常值集合;
12.基于所确定的异常检测策略,对所述预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果;
13.向所述对等节点反馈所述异常值检测的结果,使所述对等节点根据所述异常值检测的结果确定所述智能合约模拟执行的结果。
14.第二方面,本发明实施例提供了一种区块链网络,该区块链网络包括:
15.拦截器,用于获取客户端应用软件向对等节点发送的智能合约调用请求,其中,所述智能合约调用请求中携带有待处理数据;异常检测模块,用于基于预设的各异常检测模型,对所述待处理数据进行对应的异常值检测处理,得到所述预设的各异常检测模型对应的异常值集合;基于所确定的异常检测策略,对所述预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果;向所述对等节点反馈所述异常值检测的结果,使所述对等节点根据所述异常值检测的结果确定所述智能合约模拟执行的结果。
16.第三方面,本发明实施例提供了一种对等节点,该对等节点包括:
17.第一通信模块,用于在接收到客户端应用软件发送的智能合约调用请求后,向异常检测模块发送异常检测请求,其中,所述智能合约调用请求中携带有待处理数据;
18.第一处理模块,用于根据所述异常检测模块反馈的异常值检测的结果为所述待处理数据异常,确定所述智能合约模拟执行的结果为报警状态;
19.所述第一通信模块,还用于将所确定的所述智能合约模拟执行的结果返回所述客户端应用软件,使所述客户端应用软件根据所述报警状态发出提示信息。
20.第四方面,本发明实施例提供了一种客户端应用软件,该客户端应用软件包括:
21.第二通信模块,用于向对等节点发送的智能合约调用请求,其中,所述智能合约调用请求中携带有待处理数据;接收所述对等节点返回的所述智能合约模拟执行的结果;
22.第二处理模块,用于根据所述智能合约模拟执行的结果为报警状态发出提示信息。
23.第五方面,本发明实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的智能合约异常检测方法的步骤。
24.第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的智能合约异常检测方法的步骤。
25.在本发明实施例中,通过获取客户端应用软件向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据,基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合,基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果,向对等节点反馈异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果;实现了对智能合约非监督方式的异常值检测,不需要针对智能合约的业务逻辑和参数分别设置监检测规则,实现了检测规则与业务的无关性,使得检测测规则的数量收敛,可以避免检测规则越来越多,对智能合约的正常执行性能造成的影响,可以作为现有对智能合约监督方式的有效补充,易于部署实施,不影响现有区块链的客户端和智能合约的开发和部署流程。
附图说明
26.图1是本发明实施例提供的一种智能合约异常检测方法的流程图;
27.图2是本发明实施例提供的另一种智能合约异常检测方法的流程图;
28.图3是本发明实施例提供的一种通过键值对的结构构建的属性树的示意图;
29.图4是本发明实施例提供的一种根据属性值对异常检测模型进行更新的实现方式的流程图;
30.图5是一种通过在图3中属性树的各叶子节点处设置历史值库对属性值进行存储的示意图;
31.图6是本发明实施例提供的又一种智能合约异常检测方法的流程图;
32.图7是本发明实施例提供的一种根据异常值检测的结果确定智能合约模拟执行的结果的实现方式的流程图;
33.图8是本发明实施例提供的一种智能合约异常检测方法应用场景的示意图;
34.图9是本发明实施例提供的一种智能合约异常检测装置的结构示意图;
35.图10是本发明实施例提供的一种对等节点的结构示意图;
36.图11是本发明实施例提供的一种客户端应用软件的结构示意图;
37.图12本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
40.下面结合附图,通过具体的实施例及其应用场景对本发明实施例提供的身份标识共享方法、身份标识共享装置、电子设备及计算机可读存储介质进行详细地说明。
41.请参见图1,图1是本发明实施例提供的一种智能合约异常检测方法的流程图,如图1所示,该方法包括如下步骤:
42.步骤101,获取客户端应用软件向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据。
43.在本发明实施例中,智能合约是用可执行的代码定义的不同组织之间的规则,客户端应用软件app可以通过调用智能合约来生成被记录到账本上的交易。以fabric平台为例,其智能合约可以通过对账本数据的设置、获取和删除等,实现不同组织之间的业务规则,供客户端的应用软件调用。智能合约的结构可以包括:智能合约、shim api和账本。其中,shim api提供智能合约调用的主要接口putstate、getstate、delstate等,完成对账本数据的设置、获取和删除等。接口putstate、getstate、delstate的基本定义如下:
44.getstate(key string)([]byte,error)
[0045]
putstate(key string,value[]byte)error
[0046]
delstate(key string)error
[0047]
客户端应用软件可以通过向对等节点peer发送携带有待处理数据的智能合约调用请求,调用智能合约来模拟生成被记录到账本上的交易。
[0048]
在本发明实施例中,可以通过在区块链网络的每个对等节点处部署拦截器,来获取客户端应用软件向对等节点发送的智能合约调用请求,其中,拦截器所起的作用类似于网关,可以接收客户端应用软件发出的智能合约调用请求,并将所接收到的智能合约调用请求转发给对等节点。
[0049]
步骤102,基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。
[0050]
在本发明实施例中,异常检测模型可以是根据异常值检测的需要预先设置的算法模型,以通过这些算法模型对待处理数据进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。可选地,对待处理数据进行的异常值检测处理可以包括以下中的至少一种:数据类型判断、数据特征衍生判断、离散值连续值判断,多因子异常值检测等。预设的各异常检测模型可以包括以下中的至少一种:算法模型、基于近邻度的离群点检测模型、基于密度的离群点检测、孤立森林算法模型等。本发明实施例对异常值检测的类型和实现异常值检测的算法模型的类型不作限定。在本发明实施例中,异常值检测可以是判断出合法但不合理的数值。例如,年龄的取值一般集中在1到100之间,当大于100的值出现时,会判定为出现异常值,此时需要用户进一步进行确认。
[0051]
在本发明实施例中,可以通过在区块链网络部署异常检测模块,接收区块链网络中部署在各对等节点的各拦截器获得的待处理数据,并基于预设的各异常检测模型,分别对所获得的各拦截器的待处理数据进行对应的异常值检测处理,得到各待处理数据对应于预设的各异常检测模型各异常值集合。
[0052]
步骤103,基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果。
[0053]
在本发明实施例中,可以综合考虑预设的各异常值检测模型对待处理数据所进行的各异常值检测处理,预先制定不同的异常检测策略,以满足不同应用场景对异常值检测的不同要求,例如,预先制定的异常检测策略可以包括:消极策略、谨慎策略和积极策略。可选地,预先制定的各异常检测策略可以通过对预设的各异常检测模型对应的异常值集合进行相应的运算来实现,例如,可以通过对对预设的各异常检测模型的各异常值集合进行集合之间的交并运算来实现。本发明实施例对异常检测策略的类型和实现方式不作限定。
[0054]
在本发明实施例中,异常检测模块在得到预设的各异常检测模型对待处理数据进行对应的异常值检测处理的各异常值集合后,可以根据预先确定的对该待处理数据进行异常值检测的异常检测策略,对预设的各异常检测模型的各异常值集合进行异常检测策略所规定的集合之间的交并运算,实现对各异常值集合的综合处理,得到该待处理数据的异常值检测的结果,其中,该异常值检测的结果可以为待处理数据异常或者待处理数据正常。
[0055]
步骤104,向对等节点反馈异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果。
[0056]
在本发明实施例中,异常检测模块在得到异常值检测的结果后,会将异常值检测的结果反馈给对应的对等节点。若异常值检测的结果为待处理数据正常,对等节点将调用智能合约来模拟生成被记录到账本上的交易,并确定智能合约模拟执行的结果,将所确定
智能合约模拟执行的结果返回客户端应用软件,例如,此时智能合约模拟执行的结果可以为成功状态或者失败状态。若异常值检测的结果为待处理数据异常,对等节点将根据待处理数据异常,确定智能合约模拟执行的结果,并将所确定的智能合约模拟执行的结果返回客户端应用软件,例如,此时智能合约模拟执行的结果可以为报警状态。
[0057]
在本发明实施例中,通过获取客户端应用软件向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据,基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合,基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果,向对等节点反馈异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果;实现了对智能合约非监督方式的异常值检测,不需要针对智能合约的业务逻辑和参数分别设置监检测规则,实现了检测规则与业务的无关性,使得检测测规则的数量收敛,可以避免检测规则越来越多,对智能合约的正常执行性能造成的影响,可以作为现有对智能合约监督方式的有效补充,易于部署实施,不影响现有区块链的客户端和智能合约的开发和部署流程。
[0058]
请参见图2,图2是本发明实施例提供的另一种智能合约异常检测方法的流程图,如图2所示,在基于预设的属性树,对智能合约调用请求中携带的待处理数据进行解析处理,并提取待处理数据的属性值之后,该方法包括如下步骤:
[0059]
步骤201,获取客户端应用软件向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据。
[0060]
步骤202,基于预设的属性树,对待处理数据进行解析处理并提取待处理数据的属性值,其中,属性树是基于智能合约构建。
[0061]
在本发明实施例中,在基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理之前,还可以基于预设的属性树,对待处理数据进行解析处理并提取待处理数据的属性值,在基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理时,可以基于预设的各异常检测模型,对所提取的待处理数据的属性值进行对应的异常值检测处理,从而得到预设的各异常检测模型对应的异常值集合。
[0062]
可选地,属性树可以是根据智能合约预先构建,不同的智能合约对应不同的属性树。可以通过对智能合约的规则进行分析,确定智能合约的规则对应的属性,然后基于智能合约的规则所确定的属性,通过键值对(key/value,简称k/v)的结构构建对应的属性树,其中,键值对中的键作为属性树的根节点,键值对中的值对应智能合约的规则中的多个属性,作为属性树中除根节点以外的属性节点,形成一个包含多个属性的嵌套结构,智能合约的规则主要集中体现在键值对中的值中。如图3所示,是通过键值对的结构构建的属性树,其中,根节点key可以为一个字符串(string),其余各属性节点attr1、attr2、attrm、attrn、attr2.1、attrm.1、attrm.2、attr2.1.1、attr2.1.2可以为一个字节(byte)。
[0063]
在本发明实施例中,通过获取客户端应用软件向对等节点发送的智能合约调用请求,可以获得智能合约调用请求中携带的待处理数据,基于该智能合约对应的预设的属性树,可以对从智能合约调用请求获得的待处理数据进行解析处理,并提取待处理数据的属性值。其中,例如,根据智能合约调用请求中所确定的被调用的智能合约的api,例如,被调用的智能合约的api为putstate,通过属性树对待处理数据进行解析处理并提取待处理数
据的属性值,可以仅得到符合putstate的key和value,每一次调用api所得到的key和value均为图2中属性树的一个子树,随着调用次数的不断增加,将完成对图2中属性树的遍历。
[0064]
在本发明实施例中,可以通过拦截器在获取的智能合约调用请求后,基于预设的属性树,对各智能合约调用请求中携带的待处理数据进行解析处理,并提取各待处理数据的属性值,可以通过异常检测模块接收各拦截器获得的待处理数据的属性值与对应的属性树的键,并基于预设的各异常检测模型,对各拦截器所获得的待处理数据的属性值进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。
[0065]
步骤203,基于预设的各异常检测模型,对所提取的待处理数据的属性值进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。
[0066]
步骤204,基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果。
[0067]
步骤205,向对等节点反馈异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果。
[0068]
在本发明实施例中,关于步骤201、203、204、205的说明可以参见图1中关于步骤101、102、103、104的相关说明,故此出不再复述。
[0069]
本实施例通过属性值对待处理数据进行解析处理并提取待处理数据的属性值,将待处理的数据的属性值用于预设的各异常监测模型的异常检测处理,可以减少异常监测模型进行异常检测处理的数据量,提高异常检测的效率。
[0070]
请参见图4,图4是本发明实施例提供的一种根据属性值对异常检测模型进行更新的实现方式的流程图,如图4所示,在基于预设的属性树,对智待处理数据进行解析处理并提取待处理数据的属性值之后,还包括如下步骤:
[0071]
步骤401,对预设的属性树中所述属性节点对应的待处理数据的属性值进行存储。
[0072]
在本发明实施例中,异常检测模块在获得待处理数据的属性值和对应的属性树的键后,还可以对预设的属性树中属性节点对应待处理数据的属性值进行存储,形成历史数据池,也即样本空间。如图5所示,可以通过在图3中属性树的各叶子节点处设置历史值库,对应待处理数据的属性值进行存储。
[0073]
步骤402,根据预设的时间周期,以所存储的待处理数据的属性值作为样本对预设的异常检测模型进行更新。
[0074]
在本发明实施例中,异常检测模块可以根据预设的时间周期,将所存储的待处理数据的属性值的历史数据作为样本,对预设的异常检测模型进行迭代更新。通常,只有当所存储的每个属性的历史值的数量达到一定数量后,才可以所存储的每个属性的历史值作为样本,对预设的异常检测模型进行迭代更新,而在此之前异常检测模块返回的异常值检测的结果均为待处理数据正常。其中,对对预设的异常检测模型进行迭代更新的周期,可以根据需求设置,例如为每天进行一次模型的迭代更新,本发明实施例对此不作限定。
[0075]
本实施例通过对属性值进行存储,获得各属性的历史数据,根据各属性的历史数据作为样本,周期性地对预设的异常检测模型进行迭代更新,可以不断优化预设的异常检测模型,提高预设的异常检测模型对异常值检测的准确性。
[0076]
请参见图6,图6是本发明实施例提供的又一种智能合约异常检测方法的流程图,如图6所示,该方法,包括如下步骤:
[0077]
步骤601,获取客户端应用软件向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据。
[0078]
步骤602,基于预设的属性树,对待处理数据进行解析处理并提取待处理数据的属性值,其中,属性树是基于智能合约构建。
[0079]
步骤603,接收对等节点发出的异常检测请求。
[0080]
在本发明实施例中,对待处理数据的异常值检测处理,可以是在对等节点接收到客户端应用软件发送的智能合约调用请求后,响应于对等节点发出的异常检测请求开始执行。可选地,对等节点发出的异常检测请求可以是在调用智能合约来模拟生成被记录到账本上的交易前,可以向区块链网络中部署的异常检测模块发出。
[0081]
步骤604,基于预设的各异常检测模型,对所提取的待处理数据的属性值进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。
[0082]
步骤605,基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果。
[0083]
步骤606,向对等节点反馈异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果。
[0084]
在本发明实施例中,关于步骤601、604、602、606的说明可以参见图1中关于步骤101、102、103、104的相关说明,关于步骤602的说明可以参见图2中关于步骤202的相关说明,故此出不再复述。
[0085]
本实施例通过对等节点发出的异常检测请求触发对对待处理数据的异常检测,可以根据区块链网络实际的业务处理情况决定是否对待处理数据进行异常检测处理,可以提高智能合约异常检测应用的灵活性。
[0086]
请参见图7,图7是本发明实施例提供的一种根据异常值检测的结果确定智能合约模拟执行的结果的实现方式的流程图,如图7所示,对等节点根据异常值检测的结果确定智能合约模拟执行的结果,包括如下步骤:
[0087]
步骤701,根据异常值检测的结果为待处理数据异常,确定智能合约模拟执行的结果为报警状态。
[0088]
在本发明实施例中,对等节点在接收到异常检测模块反馈的异常值检测的结果后,会根据异常值检测的结果确定智能合约模拟执行的结果,当异常值检测的结果为待处理数据异常时,对等节点将根据待处理数据异常,确定智能合约模拟执行的结果为报警状态,并不需要再调用智能合约来模拟生成被记录到账本上的交易。
[0089]
步骤702,将所确定的智能合约模拟执行的结果返回客户端应用软件,使客户端应用软件根据报警状态发出提示信息。
[0090]
在本发明实施例中,对等节点在确定的智能合约模拟执行的结果后,将向客户端应用软件返回所确定的智能合约模拟执行的结果,客户端应用软件在接收到对等节点反馈的智能合约模拟执行的结果后,若智能合约模拟执行的结果为报警状态,客户端应用软件将根据报警状态发出提示信息,以告知用户异常值检测的结果,由用户进一步确认是否执行后续流程。可选地,客户端应用软件发出的提示信息可以是文字、语音、图片等中的至少一种形式,本发明实施例对此不作限定。若智能合约模拟执行的结果为成功状态,客户端应用软件将根据报警状态发出提示信息,客户端应用软件将向排序节点order发出排序请求,
由order节点生成智能合约执行的区块,并发送到区块链网络的各对等节点peer进行区块的写入更新。
[0091]
本实施例通过对等节点在异常值检测的结果为待处理数据异常时,直接根据待处理数据异常,确定智能合约模拟执行的结果为报警状态,并将报警状态返回给客户端应用软件,而不需要再调用智能合约来模拟生成被记录到账本上的交易,可以简化对等节点的处理过程。
[0092]
请参见图8,图8是本发明实施例提供的一种智能合约异常检测方法应用场景的示意图,如图8所示,本发明实施例可以通过在现有区块链网络部署拦截器和异常检测模块来实现,其中,在区块链网络的每个对等节点peer处都部署一个拦截器,在整个区块链网络部署一个异常检测模块,用来汇聚部署于各peer节点的拦截器采集的数据。在区块链网络引入拦截器和异常检测模块后区块链网络的处理流程如下:
[0093]
1、用户使用app前端应用,调用智能合约(链码),进行上链业务请求;
[0094]
new1、拦截器获取调用链码的输入数据,并将数据解析后发送给异常检测功能模块;
[0095]
new2、对等节点peer请求判断数据是否异常;
[0096]
new3、异常检测模块根据其预设的异常值检测算法模型(3δ、孤立点森林等)判断从拦截器接收的数据是否正常。
[0097]
2、对等节点peer获得上链业务请求后,若接收到异常检测模块对数据正常的判断,模拟执行智能合约,并将得到的状态结果ok/fail返回给前端应用app,若接收到异常检测模块对数据异常的判断,得到的状态结果为warn。
[0098]
new4、当状态结果为warn时,前端应用app将给出提示信息,告知异常值检测结果,由用户进一步确认是否执行后续流程。
[0099]
3、当状态结果为ok时,前端应用app将请求排序节点order生成智能合约执行的区块,并由排序节点order发送到区块链网络的各r对等节点pee进行区块的写入更新。
[0100]
其中,在区块链网络中由多个组织贡献多个对等节点peer,拦截器分别部署在各个对等节点peer,异常检测模块统一部署,可以汇聚更多的数据,有利于异常检测模型的迭代更新。异常值检测为区块链网络的可选功能,区块链上的组织可以自行确定是否开通相关功能,即new2、new3、new4为可选步骤,例如,对与时效性要求较高的场景可以关闭异常值检测功能。异常值检测可具有两个应用场景:一是实时判断,即开通以上可选步骤,为区块链用户提供异常值实时提示;二是离线分析,通过数据的异常值分析,确定异常值是否为不合理值,即启动人工干预将不合理值设置为合理值,为后续开通实时判断提供依据。
[0101]
下面将结合待处理数据的属性值对几种异常值检测的方法进行简单说明:
[0102]
数据类型判断,可以根据各数据类型的正则表达式判断出各属性值所属的数据类型,例如,各数据类型可以包括整数、浮点数、字节码、字符串等,其中,整数的正则表达式可以为^-?[1-9]\d*$、浮点数的正则表达式可以为^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0 |0)$、hex字符串的正则表达式可以([0-9a-fa-f]{2}) 。可选地,数据类型的判断可以根据需要不断细化,例如,数字可以包括但不限于byte、int16、int32、int64等;字符类型可以包括英文、英文 数字、区分大小写及不区分大小写等。
[0103]
数据特征衍生判断,可以根据属性值的长度以及取值数量进行判断。其中属性值
的长度为新衍生的特征,可用于异常值或离群点的判断,例如,哈希及加密的密文都是固定为8或16的倍数。取值数量是需要定期的技术,判断值增加的数量和取值的数量的关系,当属性值的值增加的数量和取值的数量线性相关时,可以判断属性值为连续值,当随着属性值的增加,取值的数量收敛时,即取值的数量《《属性值的数量,可以判断属性值为离散值。例如,性别字段男、女,随着属性值的数量增加,其取值的数量收敛在2,判段属性值为离散值,此时当出现其他取值时,可以判断其他取值为异常值。
[0104]
异常值判断,是针对连续性的数字类型进行判断。由于每种模型算法有其适用的样本空间要求,仅采用一种算法可能造成大量的误报,或只检测到少量的异常值。在用于智能合约的检测时,可以采用多因子异常值检测的方法,在进行判断时可以调用以下几种算法模型,要求在规定的时间内给出判定,超时则默认为正常:
[0105]
1、算法模型,观测值与平均值的差别如果超过3倍标准差,那么可以将其视为异常值。正负的概率是99.7%,那么有距离平均值之外的值出现的概率为属于极个别的小概率事件。本发明实施例可以基于标准的方法,周期性计算属性值的平均值及方差,并计算历史样本空间在之间的概率,需要小于制定概率z,例如z=0.003,可根据实际情况增大或减少,则增加到t=4倍标准差,直至历史样本空间直至历史样本空间出现的概率小于《z。
[0106]
2、基于近邻度的离群点检测模型,对于数据的样本空间,可以指定一个距离r阈值来定义对象的合理距离,对于每个样本s可以考察r邻域的样本数量,如果大多数样本都远离样本s,则s可视为一个离群点。常用的基于近邻度的算法有k-最近邻(knn)。该检测方法对样本空间分布有要求,同时随着样本空间增大,算法的时间较长。
[0107]
3、基于密度的离群点检测模型,离群点是在低密度区域中的对象。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度通常用邻近度定义。一种常用的定义密度的方法是,定义密度为到k个最近邻的平均距离的倒数。如果该距离小,则密度高,反之亦然。
[0108]
4、孤立森林(isolation forest)算法模型,适用于连续数据的无监督异常检测方法。在孤立森林中,将异常点定义为那些“容易被孤立的离群点”,即分布稀疏,且距离高密度群体较远的点。在数据空间里,若一个区域内只有分布稀疏的点,表示数据点落在此区域的概率很低,因此可以认为这些区域的点是异常的。本发明采用通过递归方式样本的值域空间推断出合理的置信空间,并在此置信空间中随机产生分割点,进行数据集的分割,直到所有的样本点都是孤立的,在这种随机分割的方法下,异常点通常具有最短的路径。
[0109]
下面将结合上述算法模型1至4对异常检测策略的形式进行说明:
[0110]
消极策略:{算法模型1}∩{算法模型2}∩{算法模型3}}∩{算法模型4};
[0111]
谨慎策略:{算法模型1}∩({算法模型2}∪{算法模型3})∩{算法模型4};
[0112]
积极策略:{算法模型1}∪({算法模型2}∩{算法模型3})∪{算法模型4}。
[0113]
请参见图9,图9是本发明实施例提供的一种区块链网络的结构示意图,如图9所示,该区块链网络90可以包括:
[0114]
拦截器91,用于获取客户端应用软件向对等节点发送的智能合约调用请求其中,智能合约调用请求中携带有待处理数据。
[0115]
异常检测模块92,用于基于预设的各异常检测模型,对待处理数据进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合;基于所确定的异常检测策略,对预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果;向对等节点反馈所述异常值检测的结果,使对等节点根据异常值检测的结果确定智能合约模拟执行的结果。
[0116]
可选地,拦截器91,还用于基于预设的属性树,对待处理数据进行解析处理并提取待处理数据的属性值,其中,属性树是基于智能合约构建;
[0117]
异常检测模块92,用于基于预设的各异常检测模型,对所提取的待处理数据的属性值进行对应的异常值检测处理,得到预设的各异常检测模型对应的异常值集合。
[0118]
可选地,拦截器91,还用于基于智能合约的规则所确定的属性,通过键值对的结构构建对应的属性树,其中,键值对中的键作为属性树的根节点,键值对中的值对应智能合约的规则中的多个属性,作为属性树中除根节点以外的属性节点。
[0119]
可选地,异常检测模块92,还用于对预设的属性树中属性节点对应的待处理数据的属性值进行存储;根据预设的时间周期,以所存储的待处理数据的属性值作为样本对预设的异常检测模型进行更新。
[0120]
可选地,异常检测模块92,还用于接收对等节点发出的异常检测请求。
[0121]
可选地,对待处理数据进行的异常值检测处理包括以下中的至少一种:数据类型判断、数据特征衍生判断、离散值连续值判断,多因子异常值检测。
[0122]
可选地,预设的各异常检测模型包括以下中的至少一种:算法模型、基于近邻度的离群点检测模型、基于密度的离群点检测、孤立森林算法模型。
[0123]
可理解的,本发明实施例的区块链网络90,可以实现上述图1至图8所示的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0124]
请参见图10,图10是本发明实施例提供的一种对等节点的结构示意图,如图10所示,该对等节点100可以包括:
[0125]
第一通信模块110,用于在接收到客户端应用软件发送的智能合约调用请求后,向异常检测模块发送异常检测请求,其中,智能合约调用请求中携带有待处理数据。
[0126]
第一处理模块120,用于根据异常检测模块反馈的异常值检测的结果为待处理数据异常,确定智能合约模拟执行的结果为报警状态。
[0127]
所述第一通信模块110,还用于将所确定的智能合约模拟执行的结果返回客户端应用软件,使客户端应用软件根据报警状态发出提示信息。
[0128]
可理解的,本发明实施例的对等节点100,可以实现上述图7所示的方法实施例的各个过程和图8所示的实施例的部分过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0129]
请参见图11,图11是本发明实施例提供的一种客户端应用软件的结构示意图,如图11所示,该客户端应用软件200可以包括:
[0130]
第二通信模块210,用于向对等节点发送的智能合约调用请求,其中,智能合约调用请求中携带有待处理数据;接收对等节点返回的智能合约模拟执行的结果。
[0131]
第二处理模块220,用于根据智能合约模拟执行的结果为报警状态发出提示信息。
[0132]
可理解的,本发明实施例的客户端应用软件200,可以实现上述图8所示的实施例
的部分过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0133]
此外,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器执行时可以实现上述图1至图8所示方法实施例的各个过程且能达到相同的技术效果,为避免重复,这里不再赘述。
[0134]
请参见图12所示,本发明实施例还提供了一种电子设备300,包括总线310、收发机320、天线330、总线接口340、处理器350和存储器360。
[0135]
在本发明实施例中,电子设备300还包括:存储在存储器360上并可在处理器350上运行的程序或指令。可选的,所述程序或指令被处理器350执行时可实现如下步骤:
[0136]
获取客户端应用软件向对等节点发送的智能合约调用请求,其中,所述智能合约调用请求中携带有待处理数据;
[0137]
基于预设的各异常检测模型,对所述待处理数据进行对应的异常值检测处理,得到所述预设的各异常检测模型对应的异常值集合;
[0138]
基于所确定的异常检测策略,对所述预设的各异常检测模型的各异常值集合进行综合处理,得到异常值检测的结果;
[0139]
向所述对等节点反馈所述异常值检测的结果,使所述对等节点根据所述异常值检测的结果确定所述智能合约模拟执行的结果。
[0140]
可理解的,所述计算机程序被处理器350执行时可实现上述图1至图8所示方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0141]
在图12中,总线架构(用总线310来代表),总线310可以包括任意数量的互联的总线和桥,总线310将包括由处理器350代表的一个或多个处理器和存储器360代表的存储器的各种电路链接在一起。总线310还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口340在总线310和收发机320之间提供接口。收发机320可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器350处理的数据通过天线330在无线介质上进行传输,进一步,天线330还接收数据并将数据传送给处理器30。
[0142]
处理器350负责管理总线310和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器360可以被用于存储处理器350在执行操作时所使用的数据。
[0143]
可选的,处理器350可以是cpu、asic、fpga或cpld。
[0144]
本发明实施例还提供了一种计算机可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时可实现上述图1至图8所示方法实施例的各个过程且能达到相同的技术效果,为避免重复,这里不再赘述。
[0145]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读
存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0146]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0147]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0148]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台服务分类设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0149]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献