CN111124421A - 区块链智能合约的异常合约数据检测方法和装置 - Google Patents
区块链智能合约的异常合约数据检测方法和装置 Download PDFInfo
- Publication number
- CN111124421A CN111124421A CN201911337796.9A CN201911337796A CN111124421A CN 111124421 A CN111124421 A CN 111124421A CN 201911337796 A CN201911337796 A CN 201911337796A CN 111124421 A CN111124421 A CN 111124421A
- Authority
- CN
- China
- Prior art keywords
- contract
- data
- intelligent contract
- key index
- index data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种区块链智能合约的异常合约数据检测方法和装置,通过语义解析识别出智能合约中的关键指标数据,再通过关键指标数据和合约参与方身份标识,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据,当基于目标历史智能合约数据,检测到当前智能合约中的关键指标数据存在数量级差异时,发送携带合约确认反馈消息的预警提示信息至合约参与方,以确认合约是否有误。整个过程,能够自动检测智能合约中的包含关键指标的业务逻辑是否异常,无需人工检测,提高检测效率,且当发现业务逻辑存在异常时,及时发送预警消息通知合约参与方进行确认,避免合约编译发布后产生不可逆的错误。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链智能合约的异常合约数据检测方法、装置、计算机设备和存储介质。
背景技术
区块链是具备分布式数据存储、点对点传输、节点共识、安全加密等计算机技术特征的新型应用模式,其因为具备去中心化、公开透明以及不可篡改等特点越来越受到大众的青睐。区块链智能合约是传统合约的数字化版本,是在区块链系统上自动运行的计算机程序,可以在满足约定条件时自动执行。
区块链智能合约一般都是计算机语言编写的合同,是一系列的计算机程序语言,计算机语言一旦编译发布,就难以修改,一旦包含异常数据的智能合约编译运行,就容易被利用、攻击。因此,在区块链智能合约发布前进行需要对合约数据检查。但是,当前对于区块链智能合约的检查通常依赖于机器或者懂机器语言的人来检查合同数据,检查速度慢且耗费人力,并且,合约中的业务逻辑错误往往很难被发现。因此,可见现有的区块链智能合约检查方案存在检测效率低的问题。
发明内容
基于此,有必要针对现有的区块链智能合约检查方案存在检测效率低的问题,提供一种高效的区块链智能合约的异常合约数据检测方法、装置、计算机设备和存储介质。
一种区块链智能合约的异常合约数据检测,方法包括:
获取智能合约,智能合约携带合约参与方身份标识;
对智能合约进行语义解析,识别出关键指标数据;
根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据;
当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
在其中一个实施例中,对智能合约进行语义解析,识别出关键指标数据包括:
提取智能合约中的条件循环语句数据;
采用自然语言处理方法,对条件循环语句数据进行拆分,得到拆分片段数据;
对拆分片段数据进行关键词识别,识别出关键指标数据。
在其中一个实施例中,提取智能合约中的条件循环语句数据包括:
采用正则表达式,提取智能合约中的条件循环语句数据。
在其中一个实施例中,根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据包括:
根据合约参与方身份标识,获取合约参与方的历史智能合约数据;
根据关键指标数据对历史智能合约数据进行模糊匹配,匹配出包含关键指标数据的目标历史智能合约数据。
在其中一个实施例中,基于目标历史智能合约数据检测智能合约中的关键指标数据是否存在数量级差异包括:
根据关键指标数据,提取目标历史智能合约数据与智能合约中的对应的业务逻辑数据;
基于目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据;
比较智能合约中各关键指标数据对应的业务逻辑数据以及估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
在其中一个实施例中,预警提示消息携带合约确认反馈消息,合约确认反馈消息要求携带数字签名;
发送预警提示消息至合约参与方之后,还包括:
当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证;
若解密验证成功,则将智能合约上链至对应的区块链。
一种区块链智能合约的异常合约数据检测装置,装置包括:
数据获取模块,用于获取智能合约,智能合约携带合约参与方身份标识;
数据识别模块,用于对智能合约进行语义解析,识别出关键指标数据;
数据查找模块,用于根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据;
检测预警模块,用于当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
在其中一个实施例中,装置还包括:
数据上链模块,用于当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取智能合约,智能合约携带合约参与方身份标识;
对智能合约进行语义解析,识别出关键指标数据;
根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据;
当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取智能合约,智能合约携带合约参与方身份标识;
对智能合约进行语义解析,识别出关键指标数据;
根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据;
当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
上述区块链智能合约的异常合约数据检测方法、装置、计算机设备和存储介质,通过语义解析识别出智能合约中的关键指标数据,再通过关键指标数据和合约参与方身份标识,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据,基于目标历史智能合约数据,对当前智能合约中的关键指标数据进行检测,当检测到当前智能合约中的关键指标数据存在数量级差异时,发送携带合约确认反馈消息的预警提示信息至合约参与方,以确认合约是否有误。整个过程,能够自动检测智能合约中的包含关键指标的业务逻辑是否异常,无需人工检测,提高检测效率,且当发现业务逻辑存在异常时,及时发送预警消息通知合约参与方进行确认,避免合约编译发布后产生不可逆的错误。
附图说明
图1为一个实施例中区块链智能合约的异常合约数据检测方法的应用环境图;
图2为一个实施例中区块链智能合约的异常合约数据检测方法的流程示意图;
图3为另一个实施例中区块链智能合约的异常合约数据检测方法的流程示意图;
图4为一个实施例中业务逻辑检测步骤的流程示意图;
图5为一个实施例中区块链智能合约的异常合约数据检测装置的结构框图;
图6为一个实施例中区块链智能合约的异常合约数据检测装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链智能合约的异常合约数据检测方法,可以应用于如图1所示的应用环境中。区块链网络中包括智能合约平台系统服务器106(以下简称服务器106)、智能合约参与方即以第一合约参与方102和第二合约参与方104为例,第一合约参与方102、第二合约参与方104以及智能合约平台系统服务器106通过网络进行通信,第一合约参与方102和第二合约参与方104均可视为计算机节点,图1中仅示出了两个合约参与方,具体实施时可以包括若干个参与方。在实际应用中,可以是当第一合约参与方102与第二合约参与方104制定了智能合约后,于智能合约系统平台发布该智能合约,服务器106获取该智能合约(智能合约携带合约参与方身份标识),然后,对智能合约进行语义解析,识别出合约中的关键指标数据,再根据合约参与方身份标识和关键指标数据,查找出第一合约参与方102或第二合约参与方104签署过的包含关键指标数据的目标历史智能合约数据或者由第一合约参与方102和第二合约参与方104共同签署过的包含关键指标数据的目标历史智能合约数据,当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。其中,第一合约参与方102和第二合约参与方104可以但不限于是服务器、各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。需要说明的是,本申请中所使用的“第一”、“第二”等术语是用于区分不同对象,而不是用于描述特定顺序。具体地,在本申请各实施例中,采用“第一”、“第二”来区分合约参与方、加密信息以及合约确认消息等对象,但是上述对象并不限定于一定采用这些术语,例如,在不脱离本申请各实施例范围的情况下,“第一合约参与方”也可以被称为“第二合约参与者”,“第二合约参与者”也可以被称为“第一合约参与者”;或者,“第一合约参与者”也可以被称为“第三合约参与者”,“第二合约参与者”也可以被称为“第四合约参与者”等。
在其中一个实施例中,如图2所示,提供了一种区块链智能合约的异常合约数据检测方法,以该方法应用于图1中的服务器106为例进行说明,包括以下步骤:
步骤S200,获取智能合约,智能合约携带合约参与方身份标识。
通俗来讲,智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。本实施例中,智能合约指合约参与方已制定好的智能合约,以交易型的智能合约为例,即合约包括合约标识、合约参与方身份标识以及包含业务逻辑的业务逻辑数据等。合约参与方身份标识即指用于表明合约参与方身份全网唯一凭证(唯一标识),具体实施时,合约参与方身份标识可以是账号ID,还可以是用于区分于其他参与方的电子证件等数据。具体可根据实际情况而定,在此不做限定。
步骤S400,对智能合约进行语义解析,识别出关键指标数据。
语义解析是指将自然语言的句子转换为机器可解析的语义表达。当获取到智能合约后,将用计算机编程语言编写的智能合约转换为机器可解析的语义表达,具体的,可以是通过一个任务相关的文法将自然语言句子直接解析、匹配知识图谱转为语义表达,也可以是首先使用句法分析器将自然语言句子解析为任务无关的中间表达,然后再将中间表达转换为匹配知识图谱的最终表达。然后,可对解析出来的语义表达进行特定内容识别,识别出其中包含的关键指标,具体可以是根据编程语言识别或分词方法,识别出特定内容中的关键指标数据。关键指标一般指智能合约中的核心信息,智能合约以交易型合约为例,关键指标数据包括但不限于商品类型、交易金额、交易数量、支付方式以及交易期限等。特定内容以中文示例,若待解析的特定内容为“我需要1万台电脑,预算1000万”,即数量和价格即指解析出来的关键指标数据,也是智能合约的特征。
在其中一个实施例中,如图3所示,对智能合约进行语义解析,识别出关键指标数据包括:步骤S420,提取智能合约中的条件循环语句数据,采用自然语言处理方法,对条件循环语句数据进行拆分,得到拆分片段数据,对拆分片段数据进行关键词识别,识别出关键指标数据。
条件循环语句是指计算机编程语言中的语句,条件循环语句包括条件语句和循环语句。循环语句是由循环体及循环的终止条件两部分组成的。循环体即指一组被重复执行的语句,循环的终止条件即指能否继续重复,决定循环的终止的条件。本实施例中,智能合约的执行依赖于实施,通常,合约实施的内容多包含于条件循环语句中,因此,关键指标数据可以是从智能合约中的条件循环语句数据中提取得到。具体的,提取智能合约中的条件循环语句包括但不限于if…then…else…语句,while循环语句,for循环语句,for each语句等。提取出条件循环语句之后,可以是基于自然语言处理方法如分词统计、特征词向量等方法,对条件循环语句进行拆分即分词处理,得到便于识别的片段数据,然后,通过关键词识别方法片段数据的含义,识别并提取其中包含目标物品的名称、数量及金额等关键指标数据。可以理解的是,在其他实施例中,还可以是采用关键指标数据进行精准匹配或模糊匹配的方式,提取出关键指标数据。本实施例中,基于条件循环语句,采用分词处理和关键词识别,能够快速且有效提取出关键指标。
在其中一个实施例中,提取智能合约中的条件循环语句数据包括:采用正则表达式,提取智能合约中的条件循环语句数据。
正则表达式,又称规则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。其通常被用来检索、替换或提取那些符合某个模式(规则)的文本。由于条件循环语句包含特定词汇,能够较容易得被识别出来,因此,具体实施时,可以是采用正则表达式提取出条件循环语句。可以理解理解的是,在其他实施例中,条件循环语句的提取还可以是采用编程语言识别方法、位置参数定位等其他算法。本实施例中,通过正则匹配表达式的方式,能够快速提取出条件循环语句,效果更佳。
步骤S600,根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据。
当识别出当前的第一合约参与方102与第二合约参与方104签署的智能合约中的关键指标数据后,可根据第一合约参与方102和第二合约参与方104的身份标识,查找出第一合约参与方102签署过和第二合约参与方104签署过的历史智能合约数据,以及两者共同签署过的历史智能合约数据,然后,根据识别出的关键指标数据,从中查找出包含关键指标数据的目标历史智能合约数据。此外,若未查找到包含关键指标数据的目标历史智能合约,则查找第一合约参与方102与第二合约参与方104的类似的智能合约数据如历史交易数据,并筛选出历史交易数据中的货物单价和交易方的交易总量等数据,进而判断关键指标数据是否存在数量级差异。
步骤S800,当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
所谓数量级的差异,大体上每差出一级,数据相差十倍左右,比如大家常说的个、十、百、千、万,就是数量级的差别。合约确认信息包括确认合约信息以及否认合约信息,确认合约信息即指合约参与双方对于合约确认无误时发送的消息,否认合约信息即合约参与双方至少一方对合约持质疑态度或否认态度时发送的消息。具体实施时,当查找出目标历史智能合约数据后,可以是比较历史智能合约数据中的关键指标数据和当前智能合约的关键指标数据的差异,检测以交易型合约为例,主要检测合约中的金额是否存在数量级差异,当检测到存在数量级差异时,则发送预警提示消息至第一合约参与方和第二合约参与方,且要求获取合约参与双方的合约确认信息。
上述区块链智能合约的异常合约数据检测方法中,通过语义解析识别出智能合约中的关键指标数据,再通过关键指标数据和合约参与方身份标识,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据,基于目标历史智能合约数据,对当前智能合约中的关键指标数据进行检测,当检测到当前智能合约中的关键指标数据存在数量级差异时,发送携带合约确认反馈消息的预警提示信息至合约参与方,以确认合约是否有误。整个过程,能够自动检测智能合约中包含关键指标的业务逻辑数据是否异常,无需人工检测,提高检测效率,且当发现业务逻辑存在异常时,及时发送预警消息通知合约参与方进行确认,避免合约编译发布后产生不可逆的错误。
在其中一个实施例中,如图3所示,根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据包括:步骤S620,根据合约参与方身份标识,获取合约参与方的历史智能合约数据,根据关键指标数据对历史智能合约数据进行模糊匹配,匹配出包含关键指标数据的目标历史智能合约数据。
模糊匹配,顾名思义,即指根据所给的条件或者要求,给予大致程度的匹配搜索。模糊匹配其要达到的目标是用户不需要关心搜索系统的结构,任意输入一串字符或者数字,只要搜索范围中包含该信息,通过该方法就能够找出该信息,且知晓该信息包含在哪个表,哪个字段,或者具体哪个位置。当提取了关键指标数据之后,为了检测该关键指标数据是否存在异常,可以参照该合约参与方签署的历史合约中关键指标的业务逻辑数据来判断。具体的,可以是根据合约参与方标识,获取合约参与方即第一合约参与方和第二合约参与方共同签署,若双方无共同签署的历史智能合约数据,则可以查找其各自签署过的历史智能合约数据,然后,基于关键指标数据进行模糊匹配,筛选出包含同类型或相似的关键指标数据的历史智能合约数据,进而基于筛选出的历史智能合约数据关于关键指标数据的业务逻辑数据,检测关键指标是否存在数量级差异。可以理解的是,在其他实施例中,还可以是采用精确匹配或特定内容识别方法,查找出包含关键指标数据的历史智能合约数据。本实施例中,每个合约参与方签署的合约的业务逻辑数据都不同,能接受的标准也不尽相同,从合约参与方的签署的历史智能合约数据入手,能够有针对性的检测异常数据,提高检测的准确度。
在其中一个实施例中,如图4所示,基于目标历史智能合约数据检测智能合约中的关键指标数据是否存在数量级差异包括:
步骤S820,根据关键指标数据,提取目标历史智能合约数据与智能合约中的对应的业务逻辑数据;
步骤S822,基于目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据;
步骤S824,比较智能合约中各关键指标数据对应的业务逻辑数据以及估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
在实际应用中,数量级差异的检测具体可包括根据关键指标数据,提取目标历史智能合约与当前获取的智能合约中的与关键指标对应的业务逻辑数据,再根据目标历史智能合约中的业务逻辑数据,调整估算方式,检测是否存在数量级差异。合约以交易型合约为例,则业务逻辑数据包括交易物品的数量、单价和金额等,若查找到第一合约参与方与第二合约参与方共同签署的历史智能合约a中包含有100件A类物品,对应的成交金额为1000元,而此次,同样由第一合约参与方和第二合约参与方签署的智能合约中,待处理的A类物品的数量为1000件,按照历史智能合约a中的数据,估算此次交易金额应大约在9万~11万元之间,而当前智能合约中的交易金额显示为100万元,与估算的交易金额相差了10倍,则表明存在数量级差异,因此,发送预警提示消息至合约参与方,以通知双方对合约的业务逻辑数据进行确认,以免出现逻辑错误。
在其中一个实施例中,如图3所示,预警提示消息携带合约确认反馈消息,合约确认信息要求携带数字签名;发送预警提示消息至合约参与方之后,还包括:步骤S900,当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换,一般多以随机的数字串为主。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,例如,信息发送方利用私钥加密,生成的加密信息,发送原文和密文,接收方利用公钥解密,验证解密信息是否和原文一致,即可确认是否为发送方发送。预警提示消息携带合约确认反馈消息,关于合约参与方对于合约中业务逻辑的确定,可以基于合约确认消息进行,合约确认消息可用于要求第一合约参与方以及第二合约参与方发送携带数字签名的合约确认信息,当合约参与双方接收到合约确认信息时,可以是使用各自的私钥对拟发送的合约确认信息进行加密处理,生成数字签名,并将携带数字签名合约确认信息一同发送至服务器,服务器进而对数字签名和合约确认信息进行解密验证。若合约参与方对合约确认无误,则发送携带数字签名的确认合约信息至服务器,当接收到携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。本实施例中,通过数字签名能够确保合约确认信息发送方的身份,提高智能合约的安全性。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图5所示,提供了一种区块链智能合约的异常合约数据检测装置,包括:数据获取模块510、数据识别模块520、数据查找模块530和检测预警模块540,其中:
数据获取模块510,用于获取智能合约,智能合约携带合约参与方身份标识。
数据识别模块520,用于对智能合约进行语义解析,识别出关键指标数据。
数据查找模块530,用于根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据。
检测预警模块540,用于当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
在其中一个实施例中,数据识别模块520还用于提取智能合约中的条件循环语句数据,采用自然语言处理方法,对条件循环语句数据进行拆分,得到拆分片段数据,对拆分片段数据进行关键词识别,识别出关键指标数据。
在其中一个实施例中,数据识别模块520还用于采用正则表达式,提取智能合约中的条件循环语句数据。
在其中一个实施例中,数据查找模块520还用于根据合约参与方身份标识,获取合约参与方的历史智能合约数据,根据关键指标数据对历史智能合约数据进行模糊匹配,匹配出包含关键指标数据的目标历史智能合约数据。
在其中一个实施例中,检测预警模块540还用于根据关键指标数据,提取目标历史智能合约数据与智能合约中的对应的业务逻辑数据,基于目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据,比较智能合约中各关键指标数据对应的业务逻辑数据以及估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
在其中一个实施例中,如图6所示,区块链智能合约的异常合约数据检测装置还包括数据上链模块550,用于当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
关于区块链智能合约的异常合约数据检测装置的具体限定可以参见上文中对于区块链智能合约的异常合约数据检测方法的限定,在此不再赘述。上述区块链智能合约的异常合约数据检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能合约等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链智能合约的异常合约数据检测方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取智能合约,智能合约携带合约参与方身份标识,对智能合约进行语义解析,识别出关键指标数据,根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据,当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:提取智能合约中的条件循环语句数据,采用自然语言处理方法,对条件循环语句数据进行拆分,得到拆分片段数据,对拆分片段数据进行关键词识别,识别出关键指标数据。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:采用正则表达式,提取智能合约中的条件循环语句数据。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据合约参与方身份标识,获取合约参与方的历史智能合约数据,根据关键指标数据对历史智能合约数据进行模糊匹配,匹配出包含关键指标数据的目标历史智能合约数据。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据关键指标数据,提取目标历史智能合约数据与智能合约中的对应的业务逻辑数据,基于目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据,比较智能合约中各关键指标数据对应的业务逻辑数据以及估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取智能合约,智能合约携带合约参与方身份标识,对智能合约进行语义解析,识别出关键指标数据,根据合约参与方身份标识和关键指标数据,查找出合约参与方签署的包含关键指标数据的目标历史智能合约数据,当基于目标历史智能合约数据检测出智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至合约参与方。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:提取智能合约中的条件循环语句数据,采用自然语言处理方法,对条件循环语句数据进行拆分,得到拆分片段数据,对拆分片段数据进行关键词识别,识别出关键指标数据。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:采用正则表达式,提取智能合约中的条件循环语句数据。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据合约参与方身份标识,获取合约参与方的历史智能合约数据,根据关键指标数据对历史智能合约数据进行模糊匹配,匹配出包含关键指标数据的目标历史智能合约数据。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据关键指标数据,提取目标历史智能合约数据与智能合约中的对应的业务逻辑数据,基于目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据,比较智能合约中各关键指标数据对应的业务逻辑数据以及估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链智能合约的异常合约数据检测方法,所述方法包括:
获取智能合约,所述智能合约携带合约参与方身份标识;
对所述智能合约进行语义解析,识别出关键指标数据;
根据所述合约参与方身份标识和所述关键指标数据,查找出合约参与方签署的包含所述关键指标数据的目标历史智能合约数据;
当基于所述目标历史智能合约数据检测出所述智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至所述合约参与方。
2.根据权利要求1所述的区块链智能合约的异常合约数据检测方法,其特征在于,所述对所述智能合约进行语义解析,识别出关键指标数据包括:
提取所述智能合约中的条件循环语句数据;
采用自然语言处理方法,对所述条件循环语句数据进行拆分,得到拆分片段数据;
对所述拆分片段数据进行关键词识别,识别出关键指标数据。
3.根据权利要求2所述的区块链智能合约的异常合约数据检测方法,其特征在于,所述提取所述智能合约中的条件循环语句数据包括:
采用正则表达式,提取所述智能合约中的条件循环语句数据。
4.根据权利要求1所述的区块链智能合约的异常合约数据检测方法,其特征在于,所述根据所述合约参与方身份标识和所述关键指标数据,查找出合约参与方签署的包含所述关键指标数据的目标历史智能合约数据包括:
根据所述合约参与方身份标识,获取合约参与方的历史智能合约数据;
根据所述关键指标数据对所述历史智能合约数据进行模糊匹配,匹配出包含所述关键指标数据的目标历史智能合约数据。
5.根据权利要求1所述的区块链智能合约的异常合约数据检测方法,其特征在于,基于所述目标历史智能合约数据检测所述智能合约中的关键指标数据是否存在数量级差异包括:
根据所述关键指标数据,提取所述目标历史智能合约数据与所述智能合约中的对应的业务逻辑数据;
基于所述目标历史智能合约数据中各关键指标数据的业务逻辑数据,估算所述智能合约中对应的关键指标数据的业务逻辑数据,得到估算业务逻辑数据;
比较所述智能合约中各关键指标数据对应的业务逻辑数据以及所述估算业务逻辑数据,检测各关键指标数据是否存在数量级差异。
6.根据权利要求1所述的区块链智能合约的异常合约数据检测方法,其特征在于,所述预警提示消息携带合约确认反馈消息,所述合约确认反馈消息要求携带数字签名;
所述发送预警提示消息至所述合约参与方之后,还包括:
当接收到所述合约参与方反馈的携带数字签名的确认合约信息时,对所述确认合约信息进行解密验证;
若解密验证成功,则将所述智能合约上链至对应的区块链。
7.一种区块链智能合约的异常合约数据检测装置,其特征在于,所述装置包括:
数据获取模块,用于获取智能合约,所述智能合约携带合约参与方身份标识;
数据识别模块,用于对所述智能合约进行语义解析,识别出关键指标数据;
数据查找模块,用于根据所述合约参与方身份标识和所述关键指标数据,查找出合约参与方签署的包含所述关键指标数据的目标历史智能合约数据;
检测预警模块,用于当基于所述目标历史智能合约数据检测出所述智能合约中的关键指标数据存在数量级差异时,发送预警提示消息至所述合约参与方,所述预警提示消息携带合约确认反馈消息。
8.根据权利要求7所述的区块链智能合约的异常合约数据检测装置,其特征在于,所述装置还包括:
数据上链模块,用于当接收到合约参与方反馈的携带数字签名的确认合约信息时,对确认合约信息进行解密验证,若解密验证成功,则将智能合约上链至对应的区块链。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911337796.9A CN111124421B (zh) | 2019-12-23 | 2019-12-23 | 区块链智能合约的异常合约数据检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911337796.9A CN111124421B (zh) | 2019-12-23 | 2019-12-23 | 区块链智能合约的异常合约数据检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124421A true CN111124421A (zh) | 2020-05-08 |
CN111124421B CN111124421B (zh) | 2023-04-21 |
Family
ID=70501259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911337796.9A Active CN111124421B (zh) | 2019-12-23 | 2019-12-23 | 区块链智能合约的异常合约数据检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124421B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861465A (zh) * | 2020-07-21 | 2020-10-30 | 国家计算机网络与信息安全管理中心 | 基于智能合约的检测方法及装置、存储介质、电子装置 |
CN113254486A (zh) * | 2021-06-28 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链信息处理方法及装置 |
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130226824A1 (en) * | 2012-02-28 | 2013-08-29 | First Capital Realty Inc. | Methods, Software and Devices for Managing Approval of a Proposed Contract With Multiple Decision Makers |
US20150294249A1 (en) * | 2014-04-11 | 2015-10-15 | International Business Machines Corporation | Risk prediction for service contracts vased on co-occurence clusters |
JP2016110289A (ja) * | 2014-12-03 | 2016-06-20 | 日本電信電話株式会社 | 異常抽出装置、方法、及びプログラム |
US20170061558A1 (en) * | 2015-09-01 | 2017-03-02 | International Business Machines Corporation | Predictive approach to contract management |
CN108304307A (zh) * | 2018-01-24 | 2018-07-20 | 深圳圣马歌科技有限公司 | 一种区块链上智能合约的性能检测方法 |
CN108550039A (zh) * | 2018-04-24 | 2018-09-18 | 北京罗格数据科技有限公司 | 一种基于区块链结构化数据的交易方法 |
CN108572986A (zh) * | 2017-03-13 | 2018-09-25 | 华为软件技术有限公司 | 一种数据更新的方法及节点设备 |
CN108805710A (zh) * | 2018-05-28 | 2018-11-13 | 华北电力大学 | 一种基于区块链智能合约技术的分布式电能交易方法 |
CN109214807A (zh) * | 2018-09-17 | 2019-01-15 | 平安科技(深圳)有限公司 | 管理捐款信息的方法、装置、计算机设备及存储介质 |
CN109240900A (zh) * | 2018-08-16 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其智能合约检测方法、存储介质 |
CN109493219A (zh) * | 2018-10-24 | 2019-03-19 | 深圳市金证科技股份有限公司 | 期权合约报价的生成方法、系统、终端设备及存储介质 |
CN109829297A (zh) * | 2017-11-23 | 2019-05-31 | 财团法人资讯工业策进会 | 监控装置、方法及其电脑存储介质 |
CN110019216A (zh) * | 2017-12-07 | 2019-07-16 | 中国科学院上海高等研究院 | 基于区块链的知识产权数据存储方法、介质及计算机设备 |
CN110163740A (zh) * | 2019-04-10 | 2019-08-23 | 湖南大学 | 一种信用融资方法及装置 |
WO2019180701A1 (en) * | 2018-03-18 | 2019-09-26 | Valid Network Ltd | A method and system for detecting and preventing issues in smart contracts based on historical behavior analysis |
US10445738B1 (en) * | 2018-11-13 | 2019-10-15 | Capital One Services, Llc | Detecting a transaction volume anomaly |
CN110570296A (zh) * | 2019-07-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 信用项目中的风险评估方法以及装置 |
CN110597837A (zh) * | 2019-09-19 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 业务数据处理方法、装置、存储介质和计算机设备 |
CN111127205A (zh) * | 2019-12-23 | 2020-05-08 | 卓尔智联(武汉)研究院有限公司 | 智能合约生成方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-23 CN CN201911337796.9A patent/CN111124421B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130226824A1 (en) * | 2012-02-28 | 2013-08-29 | First Capital Realty Inc. | Methods, Software and Devices for Managing Approval of a Proposed Contract With Multiple Decision Makers |
US20150294249A1 (en) * | 2014-04-11 | 2015-10-15 | International Business Machines Corporation | Risk prediction for service contracts vased on co-occurence clusters |
JP2016110289A (ja) * | 2014-12-03 | 2016-06-20 | 日本電信電話株式会社 | 異常抽出装置、方法、及びプログラム |
US20170061558A1 (en) * | 2015-09-01 | 2017-03-02 | International Business Machines Corporation | Predictive approach to contract management |
US20170061352A1 (en) * | 2015-09-01 | 2017-03-02 | International Business Machines Corporation | Predictive approach to contract management |
CN108572986A (zh) * | 2017-03-13 | 2018-09-25 | 华为软件技术有限公司 | 一种数据更新的方法及节点设备 |
CN109829297A (zh) * | 2017-11-23 | 2019-05-31 | 财团法人资讯工业策进会 | 监控装置、方法及其电脑存储介质 |
CN110019216A (zh) * | 2017-12-07 | 2019-07-16 | 中国科学院上海高等研究院 | 基于区块链的知识产权数据存储方法、介质及计算机设备 |
CN108304307A (zh) * | 2018-01-24 | 2018-07-20 | 深圳圣马歌科技有限公司 | 一种区块链上智能合约的性能检测方法 |
WO2019180701A1 (en) * | 2018-03-18 | 2019-09-26 | Valid Network Ltd | A method and system for detecting and preventing issues in smart contracts based on historical behavior analysis |
CN108550039A (zh) * | 2018-04-24 | 2018-09-18 | 北京罗格数据科技有限公司 | 一种基于区块链结构化数据的交易方法 |
CN108805710A (zh) * | 2018-05-28 | 2018-11-13 | 华北电力大学 | 一种基于区块链智能合约技术的分布式电能交易方法 |
CN109240900A (zh) * | 2018-08-16 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其智能合约检测方法、存储介质 |
CN109214807A (zh) * | 2018-09-17 | 2019-01-15 | 平安科技(深圳)有限公司 | 管理捐款信息的方法、装置、计算机设备及存储介质 |
CN109493219A (zh) * | 2018-10-24 | 2019-03-19 | 深圳市金证科技股份有限公司 | 期权合约报价的生成方法、系统、终端设备及存储介质 |
US10445738B1 (en) * | 2018-11-13 | 2019-10-15 | Capital One Services, Llc | Detecting a transaction volume anomaly |
CN110163740A (zh) * | 2019-04-10 | 2019-08-23 | 湖南大学 | 一种信用融资方法及装置 |
CN110570296A (zh) * | 2019-07-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 信用项目中的风险评估方法以及装置 |
CN110597837A (zh) * | 2019-09-19 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 业务数据处理方法、装置、存储介质和计算机设备 |
CN111127205A (zh) * | 2019-12-23 | 2020-05-08 | 卓尔智联(武汉)研究院有限公司 | 智能合约生成方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
张剑: "《信息安全技术 下 第2版》", 31 May 2015 * |
王江: "在检测中利用历史数据智能捕捉异常数据", 《电脑知识与技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861465A (zh) * | 2020-07-21 | 2020-10-30 | 国家计算机网络与信息安全管理中心 | 基于智能合约的检测方法及装置、存储介质、电子装置 |
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
CN113254486A (zh) * | 2021-06-28 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链信息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111124421B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210232974A1 (en) | Federated-learning based method of acquiring model parameters, system and readable storage medium | |
CN110377239B (zh) | 数据签名方法、装置、服务器、系统及存储介质 | |
CN109670049B (zh) | 图谱路径查询方法、装置、计算机设备和存储介质 | |
CN110365670B (zh) | 黑名单共享方法、装置、计算机设备和存储介质 | |
KR102493744B1 (ko) | 생체 특징에 기초한 보안 검증 방법, 클라이언트 단말, 및 서버 | |
CN111124421B (zh) | 区块链智能合约的异常合约数据检测方法和装置 | |
CN109189367B (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN110489415B (zh) | 一种数据更新方法及相关设备 | |
CN108768654B (zh) | 基于声纹识别的身份验证方法、服务器及存储介质 | |
US9386016B2 (en) | System and device for authentication | |
CN109614825B (zh) | 合同签约方法、装置、计算机设备和存储介质 | |
CN110362357A (zh) | 一种应用程序的配置文件管理方法及装置 | |
CN111127205B (zh) | 智能合约生成方法、装置、计算机设备和存储介质 | |
CN110224833B (zh) | 票据数据处理方法和系统 | |
CN110555779A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112613051A (zh) | 数据加密存储方法、装置、计算机设备和存储介质 | |
CN113709181A (zh) | 基于浏览器插件的网站登录方法、装置、设备及存储介质 | |
CN111127150A (zh) | 基于区块链的智能合约需求匹配方法、装置和计算机设备 | |
CN109587154A (zh) | 数字身份验证方法、装置、计算机设备和存储介质 | |
CN112149068A (zh) | 基于访问的授权校验方法、信息的生成方法及装置、服务器 | |
CN108846292B (zh) | 脱敏规则生成方法及装置 | |
CN112559526A (zh) | 数据表导出方法、装置、计算机设备及存储介质 | |
CN112437060A (zh) | 一种数据传输方法、装置、计算机设备及存储介质 | |
CN111125748A (zh) | 越权查询的判断方法、装置、计算机设备和存储介质 | |
CN109784918A (zh) | 基于区块链的信息监督方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |