CN108256337B - 智能合约漏洞检测方法、装置及电子设备 - Google Patents

智能合约漏洞检测方法、装置及电子设备 Download PDF

Info

Publication number
CN108256337B
CN108256337B CN201810158986.3A CN201810158986A CN108256337B CN 108256337 B CN108256337 B CN 108256337B CN 201810158986 A CN201810158986 A CN 201810158986A CN 108256337 B CN108256337 B CN 108256337B
Authority
CN
China
Prior art keywords
contract
loop
logic
detection
detected
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.)
Active
Application number
CN201810158986.3A
Other languages
English (en)
Other versions
CN108256337A (zh
Inventor
韩昭芳
袁力
耿建华
黄焱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Alshan Block Chain Alliance Technology Co., Ltd.
Original Assignee
Beijing Aershan Block Chain Alliance Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Aershan Block Chain Alliance Technology Co ltd filed Critical Beijing Aershan Block Chain Alliance Technology Co ltd
Priority to CN201810158986.3A priority Critical patent/CN108256337B/zh
Publication of CN108256337A publication Critical patent/CN108256337A/zh
Application granted granted Critical
Publication of CN108256337B publication Critical patent/CN108256337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种智能合约漏洞检测方法、装置及电子设备,涉及区块链技术领域,方法包括:对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;如果是,则对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;如果否,则对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;如果是,则判断待检测智能合约不存在漏洞。本发明对基于最小可信单元的智能合约组合模式,依次经过DAG环路检测、环路超时检测、逻辑检测三个部分,一方面,可以校验合同本身的逻辑合理性,另一方面,检测智能合约组合问题,从而保证了合约的安全和可靠性。

Description

智能合约漏洞检测方法、装置及电子设备
技术领域
本发明涉及区块链技术领域,尤其是涉及一种智能合约漏洞检测方法、装置及电子设备。
背景技术
区块链是一个互联网协议和一种基础的数据结构。就如同HTTP是互联网应用层中最重要的应用协议一样,区块链也是应用层里一个点对点传输的协议。在协议基础上,区块链由“区块”和“链”共同定义了分布式账本。“区块”类似于证券交易中的成交记录,记录了特定时间段内所有发生的权益转移关系;这些“区块”间存在着严格且唯一的先后继承关系,组成了一条“区块”的“链”。区块链特有的机制保障了“区块”记录内容和先后继承关系的合理性和唯一性,这个过程并不依赖于特定的中心节点。区块链天生的不可篡改可追溯的属性,可以在保证数据真实可靠的同时帮助社会降低信用成本。智能合约是区块链平台的核心组成部分,在区块链上执行业务逻辑,并将信息记录在区块链上保证数据不可篡改。
开源区块链平台Ethereum(以太坊)提供了基于Solidity语言的智能合约解决方案;Hyperledger(超级账本)提出了基于隔离容器和Go语言的智能合约解决方案。目前智能合约背后的载体都是代码逻辑,对于没有编程经验的人编写智能合约相对有一些难度。为此,在之前的技术专利中,提出了一种基于最小可信单元的区块链智能合约组合模式,可以让律师或者其他没有编程能力的人,通过组合智能合约的最小化可信单元来实现智能合约。
然而上述组合最小可信单元的过程中,不可避免地会出现逻辑漏洞,进而影响智能合约的正常执行,针对该问题,目前尚未提出有效的解决方案。
发明内容
有鉴于此,本发明的目的在于提供一种智能合约漏洞检测方法、装置及电子设备,能够检测用户完成的智能合约中存在的逻辑漏洞和技术问题。
第一方面,本发明实施例提供了一种智能合约漏洞检测方法,包括:
对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;
如果是,则对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;
如果否,则对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;
如果是,则判断待检测智能合约不存在漏洞。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在判断待检测智能合约中是否存在合约逻辑环路之后,还包括:
如果否,则执行步骤:对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在判断合约逻辑环路是否超时之后,还包括:
如果是,则判断待检测智能合约存在漏洞。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在判断逻辑检测的检测结果是否正确之后,还包括:
如果否,则判断待检测智能合约存在漏洞。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,判断待检测智能合约中是否存在合约逻辑环路,具体包括:
通过深度优先遍历算法检测待检测智能合约中,由最小可信单元组成的有向图中是否存在逻辑环路。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,判断合约逻辑环路是否超时,具体包括:
在合约逻辑环路中嵌入计数计时可信单元;
通过计数计时可信单元,检测合约逻辑环路的执行时间或者调用次数;
判断执行时间或者调用次数是否超过预设时间阈值或者预设次数阈值。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,判断逻辑检测的检测结果是否正确,具体包括:
通过合约沙箱环境运行待检测智能合约;
判断输出的运行结果是否正确。
第二方面,本发明实施例提供一种智能合约漏洞检测装置,装置包括:DAG合约环路检测模块、合约环路超时验证模块、合约逻辑检测模块;
DAG合约环路检测模块,用于对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;
合约环路超时验证模块,在DAG合约环路检测模块的检测结果为是时,对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;
合约逻辑检测模块,在合约环路超时验证模块的检测结果为否时,对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;如果是,则判断待检测智能合约不存在漏洞。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器,存储器上存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面所述的方法的步骤。
第三方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行第一方面所述的方法。
本发明实施例带来了以下有益效果:
在本发明实施例提供的智能合约漏洞检测方法中,首先对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;如果是,则对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;如果否,则对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;如果是,则判断待检测智能合约不存在漏洞。通过上述三次检测,能够检测用户完成的智能合约中存在的逻辑漏洞和技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种智能合约漏洞检测方法的流程图;
图2为本发明实施例一提供的一种存在环路的合约组合有向图;
图3为本发明实施例一提供的另一种智能合约漏洞检测方法的流程图;
图4为本发明实施例一提供的一种合约环路超时检测图;
图5为本发明实施例二提供的一种智能合约漏洞检测装置的结构示意图;
图6为本发明实施例三提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在通过组合最小可信单元拼装智能合约的过程中,不可避免地会出现逻辑漏洞,进而影响智能合约的正常执行,针对该问题,目前尚未提出有效的解决方案。
基于此,本发明实施例提供一种智能合约漏洞检测方法、装置及电子设备,能够检测用户完成的智能合约中存在的逻辑漏洞和技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种智能合约漏洞检测方法进行详细介绍。
实施例一:
本发明实施例提供了一种智能合约漏洞检测方法,应用于由用户组合最小可信单元而得到的智能合约中,参见图1所示,该方法包括以下步骤:
S101:对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路。
其中,待检测智能合约由多个最小可信单元组成;判断待检测智能合约中是否存在合约逻辑环路,具体包括:
通过深度优先遍历算法检测待检测智能合约中,由最小可信单元组成的有向图中是否存在逻辑环路。具体的,存在环路的合约组合有向图如图2所示。
有向无环图(DAG)为图论的一个专业名词,指的是在一个图中,所有的边都有方向,且这些有方向的边没有组成环路。本实施例中的待检测智能合约为基于最小可信单元的区块链智能合约,由多个最小可信单元拼装组合形成的用户的业务智能合约。这些最小可信单元组成了合约DAG中的一个个节点,节点之间由事件的触发相互关联,触发的方向决定了DAG中节点之间的边的方向,最终基础最小可信单元的区块链智能合约组合模式可以映射为一个DAG的模型,针对合约逻辑的校验可以在这个DAG模型中展开。如果用户的智能合约中存在环路,存在以下两类情况:
(1)合约的业务逻辑中本身存在可控的环路逻辑。
可控的环路逻辑是指在设定的某种条件下才会触发的环路,此类环路只有在有限的条件下才会发生,且不会造成合约逻辑死循环或者崩溃。
(2)由于非预期操作或者行为导致的非法合约环路,这些环路导致智能合约逻辑的死循环或者崩溃。
本发明实施例所提供的智能合约漏洞检测方法,解决的是上述第二种环路问题。如图2所示,由触发单元1、功能单元1、触发单元2、功能单元2组成的合约逻辑中存在环路,有可能导致合约逻辑的无限递归调用导致合约死循环或者崩溃。使用深度优先遍历算法检测由合约最小可信单元组成的有向图中是否包含逻辑环路。如果合约包含环路,则筛选出合约环路并进入第二步检测,即:
执行步骤S102:对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时。
判断合约逻辑环路是否超时,具体包括以下步骤,参见图3所示:
S201:在合约逻辑环路中嵌入计数计时可信单元。
S202:通过计数计时可信单元,检测合约逻辑环路的执行时间或者调用次数。
S203:判断执行时间或者调用次数是否超过预设时间阈值或者预设次数阈值。
参见图4所示,在合约环路中嵌入计数计时可信单元。通过调用合约环路,根据设定超时时间和调用次数的限制,确定合约环路是否存在死循环或者逻辑问题。如果合约执行时间超过预设时间阈值或者调用次数超过最大允许调用次数,即预设次数阈值,则合约环路检测失败,也就是执行步骤S105:判断待检测智能合约存在漏洞。如果合约执行时间没有超过预设时间阈值,同时调用次数没有超过最大允许调用次数,即预设次数阈值,则该合约环路超时验证成功,进行下一步逻辑检测,即:
执行步骤S103:对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确。
此外,在判断待检测智能合约中是否存在合约逻辑环路之后,如果检测到该智能合约中没有合约逻辑环路,则直接步骤S103:对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确。
具体的,通过合约沙箱(sandbox)环境运行待检测智能合约,判断输出的运行结果是否正确,即模拟模块的输入检验合约输出的正确性,判断合约逻辑是否完整无误。
如果逻辑检测结果正确,则执行步骤S104:判断待检测智能合约不存在漏洞。如果逻辑检测结果不正确,则执行步骤S105:判断待检测智能合约存在漏洞。
在本发明实施例提供的智能合约漏洞检测方法中,首先对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;如果是,则对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;如果否,则对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;如果是,则判断待检测智能合约不存在漏洞。
对基于最小可信单元的智能合约组合模式,依次经过DAG环路检测、环路超时检测、逻辑检测三个部分,保证对合约漏洞的有效检测,一方面,可以校验合同本身的逻辑合理性。比如:用户正确的将电子或者纸质合约组合成了电子合约,如果合约信息本身存在逻辑问题,上述漏洞检测机制可以帮助用户检测到该问题。另一方面,检测智能合约组合问题。比如:合约信息本身没有问题,但是用户在组合合约可信单元的过程中出现了问题,漏洞检测机制可以帮助用户检测到该问题并提醒用户解决问题,从而保证了合约的安全和可靠性。
实施例二:
本发明实施例提供一种智能合约漏洞检测装置,参见图5所示,该装置包括:DAG合约环路检测模块51、合约环路超时验证模块52、合约逻辑检测模块53。
其中,DAG合约环路检测模块51,用于对待检测智能合约进行DAG环路检测,判断待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;合约环路超时验证模块52,在DAG合约环路检测模块的检测结果为是时,对合约逻辑环路进行环路超时检测,判断合约逻辑环路是否超时;合约逻辑检测模块53,在合约环路超时验证模块的检测结果为否时,对待检测智能合约进行逻辑检测,判断逻辑检测的检测结果是否正确;如果是,则判断待检测智能合约不存在漏洞。
本发明实施例所提供的智能合约漏洞检测装置中,各个模块与前述智能合约漏洞检测方法具有相同的技术特征,因此,同样可以实现上述功能。本装置中各个模块的具体工作过程参见上述方法实施例,在此不再赘述。
实施例三:
本发明实施例还提供一种电子设备,参见图6所示:该电子设备包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。处理器执行计算机程序时实现如方法实施例所述的方法的步骤。
其中,存储器61可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的智能合约实现方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本发明的多个实施例方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种智能合约漏洞检测方法,其特征在于,包括:
对待检测智能合约进行有向无环图DAG环路检测,判断所述待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;
如果是,则对所述合约逻辑环路进行环路超时检测,判断所述合约逻辑环路是否超时;
如果否,则对所述待检测智能合约进行逻辑检测,判断所述逻辑检测的检测结果是否正确;
如果是,则判断所述待检测智能合约不存在漏洞。
2.根据权利要求1所述的方法,其特征在于,在所述判断所述待检测智能合约中是否存在合约逻辑环路之后,还包括:
如果否,则执行步骤:对所述待检测智能合约进行逻辑检测,判断所述逻辑检测的检测结果是否正确。
3.根据权利要求1所述的方法,其特征在于,在所述判断所述合约逻辑环路是否超时之后,还包括:
如果是,则判断所述待检测智能合约存在漏洞。
4.根据权利要求1所述的方法,其特征在于,在所述判断所述逻辑检测的检测结果是否正确之后,还包括:
如果否,则判断所述待检测智能合约存在漏洞。
5.根据权利要求1所述的方法,其特征在于,所述判断所述待检测智能合约中是否存在合约逻辑环路,具体包括:
通过深度优先遍历算法检测所述待检测智能合约中,由所述最小可信单元组成的有向图中是否存在逻辑环路。
6.根据权利要求1所述的方法,其特征在于,所述判断所述合约逻辑环路是否超时,具体包括:
在所述合约逻辑环路中嵌入计数计时可信单元;
通过所述计数计时可信单元,检测所述合约逻辑环路的执行时间或者调用次数;
判断所述执行时间或者调用次数是否超过预设时间阈值或者预设次数阈值。
7.根据权利要求1所述的方法,其特征在于,所述判断所述逻辑检测的检测结果是否正确,具体包括:
通过合约沙箱环境运行所述待检测智能合约;
判断输出的运行结果是否正确。
8.一种智能合约漏洞检测装置,其特征在于,所述装置包括:有向无环图DAG合约环路检测模块、合约环路超时验证模块、合约逻辑检测模块;
所述有向无环图DAG合约环路检测模块,用于对待检测智能合约进行有向无环图DAG环路检测,判断所述待检测智能合约中是否存在合约逻辑环路;待检测智能合约由多个最小可信单元组成;
所述合约环路超时验证模块,在所述有向无环图DAG合约环路检测模块的检测结果为是时,对所述合约逻辑环路进行环路超时检测,判断所述合约逻辑环路是否超时;
所述合约逻辑检测模块,在所述合约环路超时验证模块的检测结果为否时,对所述待检测智能合约进行逻辑检测,判断所述逻辑检测的检测结果是否正确;如果是,则判断所述待检测智能合约不存在漏洞。
9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至7任一项所述的方法。
CN201810158986.3A 2018-02-26 2018-02-26 智能合约漏洞检测方法、装置及电子设备 Active CN108256337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810158986.3A CN108256337B (zh) 2018-02-26 2018-02-26 智能合约漏洞检测方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810158986.3A CN108256337B (zh) 2018-02-26 2018-02-26 智能合约漏洞检测方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108256337A CN108256337A (zh) 2018-07-06
CN108256337B true CN108256337B (zh) 2020-07-17

Family

ID=62745491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810158986.3A Active CN108256337B (zh) 2018-02-26 2018-02-26 智能合约漏洞检测方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108256337B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063477B (zh) * 2018-07-18 2021-04-20 成都链安科技有限公司 一种自动化的智能合约代码缺陷检测系统和方法
CN108984789B (zh) * 2018-08-15 2021-07-13 赵东洋 分布式记账的方法、装置、存储介质及电子设备
CN109240900A (zh) * 2018-08-16 2019-01-18 北京京东尚科信息技术有限公司 区块链网络服务平台及其智能合约检测方法、存储介质
CN109446814A (zh) * 2018-09-30 2019-03-08 北京金山安全软件有限公司 一种漏洞检测方法及装置
CN109460663A (zh) * 2018-11-12 2019-03-12 北京知道创宇信息技术有限公司 一种智能合约审计方法、装置及其存储介质
TWI676134B (zh) * 2018-12-03 2019-11-01 資富電子股份有限公司 用於以查表法為基礎之區塊鏈中工作量證明的加速演算架構
CN109801166B (zh) * 2019-01-28 2023-04-18 浙江师范大学 一种基于状态锁的智能合约的安全函数的设计方法及系统
CN109800175B (zh) * 2019-02-20 2020-08-11 河海大学 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
CN109948345A (zh) * 2019-03-20 2019-06-28 杭州拜思科技有限公司 一种智能合约漏洞检测的方法、系统
CN110175454B (zh) * 2019-04-19 2021-03-26 佛山市微风科技有限公司 一种基于人工智能的智能合约安全漏洞挖掘方法及系统
CN110263536B (zh) * 2019-06-21 2024-05-24 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置
US11176257B2 (en) * 2019-08-13 2021-11-16 International Business Machines Corporation Reducing risk of smart contracts in a blockchain
CN110929295B (zh) * 2019-11-08 2021-11-05 杭州趣链科技有限公司 一种投票智能合约的形式验证方法
CN111083107B (zh) * 2019-11-14 2021-12-21 中通服咨询设计研究院有限公司 一种基于区块链的网络安全漏洞收集处理方法
CN111563820B (zh) * 2020-05-08 2023-09-22 中国工商银行股份有限公司 智能合约并行执行方法及装置
CN113239359A (zh) * 2021-04-26 2021-08-10 中央财经大学 一种区块链可信容器安全加固系统及方法
CN117250480B (zh) * 2023-11-08 2024-02-23 英诺达(成都)电子科技有限公司 组合逻辑电路的环路检测方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636256A (zh) * 2015-02-17 2015-05-20 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置
CN106897351A (zh) * 2016-12-29 2017-06-27 北京瑞卓喜投科技发展有限公司 有向无环图型区块链的生成方法及系统
CN107391265A (zh) * 2016-03-25 2017-11-24 阿里巴巴集团控股有限公司 用于进程中检测死锁的方法和设备
CN107431622A (zh) * 2015-02-26 2017-12-01 识库链公司 发生在供应链中的单元化追踪

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017240796A1 (en) * 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636256A (zh) * 2015-02-17 2015-05-20 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置
CN107431622A (zh) * 2015-02-26 2017-12-01 识库链公司 发生在供应链中的单元化追踪
CN107391265A (zh) * 2016-03-25 2017-11-24 阿里巴巴集团控股有限公司 用于进程中检测死锁的方法和设备
CN106897351A (zh) * 2016-12-29 2017-06-27 北京瑞卓喜投科技发展有限公司 有向无环图型区块链的生成方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Untangling Blockchain:A Data Processing View of Blockchain Systems;Tien Tuan Anh Dinh等;《IEEE Transactions on Knowledge and Data Engineering》;20171231;全文 *

Also Published As

Publication number Publication date
CN108256337A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN108256337B (zh) 智能合约漏洞检测方法、装置及电子设备
CN107392619B (zh) 智能合约处理方法及装置
WO2021036450A1 (zh) 一种模拟器检测方法及系统
CN110941528B (zh) 一种基于故障的日志埋点设置方法、装置及系统
US8782607B2 (en) Contract failure behavior with escalation policy
CN109117250A (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN110264190A (zh) 智能合约的触发方法、装置、设备及存储介质
CN109145590B (zh) 一种函数hook检测方法、检测设备及计算机可读介质
WO2020019485A1 (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN111523784A (zh) 自动执行路径的监控方法及装置
CN111338622B (zh) 供应链代码识别方法、装置、服务器及可读存储介质
CN111615688A (zh) 一种断言验证代码绑定方法及装置
CN110287700B (zh) 一种iOS应用安全分析方法及装置
CN104220992A (zh) 用于确定软件的正确的执行的系统和方法
US10419483B1 (en) Time-bounded execution for privileged code
Baier et al. Probabilistic causes in Markov chains
CN110610423B (zh) 区块链智能合约平台支持有状态和无状态合约的处理方法
US20120131669A1 (en) Determining whether method of computer program is a validator
US20150112739A1 (en) Method and system for monetization of applications and services in communication devices
JP7474761B2 (ja) ソフトウェア・バグを検出するためにシステムをトレーニングするためのシステム及び方法
CN113221176A (zh) 一种基于区块链的业务处理方法、装置和电子设备
CN112889045B (zh) 虚拟函数指针验证设备及方法
CN110618841A (zh) 内部松耦合的共识方法、系统、电子设备
TW202123042A (zh) 用於計算機程式的線上測試系統及測試方法
CN110020670B (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
TA01 Transfer of patent application right

Effective date of registration: 20200213

Address after: 408a, 4th floor, 112 Xizhimenwai street, Xicheng District, Beijing 100000

Applicant after: Beijing Alshan Block Chain Alliance Technology Co., Ltd.

Address before: 100000 room 610, 3 building, Shengjing International Plaza, 31 Shijingshan Road, Shijingshan District, Beijing.

Applicant before: Financial Technologies Ltd, Arxan, Beijing

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant